この章では、Oracle Unified Directoryのマッピングについて説明します。この章の内容は次のとおりです:
アイデンティティ・マッパーは、クライアントから提供される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です。
次のアイデンティティ・マッパーをサーバーで使用できます:
完全一致アイデンティティ・マッパーは、指定IDを値として持つ指定属性を含むエントリを検索することにより、ID文字列をユーザー・エントリにマップします。たとえば、DIGEST-MD5認証用にクライアントによって提供されるユーザー名は、uid属性値と一致する必要があります。この属性は、アイデンティティ・マッパー構成で指定されている必要があります。
これは、単純バインドと、GSSAPI以外のすべてのSASLバインドで主に使用されます。
一致と置換アイデンティティ・マッパーでは、適切なユーザー・エンティティを検索する際に、正規表現を使用して、指定IDを変換します。
たとえば、指定IDが電子アドレスまたはKerberosプリンシパルであるが、マッピング・プロセスで使用できるのがユーザー名(@
記号の前の部分)のみである場合などに、このマッパーが使用されます。指定ID文字列のすべてまたは一部が指定マッチ・パターンと一致する場合のみ、置換が行われます。ID文字列の一部が指定パターンと一致しなかった場合、指定ID文字列が変更なしで使用されます。
これは、主にGSSAPIバインドで使用されます。
アイデンティティ・マッパーと直接関係するのは次のコンポーネントです:
グローバル構成には、Oracle Unified Directoryの操作全体に影響するプロパティが含まれます。
ネットワーク・グループは、着信クライアント接続を分類して、リクエストをワークフローにルーティングするのに使用されます。
アイデンティティ・マッパーは、次のインスタンスで構成されます:
ネットワーク・グループ
グローバル構成
簡単に言えば、ネットワーク・グループは、そのネットワーク・グループ固有のIDのマッピングに使用される1つ以上のアイデンティティおよび証明書のマッパーを含みます。アイデンティティまたは証明書のマッパーがネットワーク・グループ・レベルで定義されていない場合は、デフォルト設定としてグローバル・アイデンティティ・マッパーが使用されます。
この項には次のトピックが含まれます:
アイデンティティ・マッパーは、デフォルトで、グローバル・レベルで構成されています。あるアイデンティティ・マッパーをグローバルに構成する必要がある場合、次のコマンドを実行してください:
dsconfig set-global-configuration-prop --add "generic-identity-mapper:Exact Match"
このコマンドは、Exact Match
アイデンティティ・マッパーがすでに存在していることが前提になっています。このアイデンティティ・マッパーは、デフォルトで構成されています。
network-group
という名前のデフォルトの既存ネットワーク・グループに対して、次のように、generic-identity-mapperを構成します:
dsconfig set-network-group-prop --group-name network-group --set "generic-identity-mapper:Exact Match"
このコマンドは、Exact Match
アイデンティティ・マッパーがすでに存在していることが前提になっています。このアイデンティティ・マッパーは、デフォルトで構成されています。
通常、ネットワーク・グループごとに1つのアイデンティティ・マッパーが定義されます。generic-identity-mapperは、GSSAPIバインド以外のすべてのバインドに適用されるアイデンティティ・マッパーを定義します。gssapi-identity-mapperは、GSSAPIバインドにのみ適用されるアイデンティティ・マッパーを定義します。
前述したように、完全一致アイデンティティ・マッパーと一致と置換アイデンティティ・マッパーは、通常、それぞれgeneric-identity-mapperとgssapi-identity-mapperとして使用されます。ただし、必要に応じて、別の組合せを選択することもできます。
アイデンティティ・マッパーはregexパターンに基づいて選択されます。したがって、複数のアイデンティティ・マッパーが定義されている場合には、競合が発生することがあります。このような場合、アイデンティティ・マッパーをネットワーク・グループ内で評価する順序を定義することが必須になります。
.競合を解決するために、アイデンティティ・マッパーに対して優先度を定義できます。競合が発生すると、一番優先度が低いアイデンティティ・マッパーが選択され、マッピングに使用されます。優先度が同じ場合の動作は未定義です。
優先度を定義するには、次のコマンドを実行します:
dsconfig -h hostname -p admin_port -D USER set-identity-mapper-prop --mapper-name "Exact Match" --set "priority:2"
優先度値が低い方が実際の優先度が高くなります。ネットワーク・グループの優先度についても、同様の設定方法です。