Sun OpenSSO (現在は ForgeRock OpenAM) の経験がある方をお待ちしています。
Java/JBoss EAP 5.0 で OpenSSO Client SDK を使用して、ActiveDirectory 内のすべてのグループを取得しようとしています。
Web で見つけたさまざまなサンプルとコード スニペットを組み合わせて次のことを試しましたが、これは失敗し、最終的に「ユーザー以外の ID のメンバーシップは許可されていません」とログに記録されます。基本的なアプローチは、 AMIdentityRepository -> getRealmIdentity() -> getMemberships(IdType.GROUP) を使用することでした:
SSOTokenManager manager = SSOTokenManager.getInstance();
String tokenString = URLDecoder.decode(tokenID, "ISO-8859-1");
SSOToken token = manager.createSSOToken(tokenString);
if (manager.isValidToken(token)) {
SSOToken adminToken = (SSOToken)AccessController.
doPrivileged(AdminTokenAction.getInstance());
AMIdentityRepository rep = new AMIdentityRepository(adminToken, "/");
AMIdentity identity = rep.getRealmIdentity();
Set groups = identity.getMemberships(IdType.GROUP);
}
ユーザーがグループのメンバーであるかどうかを判断したり、ユーザーのグループを取得したりしようとしているのではなく、すべてのグループのリストを取得しようとしていることに注意してください。
任意の提案をいただければ幸いです - ありがとう!