我们的公司开发并销售一个SaaS应用程序,拥有数百个客户。其中一些客户要求我们支持LDAP集成,以对其现有系统进行用户账户认证,而不是为每个员工创建另一个登录帐户。在许多地方,这似乎被称为单点登录(SSO)?自然地,我们的系统已经具备维护用户账户配置文件和从我们的登录页面验证这些用户账户的机制。
我们对LDAP有点无知,并且对一些事情感到困惑。请原谅可能使用错误术语(记住,我们对此有点无知)。
我们认为我们了解如何使该机制起作用的基础知识:
- 我们的客户为他们的帐户配置“打开”“远程身份验证”功能。他们提供将验证他们的用户的远程URL。
- 用户来到我们的登录页面,并尝试使用由其公司的LDAP系统提供的用户名和密码登录。
- 我们的登录页面将安全地转发登录凭据(可能以某种约定格式加密和哈希)到我们客户提供的“远程身份验证”URL。
- 客户的脚本将验证用户,然后将其重定向回我们的网站并附带“身份验证状态”。
- 我们的页面将分析“身份验证状态”,并接受用户是否已登录。
即使上述信息是半正确的,我们仍然需要每个用户在我们的系统中拥有一个账户。难道我们不需要一些方法来将我们的用户账户配置文件与LDAP目录中的用户配置文件同步吗?这只是一个引用LDAP系统中用户ID的“外部ID”吗?那么客户的“远程身份验证”脚本是否必须向我们的系统提供该ID,以便我们知道将登录与哪个用户账户关联?
我们漏掉了什么?
顺便说一下,我们的平台是IIS、ASP.Net 2.0和SQL Server 2005。