Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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
Java 我可以使用LDAP进行Active Directory授权吗?_Java_Active Directory_Ldap_Ldapauth - Fatal编程技术网

Java 我可以使用LDAP进行Active Directory授权吗?

Java 我可以使用LDAP进行Active Directory授权吗?,java,active-directory,ldap,ldapauth,Java,Active Directory,Ldap,Ldapauth,我必须在现有系统中添加Active Directory授权。我已经在使用数据库远程操作系统身份验证。我现在正处于发展阶段。我已经获得了LDAP授权和身份验证的各种链接。因为我只想实现授权,所以我只需要相同的用户名。此外,仅在广告授权中初始化目录的哈希表需要哪些参数 env = new Hashtable<String, String>(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFacto

我必须在现有系统中添加Active Directory授权。我已经在使用数据库远程操作系统身份验证。我现在正处于发展阶段。我已经获得了LDAP授权和身份验证的各种链接。因为我只想实现授权,所以我只需要相同的用户名。此外,仅在广告授权中初始化目录的哈希表需要哪些参数

env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "LDAP://" + domain); 
env.put(Context.SECURITY_AUTHENTICATION, "EXTERNAL"); 
env.put(Context.SECURITY_PROTOCOL, "ssl");
env.put("javax.security.sasl.server.authentication", "true");
env.put(Context.SECURITY_PRINCIPAL, userId + "@" + domain); 
env.put(Context.SECURITY_CREDENTIALS, securityToken);
ctx = new InitialDirContext(env);

SearchResult srLdapUser = this.findAccountByAccountName(ctx, ldapSearchBase, userId);
env=newhashtable();
put(Context.INITIAL\u Context\u工厂,“com.sun.jndi.ldap.LdapCtxFactory”);
env.put(Context.PROVIDER_URL,“LDAP://”+域);
环境put(Context.SECURITY_认证,“外部”);
环境保护协议(Context.SECURITY_PROTOCOL,ssl);
put(“javax.security.sasl.server.authentication”,“true”);
环境put(Context.SECURITY_主体,userId+“@”+域);
环境put(Context.SECURITY\u凭证、securityToken);
ctx=新的初始目录上下文(env);
SearchResult srLdapUser=this.findAccountByAccountName(ctx,ldapSearchBase,userId);

请建议我在哈希表中传递什么,以便通过LDAP进行授权,上面的代码具有LDAP身份验证所需的一些附加属性。

这取决于具体情况,但我建议
HashTable env=new HashTable(11)
设置创建初始上下文的环境。我可以在不传递密码的情况下获取初始上下文吗@埃里克:这个电话不需要传递任何信息。或者,如果您的意思是没有安全认证,那么这取决于在代码中设置两次的安全认证。