8 アイデンティティ・ストアの構成
この章の内容は次のとおりです。
関連項目:
『Identity Governance Frameworkによるアプリケーションの開発』のアイデンティティ・ディレクトリAPIの概要
- アイデンティティ・ストアについて
- アイデンティティ・ストア・プロバイダの構成
- アイデンティティ・ストアの構成
- プログラムによるアイデンティティ・ストアの問合せ
- アイデンティティ・ストア用のSSLの構成
親トピック: OPSSサービス
アイデンティティ・ストアについて
アイデンティティ・ストアには、ユーザーとグループの他、そのデータを問い合せることができるサービスが格納されます。デフォルトでは、単一のLDAPアイデンティティ・ストアへの問合せがサポートされます。1つのみではなく、複数のLDAPアイデンティティ・リポジトリに問い合せることが可能になる仮想アイデンティティ・ストアを使用するようにサービスを構成できます。アイデンティティ仮想化の詳細は、「アイデンティティ・ストアの構成」を参照してください。
構成に応じて、サービスではファイルまたは(1つ以上の) LDAPサーバーをアイデンティティのリポジトリとして使用します。LDAP用にサービスを構成すると、デフォルトでは単一のLDAPに問い合せますが、複数のLDAPに問い合せるようにサービスを構成することもできます。
サービスは、Java SE環境で使用できます。Java SEアプリケーションでの仮想化の詳細は、「Java SEアプリケーションでの仮想化の構成」を参照してください。
親トピック: アイデンティティ・ストアの構成
アイデンティティ・ストア・プロバイダの構成
アイデンティティ・ストアを使用する前に、アイデンティティ・ストア・プロバイダを構成する必要があります。OPSSでは、次の構成の例で示すように、ファイルとLDAPの両方のアイデンティティ・ストア・プロバイダがサポートされています。
<serviceProvider type="IDENTITY_STORE" name="idstore.ldap.provider"
class="oracle.security.jps.internal.idstore.ldap.LdapIdentityStoreProvider">
<description>LDAP IdentityStore Provider</description>
</serviceProvider>
<serviceProvider type="IDENTITY_STORE" name="idstore.xml.provider"
class="oracle.security.jps.internal.idstore.xml.XmlIdentityStoreProvider">
<description>XML-based IdentityStore Provider</description>
</serviceProvider>
Active Directoryをアイデンティティ・ストア・プロバイダとして設定した場合、デフォルト値(cn)をオーバーライドするには、jps-config.xml (またはjps-config-jse.xml)でUSERNAME_ATTRプロパティとUSER_LOGIN_ATTRプロパティをsAMAccountNameに設定します。たとえば:
<property value="sAMAccountName" name="username.attr"/> <property value="sAMAccountName" name="user.login.attr"/>
ノート:
virtualizeをtrueに設定する場合は、user.login.attrプロパティとusername.attrプロパティは設定しないでください。
親トピック: アイデンティティ・ストアの構成
アイデンティティ・ストアの構成
次の各項では、アイデンティティ・ストアの構成方法について説明します。
関連項目:
親トピック: アイデンティティ・ストアの構成
アイデンティティ・ストアのパラメータ
次の各項では、アイデンティティ・ストアの構成パラメータの使用方法について説明します。
問合せパラメータ
次のパラメータを使用して、複数のLDAPへの問合せを構成します。
-
virtualizeプロパティ - このプロパティには、true(複数のLDAP検索)またはfalse(単一のLDAP検索)を設定できます。指定しない場合は、デフォルトのfalseに設定されます。 -
グローバル接続パラメータ(
virtualizeプロパティが有効の場合) - コール元のアプリケーションではこれらのパラメータを使用して、グローバルLDAP構成(検索ベース、作成ベースなど)を指定します。これらのパラメータのいずれかを指定しない場合は、デフォルト値が使用されます。 -
バックエンド接続パラメータ - このパラメータは各LDAPストアに固有のものです。各LDAPに対して1セットのバックエンド・パラメータが指定されます。デフォルト値を上書きしない場合は、これらのパラメータを設定する必要がありません。
親トピック: アイデンティティ・ストアのパラメータ
グローバル接続パラメータ
表8-1に、グローバル・パラメータを示します。接続プール・パラメータのリストは、『Identity Governance Frameworkによるアプリケーションの開発』のIDSの構成パラメータを参照してください。
表8-1 LDAPアイデンティティ・ストアのグローバル・パラメータ
| パラメータ | デフォルト値 |
|---|---|
|
|
user.create.basesと同じ |
|
|
groupofuniquenames |
|
|
デフォルト値なし |
|
|
uniquemember |
|
|
groupofuniquenames |
|
|
デフォルト値なし |
|
|
デフォルト値なし |
|
|
デフォルト値なし |
|
|
cn |
|
|
デフォルト値なし |
|
|
デフォルト値なし |
|
|
認証プロバイダが1つしかない場合は、作成ベース値が使用されます。複数ある場合は、デフォルト値が設定されません。 |
|
|
inetorgperson |
|
|
uid |
|
|
デフォルト値なし |
|
|
inetorgperson |
|
|
group.search.basesと同じ |
|
|
cn |
関連項目:
親トピック: アイデンティティ・ストアのパラメータ
サービス構成の理解
LDAP認証プロバイダは、Oracle WebLogic Server管理コンソールまたはWebLogic Scripting Tool (WLST)を使用して構成します。実行時に、サーバーから構成の詳細がOPSSに渡されます。
WebLogic Serverドメインでは、指定したコンテキストで複数の認証プロバイダを構成できます。デフォルトでは、リストで最初の認証プロバイダを使用してアイデンティティ・ストアが初期化されます。認証プロバイダの詳細は、「複数の認証プロバイダのサポート」を参照してください。
複数のLDAPに問い合せるには、virtualizeプロパティの設定が必要です。
次の各項では、いくつかの構成について説明します。
- 単一のLDAP用のサービスの構成
- 仮想化を指定しない複数のLDAP用のサービスの構成
- Fusion Middleware Controlを使用した複数のLDAP用のサービスの構成
- WLSTを使用したサービスの構成
- WLSTを使用したタイムアウト設定の構成
- その他のパラメータの構成
- サーバーの再起動
- 単一および複数のLDAPの構成
親トピック: アイデンティティ・ストアの構成
単一のLDAP用のサービスの構成
次の例では、単一のLDAPサービス・インスタンスの構成を示します。
<!-- JPS WLS LDAP Identity Store Service Instance -->
<serviceInstance name=idstore.ldap provider=idstore.ldap.provider>
<property name=idstore.config.provider value=oracle.security.jps.wls.internal.idstore.
WlsLdapIdStoreConfigProvider/>
<property name=CONNECTION_POOL_CLASS
value=oracle.security.idm.providers.stdldap.JNDIPool/>
</serviceInstance>親トピック: サービス構成の理解
仮想化を指定しない複数のLDAP用のサービスの構成
virtualizeプロパティを設定できない場合は、複数のLDAPに問い合せて、WebLogic Serverの構成をオーバーライドするようにサービスを構成できます。複数のLDAPを指定するには、LDAP URLのカンマ区切りリストを使用します。
<property name="ldap.url", value="ldap://host1:port1,ldap://host2:port2"/>
親トピック: サービス構成の理解
Fusion Middleware Controlを使用した複数のLDAP用のサービスの構成
Fusion Middleware Controlを使用して複数のLDAPに対するサービスを構成するには、次の手順を実行します。
親トピック: サービス構成の理解
WLSTを使用したタイムアウト設定の構成
WLSTを使用してアダプタ・タイムアウトを設定するには、次の手順を実行します。
関連項目:
『Identity and Access ManagementのためのWebLogic Scripting Toolコマンド・リファレンス』のmodifyLDAPAdapterに関する項
親トピック: サービス構成の理解
その他のパラメータの構成
必要に応じて、jps-config.xmlファイルの構成を更新して、「アイデンティティ・ストアのパラメータ」に記載されている問合せパラメータを設定します。これらのパラメータはオプションであり、デフォルト値があります。
親トピック: サービス構成の理解
単一および複数のLDAPの構成
次の例では、単一のLDAPの構成を示します。
<serviceInstance name=idstore.ldap provider=idstore.ldap.provider>
<property name=idstore.config.provider value=oracle.security.jps.wls.internal.idstore.
WlsLdapIdStoreConfigProvider/>
<property name=CONNECTION_POOL_CLASS
value=oracle.security.idm.providers.stdldap.JNDIPool/>
</serviceInstance>
次の例では、複数のLDAPの構成を示します。
<serviceProviders>
<serviceProvider type="IDENTITY_STORE" name="idstore.ldap.provider"
class="oracle.security.jps.internal.idstore.ldap.LdapIdentityStoreProvider">
<description>LDAP IdentityStore Provider</description>
</serviceProvider>
</serviceProviders>
<serviceInstances>
<!-- IDstore instance connecting to multiple ldap -->
<serviceInstance name="idstore.virtualize" provider="idstore.ldap.provider">
<!-- indicates using WLS ldap authentication providers -->
<property name="idstore.config.provider"
value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"/>
<!-- enable virtualization -->
<property name="virtualize" value="true"/>
<!-- ldap properties (if not supplied, then it uses default values) -->
<extendedProperty>
<name>user.create.bases</name>
<values>
<value>cn=users_front,dc=us,dc=example,dc=com</value>
</values>
</extendedProperty>
<extendedProperty>
<name>group.create.bases</name>
<values>
<value>cn=groups_front,dc=us,dc=example,dc=com</value>
</values>
</extendedProperty>
</serviceInstance>
</serviceInstances>
<jpsContexts default="default">
<!-- the identity store uses multiple ldaps -->
<jpsContext name="default">
<!-- use multiple ldap -->
<serviceInstanceRef ref="idstore.virtualize"/>
<!-- .....other services -->
</jpsContext>
</jpsContexts>
</jpsConfig>
次の点に注意してください:
-
サービス・インスタンスの
virtualizeプロパティはtrueであり、この値により、複数のLDAPディレクトリに問い合せることができます。 -
extendedProperty要素を使用すると、デフォルト値をオーバーライドするようにフロントエンド・パラメータを設定できます。
関連項目:
親トピック: サービス構成の理解
分割プロファイルの構成
アイデンティティ仮想化では分割プロファイルがサポートされており、アイデンティティ属性が複数のLDAPリポジトリに格納されている場合、その属性にアプリケーションでアクセスできます。
この機能には、ID仮想化のためのアダプタ構成に記載されている追加構成が必要です。
親トピック: アイデンティティ・ストアの構成
カスタム認証プロバイダの構成
OPSSでは、アイデンティティへのアクセスにWebLogic認証プロバイダがサポートされています。使用可能なプロバイダが特定のLDAPサーバーに適合していない場合は通常、カスタマイズします。この項では、カスタム認証プロバイダを構成して使用する方法について説明します。
カスタムLDAP認証プロバイダを使用する場合に、次の構成では、jps-config.xmlのidstore.typeをオーバーライドすることで、プロバイダが適切なLDAPプラグインを検出できるようにLDAPタイプを使用する方法を示します。
<serviceInstance name="idstore.ldap" provider="idstore.ldap.provider">
<property name="idstore.config.provider"
value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"
/>
<property name="CONNECTION_POOL_CLASS"
value="oracle.security.idm.providers.stdldap.JNDIPool" />
<property value="true" name="virtualize" />
<serviceInstanceRef ref="myGenericLDAPName"/>
</serviceInstance>
<serviceInstance name="myGenericLDAPName" provider="idstore.ldap.provider">
<!-- overrides the 'idstore.type' property -->
<property name="idstore.type" value="ACTIVE_DIRECTORY" />
</serviceInstance>
追加のLDAPプロバイダ・インスタンスをオーバーライドするには、同様のエントリを挿入します。プロバイダ構成の詳細は、「Fusion Middleware Controlを使用したセキュリティ・プロバイダの構成」を参照してください。
親トピック: アイデンティティ・ストアの構成
Java SEアプリケーションでの仮想化の構成
Java SEアプリケーションの場合、構成はすべてjps-config-jse.xmlファイルに設定します。必要に応じて、このファイルを次のように編集します。
- 新しいサービス・インスタンスを定義します。
- 新しいサービス・インスタンスをコンテキストに追加して、事前に定義されているインスタンスを置き換えます。
virtualizeを有効にします。
親トピック: アイデンティティ・ストアの構成
プログラムによるアイデンティティ・ストアの問合せ
アイデンティティ・ストアにプログラムで問い合せるには、OPSS APIを使用してコンテキストを取得します。このコンテキストは、ストア・インスタンスを取得するブリッジのように機能します。続いて、ユーザーおよびロールAPIを使用して、ストア・インスタンスに問い合せます。
try {
//find the JPS context
JpsContextFactory ctxFactory = JpsContextFactory.getContextFactory();
JpsContext ctx = ctxFactory.getContext();
//find the JPS IdentityStore service instance
//(assuming the back-end is ldap type)
LdapIdentityStore idstoreService = (LdapIdentityStore)ctx.getServiceInstance(IdentityStoreService.class)
//get the User/Role API's Idmstore instance
oracle.security.idm.IdentityStore idmIdentityStore = idstoreService.getIdmStore();
//use the User/Role API to query ID store
//
//alternatively, instead of using IdentityStore, use the
//IdentityDirectory to access LDAP
oracle.igf.ids.IdentityDirectory ids = idstoreService.getIdentityStore();
} catch (Exception e) {
e.printStackTrace()
}関連項目:
親トピック: アイデンティティ・ストアの構成
アイデンティティ・ストア用のSSLの構成
アイデンティティ・ストアとLDAPサーバーの間ではSecure Sockets Layer (SSL)接続を使用できます。アイデンティティ・ディレクトリAPIとユーザーおよびロールAPIのいずれも、複数のLDAPで動作できます。
アイデンティティ・ストアへの接続がWebLogic Serverのクライアントから始まる場合、SSL構成はサーバーで処理されます。
親トピック: アイデンティティ・ストアの構成