40.5. IdM ID 範囲におけるセキュリティーおよび相対識別子のロール
Identity Management (IdM) ID 範囲は、いくつかのパラメーターによって定義されます。
- 範囲名
- 範囲の最初の POSIX ID
- 範囲サイズ: 範囲内の ID の数
- 対応する RID 範囲 の最初の 相対 ID (RID)
- セカンダリー RID 範囲 の最初の RID
これらの値は、ipa idrange-show
コマンドを使用して表示できます。
$ ipa idrange-show IDM.EXAMPLE.COM_id_range
Range name: IDM.EXAMPLE.COM_id_range
First Posix ID of the range: 196600000
Number of IDs in the range: 200000
First RID of the corresponding RID range: 1000
First RID of the secondary RID range: 1000000
Range type: local domain range
セキュリティー識別子
ローカルドメインの ID 範囲からのデータは、IdM サーバーによって内部的に使用され、一意の セキュリティー識別子 (SID) が IdM ユーザーおよびグループに割り当てられます。SID は、ユーザーオブジェクトとグループオブジェクトに格納されます。ユーザーの SID は、以下で構成されます。
- ドメイン SID
- ドメイン SID に追加された 4 桁の 32 ビット値である、ユーザーの 相対識別子 (RID)
たとえば、ドメイン SID が S-1-5-21-123-456-789 で、このドメインのユーザーの RID が 1008 の場合、ユーザーの SID は SID of S-1-5-21-123-456-789-1008 になります。
相対識別子
RID 自体は、次の方法で計算されます。
ユーザーの POSIX UID から範囲の最初の POSIX ID を引き、対応する RID 範囲の最初の RID を結果に追加します。たとえば、idmuser の UID が 196600008、最初の POSIX ID が 196600000、そして最初の RID が 1000 の場合、idmuser の RID は 1008 になります。
ユーザーの RID を計算するアルゴリズムは、対応する RID を計算する前に、特定の POSIX ID が割り当てられた ID 範囲内にあるかどうかをチェックします。たとえば、最初の ID が 196600000 で範囲サイズが 200000 の場合、1600000 の POSIX ID は ID 範囲外となるり、アルゴリズムはその RID を計算しません。
セカンダリー相対識別子
IdM では、POSIX UID は POSIX GID と同一にすることができます。これは、196600008 の UID を持つ idmuser がすでに存在する場合でも、196600008 の GID を持つ新しい idmgroup グループを作成できることを意味します。
ただし、SID で定義できるオブジェクトは、ユーザー または グループの 1 つだけです。idmuser 用にすでに作成されている S-1-5-21-123-456-789-1008 の SID は、idmgroup と共有することはできません。idmgroup の代替 SID を生成する必要があります。
IdM は、SID との競合を避けるために、セカンダリー相対識別子 (セカンダリー RID) を使用します。このセカンダリー RID は、以下で構成されます。
- セカンダリー RID ベース
- 範囲サイズ (デフォルトではベース範囲サイズと同じ)。
上記の例では、セカンダリー RID ベースは 1000000 に設定されています。新しく作成された idmgroup の RID を計算するには、ユーザーの POSIX UID から範囲の最初の POSIX ID を引き、結果にセカンダリー RID 範囲の最初の RID を追加します。したがって、idmgroup には 1000008 の RID が割り当てられます。その結果、idmgroup の SID は S-1-5-21-123-456-789-1000008 になります。
ユーザーまたはグループオブジェクトが以前に手動で設定された POSIX ID で作成されている場合にのみ、IdM はセカンダリー RID を使用して SID を計算します。そうでない場合、自動割り当てにより、同じ ID が 2 回割り当てられることを防ぎます。