2

信頼できる ID を使用して Java の 1 つのドメイン (A.domain.com) と別のドメイン (B.lmig.com) で Active Directory グループのメンバーを検索しようとしています。ID に接続し、ldp および ADUC を介して正常に検索を実行できるため、信頼が正しく構成されていることがわかります。ただし、次のコードを使用します。

Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://A.domain.com:389/");
env.put(Context.SECURITY_AUTHENTICATION, "simple");

env.put(Context.SECURITY_PRINCIPAL, "id@B.domain.com");
env.put(Context.SECURITY_CREDENTIALS, "*******");

env.put(Context.REFERRAL, "follow");
InitialLdapContext ctx = new InitialLdapContext(env, null);

String base = "DC=A,DC=domain,DC=com";

String filter = "(memberof=CN=grouptest,OU=someplace,OU=somewhere,OU=thegroups,DC=A,DC=domain,DC=com)";

SearchControls controls = new SearchControls();
controls.setSearchScope(SearchControls.SUBTREE_SCOPE);

NamingEnumeration<SearchResult> answer = ctx.search(base, filter, controls);

次の例外が発生します。これは、ユーザー ID が存在しないことを示しているようです。

Exception in thread "main" javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece

私の質問は、ID が「B.domain.com」ドメインにあり、「A. domain.com」ドメイン?LDP と ADUC を介して検索を実行できるので、構成が欠落しているか、間違ったドメインを参照しているに違いありません。

4

1 に答える 1

0

LDAP エラー コード 49 は無効な認証情報です。データ525は、そのようなユーザがいないことを示している。

私の経験では、security_principalは通常、電子メール アドレスではなく、識別名 (DN) です。

私たちのシステムでは、AD で を含む電子メールを検索し(sAMAccountName=id@b.domain.com)て、DN. 次に、DNが に使用されますsecurity_principal

于 2012-08-02T18:26:31.827 に答える