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