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