アーキテクチャの観点からは、複数のソリューションがあります。これは、すべてのデータをディレクトリに保持するソリューションです。
groupOfNamesディレクトリでは、またはgroup(ディレクトリに応じて)のような「グループ」の意味を持つクラスのオブジェクトを使用して「ロール」をコーディングできます。ユーザーの識別名(DN)は、これらのオブジェクトの複数値属性(通常はmember)にコード化されます。'Role'オブジェクトDNは、代わりに、ユーザーオブジェクトの複数値属性にコード化できます(例memberof:)
ディレクトリが参照整合性をサポートしている場合、それはシステムディレクトリとして機能できます。そうすれば、属性はディレクトリ自体memberでmemberOf管理できます。これは、ユーザーを組織単位から別の組織単位に移動すると、ディレクトリはmemberユーザーが属する「役割」オブジェクトの属性を更新することを意味します。
その他の場合(参照整合性なし)、アプリケーションは属性の整合性を管理する必要があります。
短いですが、お役に立てば幸いです。
編集済み
何よりもまず、 Apache Directory Studioをお勧めします。これは(私にとって)最高のLDAPブラウザの1つです。このツールを使用すると、ディレクトリを確認し、LDAPをよりわかりやすく学ぶことができます。このツールを使用して、ADAM(Active Directoryアプリケーションモード)がMicrosoftの無料ディレクトリである「ロール」をコード化する方法を示します。
最初の図では、AdminAdamが管理者グループのメンバーとして表示されています。

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

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