13 Oracle Unified Directoryでのアイデンティティ・マッピングの理解
この項に含まれる次のトピックでは、Oracle Unified Directoryのアイデンティティ・マッピングについて説明します。
13.1 アイデンティティ・マッパーの概要
アイデンティティ・マッパーは、クライアントから提供されるID文字列と、そのIDに対応するユーザーのエントリ間にマッピングを構築します。
アイデンティティ・マッパーは、複数のSASLメカニズムを処理して、認証ID(たとえば、GSSAPIを使用している場合はKerberosプリンシパル)をディレクトリ・ユーザーにマップします。アイデンティティ・マッパーは、プロキシ設定された認可制御によりリクエストを処理する際にも使用されます。
Oracle Unified Directoryは、複数のSASLアイデンティティ・マッパーをサポートします。たとえば、ユーザーxyz用にはアイデンティティ・マッパー1を使用し、残りのユーザーにはアイデンティティ・マッパー2を使用したりできます。これは、GSSAPIの利用時、@example.comと@oracle.comなど、ドメインの異なるユーザーに対して別々のアイデンティティ・マッパーが必要となる場合に便利です。
また、Oracle Unified Directoryは、DNではなくバインドIDであるID文字列に対するサポートも提供しています。ただし、これは、単純なバインドの場合にかぎられます。重要なことは、クライアントが、対応するアイデンティティ・マッパーによって許可されている単純バインドで属性を指定できる必要があるということです。次の例を参考にしてください。
ldapsearch -D "user@example.com" -w password -b "" objectclass=*
この例では、バインドIDはユーザーの電子メールIDです。
13.2 サポートされているアイデンティティ・マッパー
アイデンティティ・マッパーは、クライアントから提供されるID文字列と、そのIDに対応するユーザーのエントリ間にマッピングを構築します。
次の各トピックでは、サーバーで使用可能なアイデンティティ・マッパーについて説明します。
13.2.1 完全一致アイデンティティ・マッパーについて
完全一致アイデンティティ・マッパーは、指定IDを値として持つ指定属性を含むエントリを検索することにより、ID文字列をユーザー・エントリにマップします。
たとえば、DIGEST-MD5認証用にクライアントによって提供されるユーザー名は、uid属性値と一致する必要があります。
ノート:
この属性をアイデンティティ・マッパー構成で指定する必要があります。
このマッパーは、単純バインドと、GSSAPI以外のすべてのSASLバインドで主に使用されます。
13.2.2 一致と置換アイデンティティ・マッパーについて
一致と置換アイデンティティ・マッパーでは、適切なユーザー・エンティティを検索する際に、正規表現を使用して、指定IDを変換します。
たとえば、指定IDが電子アドレスまたはKerberosプリンシパルであるが、マッピング・プロセスで使用できるのがユーザー名(@記号の前の部分)のみである場合などに、このマッパーを使用できます。
ノート:
指定ID文字列のすべてまたは一部が指定マッチ・パターンと一致する場合のみ、置換が行われます。ID文字列の一部が指定パターンと一致しなかった場合、指定ID文字列が変更なしで使用されます。
このマッパーは、主にGSSAPIバインドで使用されます。
13.3 アイデンティティ・マッパーのコンポーネント
コンポーネントの中には、アイデンティティ・マッパーと直接関係するものがあります。
次の各トピックでは、アイデンティティ・マッパーと直接関係するコンポーネントについて説明します。
13.4 アイデンティティ・マッパーの構成
ネットワーク・グループ・インスタンスおよびグローバル構成インスタンスに対してアイデンティティ・マッパーを構成する必要があります。
各ネットワーク・グループには1つ以上のアイデンティティと証明書のマッパーがあり、それを使用して、そのネットワーク・グループ固有のアイデンティティがマッピングされます。アイデンティティまたは証明書のマッパーがネットワーク・グループ・レベルで定義されていない場合は、デフォルト設定としてグローバル・アイデンティティ・マッパーが使用されます。
この項では、次の項目について説明します。
13.4.1 グローバル・アイデンティティ・マッパーの構成
アイデンティティ・マッパーは、デフォルトで、グローバル・レベルで構成されています。
アイデンティティ・マッパーをグローバルに構成するには、次のコマンドに従います。
dsconfig set-global-configuration-prop --add "generic-identity-mapper:Exact Match"
このコマンドは、Exact Matchアイデンティティ・マッパーがすでに存在していることが前提になっています。このアイデンティティ・マッパーは、デフォルトで構成されています。
13.4.2 ネットワーク・グループ・アイデンティティ・マッパーの構成
network-groupという名前のデフォルトの既存ネットワーク・グループに対してgeneric-identity-mapperを構成できます。
network-groupのgeneric-identity-mapperを構成するには、次のコマンドに従います。
dsconfig set-network-group-prop --group-name network-group --set "generic-identity-mapper:Exact Match"
このコマンドは、Exact Matchアイデンティティ・マッパーがすでに存在していることが前提になっています。このアイデンティティ・マッパーは、デフォルトで構成されています。
13.5 汎用アイデンティティ・マッパーとGSSAPIアイデンティティ・マッパーとの違いの理解
通常、ネットワーク・グループごとに1つのアイデンティティ・マッパーが定義されます。generic-identity-mapperは、GSSAPIバインド以外のすべてのバインドに適用されるアイデンティティ・マッパーを定義します。gssapi-identity-mapperは、GSSAPIバインドにのみ適用されるアイデンティティ・マッパーを定義します。
前述したように、完全一致アイデンティティ・マッパーと置換アイデンティティ・マッパーは、通常、それぞれgeneric-identity-mapperとgssapi-identity-mapperとして使用されます。ただし、必要に応じて、別の組合せを選択することもできます。
13.6 アイデンティティ・マッパーの優先度の定義
アイデンティティ・マッパーは、regexパターンに基づいて選択されます。このため、複数のアイデンティティ・マッパーが定義されているときには、競合が発生する可能性があります。このような場合、アイデンティティ・マッパーをネットワーク・グループ内で評価する順序を定義することが必須になります。
.競合を解決するために、アイデンティティ・マッパーに対して優先度を定義できます。競合が発生すると、一番優先度が低いアイデンティティ・マッパーが選択され、マッピングに使用されます。優先度が同じ場合の動作は未定義です。
優先度を定義するには、次のコマンドを実行します:
dsconfig -h hostname -p admin_port -D USER set-identity-mapper-prop --mapper-name "Exact Match" --set "priority:2"
優先度値が低い方が実際の優先度が高くなります。ネットワーク・グループの優先度についても、同様の設定方法です。