ユーザーのグループメンバーシップを取得するためにLDAPディレクトリを使用するように構成できるクローズドソースアプリケーションを使用しています。LDAPクエリは自由に設定できます。次に、APIを提供するアプリケーションからのさまざまなソースを統合する必要があります。
私はこれを行うことができるでしょう(擬似コード)
String[] getGroupmembershipsFromAll( String username ) {
String[] groups = new String[];
groups.add( ApiForAppOne.getUserGroups( username ) );
groups.add( ApiForAppTwo.getUserGroups( username ) );
groups.add( ApiForAppThree.getUserGroups( username ) );
return groups;
}
私の考えは、LDAPRFCを実装する「何か」を介してこの関数を公開することです。最後のステップは、servername:389とこのクエリを使用してアプリケーションを構成することです。
(username='username@domain')
(すべてのソースがユーザーを識別するために使用する一般的な基準は、user @domainの形式のWindowsADプリンシパルです)
これを達成する方法を知っていますか?RFC4511を実装することが解決策になる可能性がありますが、RFCは非常に長いため、最初から始めたくありません。おそらく、OpenDS / OpenDJまたはApacheDSに基づいて何かを構築することは実行可能なソリューションですが、これを念頭に置いて設計されているとは思いません。一方、洗練されたソリューションは、APIの結果をLDAPに永続化することかもしれませんが、このデータをJPAを使用して再度取得する必要があるのか、LDAPクエリを使用して取得するのに有効なのかはわかりません。uboundid LDAPサーバーSDKについて何か読んだのですが、おそらくこれは別のオプションです。
これはすべて単なるアイデアであり、私はこの分野での経験がありません。アイデアは非常に高く評価されています。
この情報をどうもありがとう。unboundid sdkと、LDAPサーバーを起動してldifをインポートする例を見てみました。しかし、生産的な使用についてのあなたの意見は、私がjndiまたはldapユニットテストを書く必要があるとき、私は間違いなく無制限に戻るでしょうが、私はおそらく別の解決策を検討すると思います。
私は今、私のニーズをよりよく説明することができます。おそらくこれは無制限によって達成できるか、またはあなたは私がこれを達成するための別の解決策を知っています。クエリをインターセプトし、API(上記の例を参照)を呼び出してデータを取得し、基になるldapディレクトリにフィードする必要があります。おそらくunboundidはこれへのインターフェースを提供します。これについて何か知っていますか?または、ApacheDSの設計についてもっと知りたいですか?このインターセプトの理由は、クエリできるアプリケーションに約100000のエントリが含まれており、それらを必要なLDAPにのみコピーしたいためです。
これについて書くと、別のオプションが表示されます。おそらく、呼び出しを傍受するためにいくつかのaopを実行することが可能です。どう思いますか ?