我需要在C ++应用程序中针对Active Directory对用户进行身份验证。我知道我需要绑定某些东西并使用用户的专有名称和密码进行身份验证。这个专有名称通常带逗号并且包含用户名。
假设用户在我的应用程序的用户名和密码框中输入内容。如何找到要绑定的专有名称?我是否必须为其编写搜索查询?
答案 0 :(得分:1)
你需要:
根据用户输入表单的内容,通常是电子邮件地址或用户ID或其他独特的内容,在AD中搜索用户的DN。除非AD支持匿名搜索,否则您需要使用具有执行此搜索权限的管理员帐户/密码绑定到它。这是通过LDAP过滤器表达式完成的,这是您需要查找的主题。
当/如果您找到它,请使用该条目的DN和表单中的密码重新绑定到AD。
如果任一步骤失败,登录失败,并且不告诉用户它是哪一步,即不要告诉他“没有这样的用户”或“错误的密码”,只要告诉他“不良凭证”或类似情况在这两种情况下。否则,您正在向攻击者泄露信息。