0
アクティブディレクトリ(AD LDS/ADAM)からすべてのユーザーの一覧を取得しようとしています ただし、次のエラーが表示されます。Active Directory(AD LDS)からユーザーを一覧表示しようとするとエラーが発生する
Lookup failed: javax.naming.NameNotFoundException: [LDAP: error code 32 - 000020 8D: NameErr: DSID-031522C9, problem 2001 (NO_OBJECT), data 0, best match of: 'DC=PORTAL,DC=COMPANY,DC=BE'
マイコード:
public static void main(String[] args) {
try {
DirContext ctx = new InitialDirContext(Environment.getEnvironment());
NamingEnumeration enumeration = ctx
.list("OU=ACCOUNTS,DC=PORTAL,DC=COMPANY,DC=BE");
while (enumeration.hasMore()) {
NameClassPair nc = (NameClassPair) enumeration.next();
System.out.println(enumeration);
}
// Close the context when we're done
ctx.close();
} catch (AuthenticationException e) {
System.out.println("Invalid credentials");
} catch (NamingException e) {
System.out.println("Lookup failed: " + e);
}
}
EDIT:追加の接続の詳細
public static Hashtable getEnvironment() {
// Set up the environment for creating the initial context
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,
"CN=Admin,OU=System Accounts,DC=PORTAL,DC=COMPANY,DC=BE");
env.put(Context.SECURITY_CREDENTIALS, "Pass123");
env.put(Context.REFERRAL, "follow");
return env;
}
サブオーソードou = accountsは存在しますか?検索応答は、基本オブジェクトが 'dc = portal、...'まで一致したことを示します。 –
はい、それは 'DC = PORTAL、DC = COMPANY、DC = BE'のサブディレクトリです。 – Andreas
LDAPに「ディレクトリ」または「サブディレクトリ」がない場合は、「サブ座標」があります。いずれにせよ、検索応答は、検索がfcとして「dc = portal」として進められたことを示す。 LDAPクライアントは 'dc = portal'のサブ座標を検索する権限を持っていますか? –