外部アカウント統合  目次

データベースのインストール時か、またはSetupツールを使用して、外部リポジトリのアカウントの使用を選択することができます。 この章では、LDAPサーバーおよび非LDAPユーザー・ストアのアカウントをOracle Service Registryに統合する方法について説明します。

LDAPサーバーは、次のシナリオによってOracle Service Registryと統合できます。

この章では、次の構成例についても説明します。

注意注意

Oracle Service Registryでは、外部ストアは読取り専用として処理されます。 これらの外部ストアに保存されているユーザー・アカウント・プロパティは、Oracle Service Registryでは変更できません。

重要重要

管理者アカウントはLDAPに保存しないでください。account_list.xml(デフォルトでは、管理者のみ)に保存されるユーザーは、LDAPに保存しないことを強くお薦めします。LDAPのユーザーをファイルaccount_list.xmlに保存する必要がある場合は、ファイルからパスワード項目を削除し、アカウントのすべてのプロパティをLDAPに従って変更します。account_list.xmlファイルには、データベースに接続せずにレジストリにログインできるユーザーのリストが含まれています。

別のリポジトリの外部アカウントを統合するには、次のいずれかを実行します。

図26 認証アカウント・プロバイダの選択の設定

認証アカウント・プロバイダの選択の設定

Setupツールの詳細は、「インストール後の再構成」を参照してください。

LDAP  目次

「Account Provider」パネルで「LDAP」を選択します。

次の設定を入力します。

図27 LDAPサービス

LDAPサービス

Oracle Service Registryでは、LDAPサーバーへの接続にJNDIインタフェースが使用されます。次のJNDIプロパティがサーバーに認識される必要があります。(デフォルトのプロパティをカッコ内に示します。)

Naming Provider URL

Javaネーミング・ファクトリ初期プロパティによって指定されるサービス・プロバイダを構成するためのURL文字列(ldap://hostname:389)。

Initial Naming Factory

初期ネーミング・ファクトリのクラス名(com.sun.jndi.ldap.LdapCtxFactory)。

Security Principal

ディレクトリ・サービスへの匿名読取りアクセス用のプリンシパルの名前。

Password

セキュリティ・プリンシパルのパスワード。

Security Protocol

セキュリティ・プロトコルの名前(simple)。

図28 LDAP使用シナリオ

LDAP使用シナリオ

次のLDAP使用シナリオを選択できます。

単一の検索ベースを持つLDAP

このシナリオは簡単です。このシナリオでは、LDAPサーバーは1つのみです。すべてのIDが単一の検索ベースに保存されます。

複数の検索ベースを持つLDAP

このシナリオでは、LDAPサーバーは1つのみですが、ドメインに複数の検索ベースがマップされます。ドメインは、ユーザーのログイン名(DOMAIN/USERNAME)の指定された部分です。すべてのユーザーは、ログイン・ダイアログ・ボックスでドメイン名を指定する必要があります。アカウントまたはグループを管理する場合は、パフォーマンス上の理由から、DOMAIN/USERNAMEの形式を使用することをお薦めします。ドメインが設定されていない場合は、すべてのドメインで検索が実行されます。

ドメインは、動的または静的に指定できます。動的設定の場合は、ドメイン接頭辞、ドメイン接尾辞などを指定する必要があります。静的ドメインはインストール時に直接設定されるため、インストールの時点でわかっている必要があります。

複数のLDAPサービス

このシナリオでは、複数のLDAPサービスが使用されます。DNSを介して適切なLDAPサービスが選択されます。前述のシナリオと同様に、ユーザーはログインする際にドメイン名を指定する必要があります。アカウントまたはグループを管理する場合、ユーザーはドメイン名を設定する必要があります。ドメイン名を指定しなかった場合、ドメインは処理されません。

注意注意

URLの識別名を使用したLDAPサービスの自動検出は、Java 2 SDK、バージョン1.4.1以上でのみサポートされているため、使用するJavaバージョンに注意してください。

LDAPサーバーの自動検出によって、LDAPサーバーのURLおよびポートを組み込む必要がなくなります。たとえば、ldap:///o=JNDITutorial,dc=example,dc=comをURLとして使用できます。実際のURLは、識別名o=JNDITutorial,dc=example,dc=comから推定されます。

LDAPとOracle Service Registryの統合では、JNDI APIが使用されます。詳細は、http://java.sun.com/products/jndi/tutorial/ldap/connect/create.htmlおよびhttp://java.sun.com/j2se/1.4.2/docs/guide/jndi/jndi-dns.html#URLを参照してください。

単一の検索ベースを持つLDAP  目次

インストールには、次の手順を実行します。

  1. 図29に示すように、ユーザー/アカウント検索プロパティを指定します。

  2. 図30に示すように、レジストリ・ユーザー・プロパティをLDAPプロパティにマップします。

  3. 図31に示すように、グループ検索プロパティを指定します。

  4. 図32に示すように、レジストリ・グループ・プロパティをLDAPプロパティにマップします。

図29 ユーザー検索プロパティ

ユーザー検索プロパティ

フィールド説明:

Search Filter

検索フィルタの表記法は、LDAP検索表記法に準拠します。ユーザー・アカウントと一致するLDAPノード・プロパティを指定できます。

Search Base

LDAPは、現行のLDAPノードおよび存在する可能性があるすべての子ノードを含め、このベースから検索されます。

Search Scope

ここでは、LDAPツリー構造のデータの検索範囲を指定できます。

  • Object Scope: 検索ベース・ノードのみが検索されます。

  • One-level Scope: 検索ベースの直接のサブノード(検索ベースの1レベル下のエントリ)のみが検索されます。ベース・エントリは有効範囲には含まれません。

  • Subtree Scope: 検索ベースおよびそのすべてのサブノードが検索されます。

Results Limit

LDAPの検索時に戻される項目の数。

図30 ユーザー・プロパティのマッピング

ユーザー・プロパティのマッピング

Oracle Service Registryユーザー・アカウント・プロパティとLDAPプロパティとの間のマッピングを指定できます。「Add」をクリックすると、行を追加できます。エントリを編集するには、編集する値をダブルクリックします。

次のユーザー・アカウント・プロパティをLDAPサーバーからマップできます。

java.lang.String loginName
java.lang.String email
java.lang.String fullName
java.lang.String languageCode
java.lang.String password
java.lang.String description
java.lang.String businessName
java.lang.String phone
java.lang.String alternatePhone
java.lang.String address
java.lang.String city
java.lang.String stateProvince
java.lang.String country
java.lang.String zip
java.util.Date expiration
java.lang.Boolean expires
java.lang.Boolean external
java.lang.Boolean blocked
java.lang.Integer businessesLimit
java.lang.Integer servicesLimit
java.lang.Integer bindingsLimit
java.lang.Integer tModelsLimit
java.lang.Integer assertionsLimit
java.lang.Integer subscriptionsLimit

重要重要

レジストリ・アカウント・プロパティdnによって、LDAP識別名が指定されます。この値はLDAPベンダーによって異なります。

  • Sun ONE Directory Serverでは、この値はentryDNです。

  • Microsoft Active Directoryでは、この値はdistinguishedNameです。

オプションのプロパティ(emailなど)がLDAPに存在しない場合、プロパティの値はデフォルトのアカウントに従って設定されます。デフォルトのアカウントは、account_core.xmlという構成ファイルで指定されます。

注意注意

図30で指定したユーザー・アカウント・プロパティは、レジストリ・コントロールおよびレジストリAPIでは読取り専用として処理されます。

詳細は、「開発者ガイド」のuserAccountデータ構造に関する説明を参照してください。

図31 グループ検索プロパティ

グループ検索プロパティ

フィールド説明:

Search Filter

検索フィルタの表記法は、LDAP検索表記法に準拠します。グループと一致するLDAPノード・プロパティを指定できます。

Search Base

LDAPは、現行のLDAPノードおよび存在する可能性があるすべての子ノードを含め、このベースから検索されます。

Search Scope

ここでは、LDAPツリー構造のデータの検索範囲を指定できます。

  • Object Scope: 検索ベース・ノードのみが検索されます。

  • One-level Scope: 検索ベースおよびその直接のサブノードが検索されます。

  • Subtree Scope: 検索ベースおよびそのすべてのサブノードが検索されます。

図32 グループ・プロパティのマッピング

グループ・プロパティのマッピング

Oracle Service Registryグループ・プロパティとLDAPプロパティとの間のマッピングを指定できます。 「Add」をクリックすると、行を追加できます。エントリを編集するには、編集する値をダブルクリックします。

プロパティ(descriptionなど)がLDAPに存在しない場合、プロパティの値はデフォルトのグループに従って設定されます。デフォルトのグループ(groupInfo)は、group.xmlという構成ファイルで指定されます。

詳細は、「開発者ガイド」のグループ・データ構造に関する説明を参照してください。

複数の検索ベースを持つLDAP  目次

インストールには、次の手順を実行します。

  1. 図33に示すように、ドメイン・デリミタ、ドメイン接頭辞およびドメイン接尾辞を指定します。

  2. 図34に示すように、ドメインを有効または無効にします。

  3. 図29に示すように、ユーザー検索プロパティを指定します。

  4. 図30に示すように、レジストリ・ユーザー・プロパティをLDAPプロパティにマップします。

  5. 図31に示すように、グループ検索プロパティを指定します。

  6. 図32に示すように、レジストリ・グループ・プロパティをLDAPプロパティにマップします。

図33 ドメイン・デリミタ

ドメイン・デリミタ

フィールド説明:

Domain Delimiter

ドメインとユーザー名を区切る文字を指定します。空のままにした場合は、すべてのドメインからユーザーが検索されます。

「Domain Prefix」、「Domain Postfix」

ドメインは、{domain prefix}domain_name{domain postfix}{search base}というパターンを使用して検索されます。

{domain prefix}は、domain prefixというプロパティの値です。{domain postfix}は、domain postfixというプロパティの値です。{searchbase}は、searchbaseというプロパティの値です。

図34 ドメインの有効化/無効化

ドメインの有効化/無効化
Enable Domains

左の列: ユーザーがログイン時に使用するドメイン名。右の列: 識別ドメイン名。

Disable Domains

無効にするドメインの識別ドメイン名を入力します。

複数のLDAPサービス  目次

DNSを介して適切なLDAPサービスが選択されます。インストールには、次の手順を実行します。

  1. 図29に示すように、ユーザー/アカウント検索プロパティを指定します。

  2. 図30に示すように、レジストリ・ユーザー・プロパティをLDAPプロパティにマップします。

  3. 図31に示すように、グループ検索プロパティを指定します。

  4. 図32に示すように、レジストリ・グループ・プロパティをLDAPプロパティにマップします。

LDAP over SSL/TLS  目次

任意のディレクトリ・サーバーに対してLDAP over SSL(またはTLS)を設定するには、構成のみが必要です。 まず、SSLを使用しないLDAPに接続されたOracle Service Registryをインストールすることをお薦めします。これによって、SSLの使用を構成する前に、このディレクトリに定義されたユーザーとしてログインして構成を検証できます。

この構成手順は、Oracle Service RegistryをLDAPアカウント・プロバイダとともにすでにインストールしていることを前提としています。 Oracle Service Registryは実行中でない必要があります。

クライアント認証のないLDAP over SSL  目次

この場合は、LDAPサーバー認証のみが必要です。このような場合が一般的です。

Oracle Service Registryの実行に使用されるJavaのバージョンに応じて、次のいずれかの方法でREGISTRY_HOME/app/uddi/conf/directory.xmlファイルを編集します。

  • Oracle Service Registryが常にJava 1.4.2以上で実行される場合:

    1. ldapsプロトコル、およびディレクトリ・サーバーがSSL/TLS接続を受け入れるポートが使用されるようにjava.naming.provider.urlプロパティを変更します。たとえば、ldaps://sranka.in.idoox.com:636です。

  • Oracle Service Registryが1.4.2より低いJavaバージョンで実行されることがある場合:

    1. java.naming.provider.urlプロパティをldapプロトコルを使用する適切なURLに変更します。たとえば、ldap://sranka.in.idoox.com:636です。

    2. 名前がjava.naming.security.protocolで値がsslの新しいプロパティをjava.naming.provider.urlプロパティの後に追加します。

次に例を示します。

例1 ディレクトリ構成

<config name="directory" savingPeriod="5000">
  <directory>
    <!-- LDAP over (SSL/TLS) unprotected connection -->
    <!--
    <property name="java.naming.provider.url" value="ldap://hostname:47361"/>
    -->
    <!-- LDAP over SSL/TLS for Java 1.4.2 and later -->
    <!--
    <property name="java.naming.provider.url" value="ldaps://hostname:636"/>
    -->
    <!-- LDAP over SSL/TLS for Java where LDAP over SSL is supported -->
    <property name="java.naming.provider.url" value="ldap://hostname:636"/>
    <property name="java.naming.security.protocol" value="ssl"/>
    ...
    ...
    ...
  </directory>
</config>

いずれの場合も、java.naming.provider.urlプロパティで指定されるホスト名が、ディレクトリ・サーバー証明書のサブジェクト共通名(証明書のサブジェクトのCN部分)にある名前と一致するようにしてください。 そうしない場合、Oracle Service Registryの起動時に例外が発生します。ホスト名検証エラーが通知されます。スタック・トレースに、使用する必要があるホスト名が含まれています。

相互認証のあるLDAP over SSL  目次

Oracle Service Registryでは、相互認証のあるLDAP over SSLはサポートされていません。

LDAPサーバーの信頼の確認  目次

SSL/TLSサーバーに接続するクライアントは、そのサーバーとの通信を確立する場合、サーバー証明書を信頼する必要があります。前述のLDAPSの構成は、信頼を確立するためのデフォルトのルールをJSSE(SSL/TLSのJava実装)から継承しています。これは、トラスト・ストアに基づいてます。

クライアント/サーバー証明書を検証するためにトラスト・ストアが必要な場合は、次の場所が順に検索されます。

  1. javax.net.ssl.trustStoreシステム・プロパティによって指定されているファイル(定義されている場合)

  2. そうでない場合は、ファイルJAVA_HOME¥jre¥lib¥security¥jssecacerts(存在する場合)

  3. そうでない場合は、ファイルJAVA_HOME¥jre¥lib¥security¥cacerts(存在する場合)

最初のオプションを使用して、実行するアプリケーション専用のトラスト・ストアを定義することをお薦めします。この場合は、レジストリ(または、移植されるレジストリのJVM環境)を起動するコマンドを変更して、次のJavaシステム・プロパティを定義する必要があります。

プロパティ説明

javax.net.ssl.trustStore

トラスト・ストア・ファイルの絶対パス

javax.net.ssl.trustStorePassword

トラスト・ストア・ファイルのパスワード

サーバー証明書が信頼できることを確認するには、次の手順を実行する必要があります。

  1. LDAPサーバーの管理者に連絡し、サーバーの証明書またはその証明書に署名した認証局の証明書を取得します。

  2. Java keytoolを使用してトラスト・ストアに証明書をインポートします。

    keytool -import -trustcacerts -alias alias -file file -keystore keystore -storepass storepass
                            

    次に、各パラメータについて説明します。

    alias

    トラスト・ストア内の証明書に対する必須の一意の別名。

    file

    証明書が含まれているファイル(通常の拡張子は.crt)。

    keystore

    任意のキーストア・ファイル。

    storepass

    キーストア・ファイルを改ざんから保護するために設計されたパスワード。 通常、Javaレベルのキーストア(cacertsおよびjssecacerts)にはパスワードchangeitが必要です。

LDAP構成の例  目次

単一の検索ベースを持つOracle Internet Directory  目次

この例では、LDAPの単一の検索ベースでのシナリオに従ってOracle Internet Directoryを構成する方法を示します。

図35に、LDAPサーバーに保存されるユーザー・プロパティを示します。

図35 LDAP内のユーザー・プロパティ

LDAP内のユーザー・プロパティ

図36に、LDAPサーバーに保存されるグループ・プロパティを示します。

図36 LDAP内のグループ・プロパティ

LDAP内のグループ・プロパティ

次の表に、このシナリオを使用してOracle Service Registryを構成する方法を示します。

構成プロパティ構成値参照先
Naming Provider URLldap://localhost:389図27
Initial Naming Factorycom.sun.jndi.ldap.LdapCtxFactory図27
Security Principalcn=Joe Patroni,cn=Users,ou=uddi,dc=in,dc=idoox,dc=com図27
Security Protocolsimple図27
ユーザー・プロパティ  
Search FilterobjectClass=person図29
Search Basecn=Users,dc=in,dc=idoox,dc=com図29
Search ScopeSubtree Scope図29
Results Limit100図29
telephoneNumberphone図30
uidloginName図30
cnfullName図30
mailemail図30
グループ・プロパティ  
Search FilterobjectClass=groupofuniquenames図31
Search Basecn=Groups,dc=in,dc=idoox,dc=com図31
Search ScopeSubtree Scope図31
Results Limit100図31
creatorsNameowner図32
descriptiondescription図32
uniqueMembermember図32
cnname図32
単一の検索ベースを持つSUN One  目次

この例では、LDAPの単一の検索ベースでのシナリオに従ってSun One Directory Server 5.2を構成する方法を示します。

図37に、LDAPサーバーに保存されるユーザー・プロパティを示します。

図37 LDAP内のユーザー・プロパティ

LDAP内のユーザー・プロパティ

図38に、LDAPサーバーに保存されるグループ・プロパティを示します。

図38 LDAP内のグループ・プロパティ

LDAP内のグループ・プロパティ

次の表に、このシナリオを使用してOracle Service Registryを構成する方法を示します。

構成プロパティ構成値参照先
Naming Provider URLldap://localhost:389図27
Initial Naming Factorycom.sun.jndi.ldap.LdapCtxFactory図27
Security Principaluid=JPatroni,ou=people,dc=in,dc=idoox,dc=com図27
Security Protocolsimple図27
ユーザー・プロパティ  
Search FilterobjectClass=person図29
Search Baseou=people,dc=in,dc=idoox,dc=com図29
Search ScopeSubtree Scope図29
Results Limit100図29
telephoneNumberphone図30
uidloginName図30
cnfullName図30
mailemail図30
グループ・プロパティ  
Search FilterobjectClass=groupofuniquenames図31
Search Baseou=groups,dc=in,dc=idoox,dc=com図31
Search ScopeSubtree Scope図31
Results Limit100図31
creatorsNameowner図32
descriptiondescription図32
uniqueMembermember図32
cnname図32
複数の検索ベースを持つSun One  目次

この例では、複数の検索ベースを持つSun One Directory Server 5.2を構成する方法を示します。図40で、LDAPサーバーに保存されるユーザーおよびドメインを参照できます。 Oracle Service RegistryとLDAPの統合は、次のように構成します。

  • domain1およびdomain10のユーザーのみがOracle Service Registryにログインできます。LDAP domain2は無効になります。

  • LDAP domain10は、Oracle Service Registry内のdomain3ユーザー・グループにマップされます。

図40に、LDAPからOracle Service Registryへのユーザーのマッピングを示します。

図39 LDAPのユーザーおよびグループ

LDAPのユーザーおよびグループ

図40 レジストリ・ユーザー

レジストリ・ユーザー

次の表に、このシナリオを使用してOracle Service Registryを構成する方法を示します。

構成プロパティ構成値参照先
Naming Provider URLldap://localhost:1000図27
Initial Naming Factorycom.sun.jndi.ldap.LdapCtxFactory図27
Security Principaluid=JPatroni,ou=people,dc=in,dc=idoox,dc=com図27
Security Protocolsimple図27
uddi.ldap.domain.delimiter/図33
uddi.ldap.domain.prefixou=図33
uddi.ldap.domain.postfix空のまま図33
Enable Domains  
Namedomain3図34
Distinguished nameou=domain10,ou=example,dc=in,dc=idoox,dc=com図34
Disable Domains  
Distinguished nameou=domain2,ou=example,dc=in,dc=idoox,dc=com図34
ユーザー・プロパティ  
Search FilterobjectClass=person図29
Search Baseou=people,dc=in,dc=idoox,dc=com図29
Search ScopeSubtree Scope図29
Results Limit100図29
telephoneNumberphone図30
uidloginName図30
cnfullName図30
mailemail図30
グループ・プロパティ  
Search FilterobjectClass=groupofuniquenames図31
Search Baseou=groups,dc=in,dc=idoox,dc=com図31
Search ScopeSubtree Scope図31
Results Limit100図31
creatorsNameowner図32
descriptiondescription図32
uniqueMembermember図32
cnname図32
単一の検索ベースを持つActive Directory   目次

この例では、単一の検索ベースを持つActive Directoryを構成する方法を示します。図41に、Active Directoryに保存されるグループ・プロパティを示します。 これらのグループ・プロパティは、図42に示すようにOracle Service Registryにマップされます。

図41 LDAPのユーザー・グループ

LDAPのユーザー・グループ

図42 Oracle Service Registry内のユーザー・グループ

Oracle Service Registry内のユーザー・グループ

図43に、Active Directoryに保存されるユーザー・プロパティを示します。 これらのユーザー・プロパティは、図44に示すようにOracle Service Registryにマップされます。

図43 LDAPのユーザー・プロパティ

LDAPのユーザー・プロパティ

図44 Oracle Service Registry内のユーザー・プロパティ

Oracle Service Registry内のユーザー・プロパティ

次の表に、このシナリオを使用してOracle Service Registryを構成する方法を示します。

構成プロパティ構成値参照先
Naming Provider URLldap://localhost:389図27
Initial Naming Factorycom.sun.jndi.ldap.LdapCtxFactory図27
Security PrincipalCN=userx,OU=root,DC=registry,DC=in,DC=mycompany,DC=com図27
Security ProtocolDIGEST-MD5図27
ユーザー・プロパティ  
Search FilterobjectClass=person図29
Search Baseou=example,dc=registry,dc=in,dc=mycompany,dc=com図29
Search ScopeSubtree Scope図29
Results Limit100図29
sAMAccountNameloginName図30
cnfullName図30
mailemail図30
telephoneNumberphone図30
グループ・プロパティ  
Search FilterobjectClass=group図31
Search Baseou=example,dc=registry,dc=in,dc=mycompany,dc=com図31
Search ScopeSubtree Scope図31
Results Limit100図31
membermember図32
cnname図32
uniqueMembermember図32
cnname図32

Oracle XMLベースのユーザー・ストアの使用  目次

Oracle Service Registryでは、スタンドアロン・バージョンおよび開発バージョンのOracle Application Serverで提供されるXMLベースのユーザー・リポジトリを使用できます。 このユーザー・リポジトリを使用するには、レルム名を指定する必要があります。Oracle Service Registryは、このレルム名を使用してユーザー・アカウントおよびグループ定義にアクセスします。 指定したレルムのユーザーおよびロールまたはグループのみが、Oracle Service Registryに表示されます。

Oracle XMLベースのリポジトリの各ユーザーは、Oracle Service Registry内のユーザーに対応します。Oracle XMLベースのリポジトリの各ロールは、Oracle Service Registry内のグループに対応します。ユーザーおよびグループのプロパティのマッピングは組み込まれています。 Oracle Service RegistryのユーザーおよびグループのプロパティとOracle XMLベースのリポジトリのプロパティとの間のマッピングは指定できません。 Oracle XMLベースのリポジトリ内のユーザーの名前は、Oracle Service Registry内のユーザーのログイン名に対応します。フルネームはフルネームに対応し、説明は説明に対応します。 Oracle XMLベースのリポジトリ内のロールの名前は、Oracle Service Registry内のグループの名前に対応します。ロールの説明はグループの説明にマップされます。 階層ロールは、Oracle Service Registry内ではフラットです。

重要重要

管理者アカウントは、Oracle XMLベースのユーザー・リポジトリ内に保存しないでください。account_list.xml(デフォルトでは、管理者のみ)に保存されるユーザーは、Oracle XMLベースのリポジトリに保存しないことを強くお薦めします。Oracle XMLベースのリポジトリのユーザーをaccount_list.xmlに保存する必要がある場合は、ファイルからパスワード項目を削除し、アカウントのすべてのプロパティをOracle XMLベースのリポジトリに従って変更します。account_list.xmlファイルには、データベースに接続せずにレジストリにログインできるユーザーのリストが含まれています。

XMLユーザーおよびグループのリポジトリの詳細は、Oracle Application Serverのドキュメントを参照してください。

カスタム(非LDAP)  目次

「Advanced Account Settings」パネルで「External」を選択します。

外部アカウントには、インタフェースorg.systinet.uddi.account.ExternalBackendApiの実装が必要です。