Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';无法从Java获取与AD的连接_Java_Active Directory_Ldap - Fatal编程技术网

Can';无法从Java获取与AD的连接

Can';无法从Java获取与AD的连接,java,active-directory,ldap,Java,Active Directory,Ldap,我正在尝试从广告小姐那里检索一些信息:特定分支机构的成员、部门名称、职位 我用了很多例子,包括和,但我不能得到与广告的联系 RDNs: 对于搜索,我使用以下过滤器: public class LdapRetriever { public static void main (String[] args) { Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY,

我正在尝试从广告小姐那里检索一些信息:特定分支机构的成员、部门名称、职位

我用了很多例子,包括和,但我不能得到与广告的联系

RDNs:

对于搜索,我使用以下过滤器:

public class LdapRetriever {
    public static void main (String[] args) {
        Hashtable env = new Hashtable();

        env.put(Context.INITIAL_CONTEXT_FACTORY, 
            "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://" + 
            "ip of domain controller here" + ":389");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        // Also I try to use the following SECURITY_PRINCIPAL: 
        // my login only, my domain\ my login
        env.put(Context.SECURITY_PRINCIPAL, "my login here" + "@" + 
            "my domain here.domain 2 here.main domain here");
        env.put(Context.SECURITY_CREDENTIALS, "my password here");

        try {           
            DirContext ctx = new InitialLdapContext(env,null);
            String returnedAtts[]={"sn","title","department","givenName"};

            SearchControls searchCtls = new SearchControls();  
            searchCtls.setReturningAttributes(returnedAtts);  
            searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);

            String searchFilter = "(&(objectClass=user)(cn=*))";
            String searchBase = 
                "DC=my domain here,DC=domain 2 here,DC=main domain here";

            NamingEnumeration answer = ctx.search(searchBase, 
                searchFilter, searchCtls);
            ...
当我使用
env
中的数据创建目录上下文时,我得到一个异常:

Exception in thread "main" javax.naming.AuthenticationException: 
[LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment:
AcceptSecurityContext error, data 531, vece
Problem searching directory: 
javax.naming.NamingException:[LDAP:error code 1 - 00000000: 
LdapErr: DSID-0C090627, comment: 
In order to perform this operation a successful bind must be completed 
on the connection., data 0, vece]; remaining name 
'DC=my domain here,DC=domain 2 here,DC=main domain here'
如果未指定密码,则会出现以下异常:

Exception in thread "main" javax.naming.AuthenticationException: 
[LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment:
AcceptSecurityContext error, data 531, vece
Problem searching directory: 
javax.naming.NamingException:[LDAP:error code 1 - 00000000: 
LdapErr: DSID-0C090627, comment: 
In order to perform this operation a successful bind must be completed 
on the connection., data 0, vece]; remaining name 
'DC=my domain here,DC=domain 2 here,DC=main domain here'
我已确认我的帐户未锁定

根据:

在我的情况下,它的意思是:“不允许在此工作站登录​", 但使用相同的凭据,我可以登录到域

原因可能是什么?

我的项目使用ldap身份验证。 我已经将您的源代码与我的impl进行了比较。除了SECURITY_主参数外,其他都是相同的

这对我很有用:

String login = "login";
String base = "ou=People,dc=example,dc=com";
String dn = "uid=" + login + "," + base;
env.put( Context.SECURITY_PRINCIPAL, dn );
我的项目使用ldap身份验证。 我已经将您的源代码与我的impl进行了比较。除了SECURITY_主参数外,其他都是相同的

这对我很有用:

String login = "login";
String base = "ou=People,dc=example,dc=com";
String dn = "uid=" + login + "," + base;
env.put( Context.SECURITY_PRINCIPAL, dn );

错误代码531很可能与AD的配置有关。 在某些情况下,用户只能从一个工作站登录,例如您的工作pc。
这在用户的用户工作站字段中配置。

当您无法使用RDP登录到您的广告时,您需要您的广告管理员检查此字段的帐户,并且广告服务器包含在您的用户工作站中,或者此字段已完全删除。

错误代码531很可能与广告的配置有关。 在某些情况下,用户只能从一个工作站登录,例如您的工作pc。
这在用户的用户工作站字段中配置。
当您无法使用RDP登录到您的广告时,您需要您的广告管理员检查此字段的帐户,并且广告服务器已包含在您的用户工作站中,或者此字段已完全删除。

您可以通过发出以下命令从DC确定用户的FDN: { dsquery用户-samid jim

CN=Jim Willeke,CN=Users,DC=mad,DC=Willeke,DC=com }

我们有一些与AD一起工作的软件(假设您知道正确的参数)

您可能会发现使用LDAP浏览器并首先进行身份验证更容易,然后您就知道哪些参数可以工作。我们喜欢。

您可以通过发出以下命令从DC确定用户的FDN: { dsquery用户-samid jim

CN=Jim Willeke,CN=Users,DC=mad,DC=Willeke,DC=com }

我们有一些与AD一起工作的软件(假设您知道正确的参数)


您可能会发现使用LDAP浏览器并首先使用该浏览器进行身份验证更容易,然后您就知道哪些参数可以工作。我们喜欢。

很棒的信息,IBM WebSphere(WAS)v8存在相同的问题,其行为不同于v7。很棒的信息,IBM WebSphere(WAS)v8存在相同的问题,其行为不同于v7。