8

一部の既存のシステムに対して、LDAPを使用した承認および認証メカニズムの実装を開始しています。開発段階で、私は難しい設計上の決定に直面しています。ユーザーの役割をどこに保存する必要があるのでしょうか。

RDBMSを使用した場合、ロールとユーザーをマップするためのuserroleuser_roleの3つのテーブルがあるように見えます。

利用可能な解決策を提案してください。ユーザーの役割をDBに保存し、ユーザーをLDAPに保存することを考えていますが、それが最善の解決策かどうかはわかりません。アプリケーションサーバーとしてJBossを使用しています。

4

1 に答える 1

8

アーキテクチャの観点からは、複数のソリューションがあります。これは、すべてのデータをディレクトリに保持するソリューションです。

groupOfNamesディレクトリでは、またはgroup(ディレクトリに応じて)のような「グループ」の意味を持つクラスのオブジェクトを使用して「ロール」をコーディングできます。ユーザーの識別名(DN)は、これらのオブジェクトの複数値属性(通常はmember)にコード化されます。'Role'オブジェクトDNは、代わりに、ユーザーオブジェクトの複数値属性にコード化できます(例memberof:)

ディレクトリが参照整合性をサポートしている場合、それはシステムディレクトリとして機能できます。そうすれば、属性はディレクトリ自体membermemberOf管理できます。これは、ユーザーを組織単位から別の組織単位に移動すると、ディレクトリはmemberユーザーが属する「役割」オブジェクトの属性を更新することを意味します。

その他の場合(参照整合性なし)、アプリケーションは属性の整合性を管理する必要があります。

短いですが、お役に立てば幸いです。


編集済み

何よりもまず、 Apache Directory Studioをお勧めします。これは(私にとって)最高のLDAPブラウザの1つです。このツールを使用すると、ディレクトリを確認し、LDAPをよりわかりやすく学ぶことができます。このツールを使用して、ADAM(Active Directoryアプリケーションモード)がMicrosoftの無料ディレクトリである「ロール」をコード化する方法を示します。

最初の図では、AdminAdamが管理者グループのメンバーとして表示されています。

管理者グループのメンバーとしてのAdminAdam

この2番目の図では、ユーザーadminAdamの属性memberofにグループが存在することを確認できます。

ユーザーadminAdamの属性memberof

ADAMは参照整合性をサポートしています。

于 2011-06-06T05:42:48.070 に答える