使用LDAP对Active Directory实施单点登录的步骤是什么?

What are the steps to implement single sign on against Active Directory using LDAP?

我需要根据我的C应用程序中的Active Directory对用户进行身份验证。我知道我需要绑定到某些东西并使用用户的专有名称和密码进行身份验证。此专有名称通常带有逗号,并包含用户名。

说用户在我的应用程序的用户名和密码框中输入了一些内容。如何找到要绑定的专有名称?我必须为此写一个搜索查询吗?


您需要:

  • 根据用户在表单中输入的内容(通常是电子邮件地址或用户ID或唯一的其他内容)在AD中搜索用户的DN。除非广告支持匿名搜索,否则您将需要使用有权执行此搜索的管理帐户/密码来绑定到它。这是通过LDAP过滤器表达式完成的,这是您需要查找的主题。

  • 如果/如果找到它,则使用该条目的DN和表单中的密码重新绑定到AD。

  • 如果任一步骤失败,则登录失败,并且不告诉用户该步骤是哪一步,即不要告诉他"没有这样的用户"或"密码错误",只需告诉他"错误的凭据"或类似内容在这两种情况下。否则,您会将信息泄漏给攻击者。