【问题标题】:LDAP Searching a user in Active directory with UPNLDAP 使用 UPN 在 Active Directory 中搜索用户
【发布时间】:2014-03-09 17:16:51
【问题描述】:

我正在使用 LDAP 身份验证,需要帮助

假设我有一个用户 (user1@zzservers.ad),其中 zzservers.ad 是 demo.com 域的 UPN 别名,我已经知道一种按域在活动目录中搜索用户的方法。

但是有谁知道如何通过 UPN 别名搜索活动目录中的用户。

其实当用户 user1@zzservers.ad 登录应用程序时,我想知道用户是否存在于 AD 中,以便进一步进行身份验证。

任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 我认为这个问题是分开的,更重要的是寻找用户而不是查询域配置。
  • 嗨 mvreijn,那么解决这个问题的方法是什么,通过 UPN 搜索用户,有什么帮助吗?

标签: java groovy active-directory ldap upn


【解决方案1】:

这更像是一个普通的用户搜索:

public String findUserByUPN( LdapContext ctx, String username )
{
   // Domain name should be in DC=your,DC=domain,DC=com format
   String domain = "DC=demo,DC=com";
   String filter = "(userPrincipalName=" + username + ")" ;
   NamingEnumeration<SearchResult> results = ctx.search( domain, filter, null );
   while ( results.hasMore() )
   {
       SearchResult result = results.next();
       // If you get a result here, the user was found
       return result.getNameInNamespace();
   }
   return null;
}

【讨论】:

  • 我没有 demo.com 域,我只有电子邮件 user1@zzservers.ad 并且我想对其进行身份验证,我不知道用户将属于哪个域。
  • 您好 Charu,对于正常的 LDAP 搜索,您需要一个根上下文。所以你有两个选择:要么解析域上下文(通过 DNS:stackoverflow.com/questions/749268/…),要么使用 AD 的 phantom root 搜索控件:msdn2.microsoft.com/en-us/library/aa366988.aspx
  • 感谢 mvreijn 这些链接真的很有帮助,我的问题现在解决了 :)
【解决方案2】:

不确定您要完成什么,但过滤器如下:

(userPrincipalName=jim@YOURDOMAIN.NET)

将根据 userPrincipalName 属性的值定位用户。 -吉姆

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多