データベースのインストール時か、またはSetupツールを使用して、外部リポジトリのアカウントの使用を選択することができます。 この章では、LDAPサーバーおよび非LDAPユーザー・ストアのアカウントをOracle Service Registryに統合する方法について説明します。
LDAPサーバーは、次のシナリオによってOracle Service Registryと統合できます。
単一の検索ベースを持つLDAP: このシナリオは簡単です。このシナリオでは、LDAPサーバーは1つのみです。すべてのIDが単一の検索ベースに保存されます。
複数の検索ベースを持つLDAP: このシナリオでは、LDAPサーバーは1つのみですが、ドメインに複数の検索ベースがマップされます。ドメインは、ユーザーのログイン名(DOMAIN/USERNAME)の指定された部分です。すべてのユーザーは、ログイン・ダイアログ・ボックスでドメイン名を指定する必要があります。アカウントまたはグループを管理する場合は、パフォーマンス上の理由から、DOMAIN/USERNAMEの形式を使用することをお薦めします。ドメインが設定されていない場合は、すべてのドメインで検索が実行されます。
複数のLDAPサービス: このシナリオでは、複数のLDAPサービスが使用されます。DNSを介して適切なLDAPサービスが選択されます。前述のシナリオと同様に、ユーザーはログインする際にドメイン名を指定する必要があります。アカウントまたはグループを管理する場合、ユーザーはドメイン名を設定する必要があります。ドメイン名を指定しなかった場合、ドメインは処理されません。
この章では、次の構成例についても説明します。
![]() | 注意 |
---|---|
Oracle Service Registryでは、外部ストアは読取り専用として処理されます。 これらの外部ストアに保存されているユーザー・アカウント・プロパティは、Oracle Service Registryでは変更できません。 |
![]() | 重要 |
---|---|
管理者アカウントはLDAPに保存しないでください。account_list.xml(デフォルトでは、管理者のみ)に保存されるユーザーは、LDAPに保存しないことを強くお薦めします。LDAPのユーザーをファイルaccount_list.xmlに保存する必要がある場合は、ファイルからパスワード項目を削除し、アカウントのすべてのプロパティをLDAPに従って変更します。account_list.xmlファイルには、データベースに接続せずにレジストリにログインできるユーザーのリストが含まれています。 |
別のリポジトリの外部アカウントを統合するには、次のいずれかを実行します。
「データベース設定」の説明に従って、データベースを作成するか、または接続されているデータベースで新しいスキーマを作成します。
Setupツールを使用して、「Authentication provider」を選択します。Setupツールを実行するには、インストールのbinサブディレクトリから次のスクリプトを実行します。
Windows: | setup.bat |
UNIX: | ./setup.sh |
詳細は、「Setup」のコマンドライン・パラメータを参照してください。
Setupツールの詳細は、「インストール後の再構成」を参照してください。
「Account Provider」パネルで「LDAP」を選択します。
次の設定を入力します。
Oracle Service Registryでは、LDAPサーバーへの接続にJNDIインタフェースが使用されます。次のJNDIプロパティがサーバーに認識される必要があります。(デフォルトのプロパティをカッコ内に示します。)
Javaネーミング・ファクトリ初期プロパティによって指定されるサービス・プロバイダを構成するためのURL文字列(ldap://hostname:389)。
初期ネーミング・ファクトリのクラス名(com.sun.jndi.ldap.LdapCtxFactory)。
ディレクトリ・サービスへの匿名読取りアクセス用のプリンシパルの名前。
セキュリティ・プリンシパルのパスワード。
セキュリティ・プロトコルの名前(simple)。
次のLDAP使用シナリオを選択できます。
このシナリオは簡単です。このシナリオでは、LDAPサーバーは1つのみです。すべてのIDが単一の検索ベースに保存されます。
このシナリオでは、LDAPサーバーは1つのみですが、ドメインに複数の検索ベースがマップされます。ドメインは、ユーザーのログイン名(DOMAIN/USERNAME)の指定された部分です。すべてのユーザーは、ログイン・ダイアログ・ボックスでドメイン名を指定する必要があります。アカウントまたはグループを管理する場合は、パフォーマンス上の理由から、DOMAIN/USERNAMEの形式を使用することをお薦めします。ドメインが設定されていない場合は、すべてのドメインで検索が実行されます。
ドメインは、動的または静的に指定できます。動的設定の場合は、ドメイン接頭辞、ドメイン接尾辞などを指定する必要があります。静的ドメインはインストール時に直接設定されるため、インストールの時点でわかっている必要があります。
このシナリオでは、複数の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検索表記法に準拠します。ユーザー・アカウントと一致するLDAPノード・プロパティを指定できます。
LDAPは、現行のLDAPノードおよび存在する可能性があるすべての子ノードを含め、このベースから検索されます。
ここでは、LDAPツリー構造のデータの検索範囲を指定できます。
Object Scope: 検索ベース・ノードのみが検索されます。
One-level Scope: 検索ベースの直接のサブノード(検索ベースの1レベル下のエントリ)のみが検索されます。ベース・エントリは有効範囲には含まれません。
Subtree Scope: 検索ベースおよびそのすべてのサブノードが検索されます。
LDAPの検索時に戻される項目の数。
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ベンダーによって異なります。
オプションのプロパティ(emailなど)がLDAPに存在しない場合、プロパティの値はデフォルトのアカウントに従って設定されます。デフォルトのアカウントは、account_core.xmlという構成ファイルで指定されます。 |
![]() | 注意 |
---|---|
図30で指定したユーザー・アカウント・プロパティは、レジストリ・コントロールおよびレジストリAPIでは読取り専用として処理されます。 |
詳細は、「開発者ガイド」のuserAccountデータ構造に関する説明を参照してください。
フィールド説明:
検索フィルタの表記法は、LDAP検索表記法に準拠します。グループと一致するLDAPノード・プロパティを指定できます。
LDAPは、現行のLDAPノードおよび存在する可能性があるすべての子ノードを含め、このベースから検索されます。
ここでは、LDAPツリー構造のデータの検索範囲を指定できます。
Object Scope: 検索ベース・ノードのみが検索されます。
One-level Scope: 検索ベースおよびその直接のサブノードが検索されます。
Subtree Scope: 検索ベースおよびそのすべてのサブノードが検索されます。
Oracle Service Registryグループ・プロパティとLDAPプロパティとの間のマッピングを指定できます。 「Add」をクリックすると、行を追加できます。エントリを編集するには、編集する値をダブルクリックします。
プロパティ(descriptionなど)がLDAPに存在しない場合、プロパティの値はデフォルトのグループに従って設定されます。デフォルトのグループ(groupInfo)は、group.xmlという構成ファイルで指定されます。
詳細は、「開発者ガイド」のグループ・データ構造に関する説明を参照してください。
インストールには、次の手順を実行します。
フィールド説明:
ドメインとユーザー名を区切る文字を指定します。空のままにした場合は、すべてのドメインからユーザーが検索されます。
ドメインは、{domain prefix}domain_name{domain postfix}{search base}というパターンを使用して検索されます。
{domain prefix}は、domain prefixというプロパティの値です。{domain postfix}は、domain postfixというプロパティの値です。{searchbase}は、searchbaseというプロパティの値です。
左の列: ユーザーがログイン時に使用するドメイン名。右の列: 識別ドメイン名。
無効にするドメインの識別ドメイン名を入力します。
DNSを介して適切なLDAPサービスが選択されます。インストールには、次の手順を実行します。
任意のディレクトリ・サーバーに対してLDAP over SSL(またはTLS)を設定するには、構成のみが必要です。 まず、SSLを使用しないLDAPに接続されたOracle Service Registryをインストールすることをお薦めします。これによって、SSLの使用を構成する前に、このディレクトリに定義されたユーザーとしてログインして構成を検証できます。
この構成手順は、Oracle Service RegistryをLDAPアカウント・プロバイダとともにすでにインストールしていることを前提としています。 Oracle Service Registryは実行中でない必要があります。
この場合は、LDAPサーバー認証のみが必要です。このような場合が一般的です。
Oracle Service Registryの実行に使用されるJavaのバージョンに応じて、次のいずれかの方法でREGISTRY_HOME/app/uddi/conf/directory.xmlファイルを編集します。
Oracle Service Registryが常にJava 1.4.2以上で実行される場合:
ldapsプロトコル、およびディレクトリ・サーバーがSSL/TLS接続を受け入れるポートが使用されるようにjava.naming.provider.urlプロパティを変更します。たとえば、ldaps://sranka.in.idoox.com:636です。
Oracle Service Registryが1.4.2より低いJavaバージョンで実行されることがある場合:
java.naming.provider.urlプロパティをldapプロトコルを使用する適切なURLに変更します。たとえば、ldap://sranka.in.idoox.com:636です。
名前が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の起動時に例外が発生します。ホスト名検証エラーが通知されます。スタック・トレースに、使用する必要があるホスト名が含まれています。
Oracle Service Registryでは、相互認証のあるLDAP over SSLはサポートされていません。
SSL/TLSサーバーに接続するクライアントは、そのサーバーとの通信を確立する場合、サーバー証明書を信頼する必要があります。前述のLDAPSの構成は、信頼を確立するためのデフォルトのルールをJSSE(SSL/TLSのJava実装)から継承しています。これは、トラスト・ストアに基づいてます。
クライアント/サーバー証明書を検証するためにトラスト・ストアが必要な場合は、次の場所が順に検索されます。
javax.net.ssl.trustStoreシステム・プロパティによって指定されているファイル(定義されている場合)
そうでない場合は、ファイルJAVA_HOME¥jre¥lib¥security¥jssecacerts(存在する場合)
そうでない場合は、ファイルJAVA_HOME¥jre¥lib¥security¥cacerts(存在する場合)
最初のオプションを使用して、実行するアプリケーション専用のトラスト・ストアを定義することをお薦めします。この場合は、レジストリ(または、移植されるレジストリのJVM環境)を起動するコマンドを変更して、次のJavaシステム・プロパティを定義する必要があります。
プロパティ | 説明 |
---|---|
javax.net.ssl.trustStore | トラスト・ストア・ファイルの絶対パス |
javax.net.ssl.trustStorePassword | トラスト・ストア・ファイルのパスワード |
サーバー証明書が信頼できることを確認するには、次の手順を実行する必要があります。
LDAPサーバーの管理者に連絡し、サーバーの証明書またはその証明書に署名した認証局の証明書を取得します。
Java keytoolを使用してトラスト・ストアに証明書をインポートします。
keytool -import -trustcacerts -alias alias -file file -keystore keystore -storepass storepass
次に、各パラメータについて説明します。
トラスト・ストア内の証明書に対する必須の一意の別名。
証明書が含まれているファイル(通常の拡張子は.crt)。
任意のキーストア・ファイル。
キーストア・ファイルを改ざんから保護するために設計されたパスワード。 通常、Javaレベルのキーストア(cacertsおよびjssecacerts)にはパスワードchangeitが必要です。
この例では、LDAPの単一の検索ベースでのシナリオに従ってOracle Internet Directoryを構成する方法を示します。
図35に、LDAPサーバーに保存されるユーザー・プロパティを示します。
図36に、LDAPサーバーに保存されるグループ・プロパティを示します。
次の表に、このシナリオを使用してOracle Service Registryを構成する方法を示します。
構成プロパティ | 構成値 | 参照先 |
---|---|---|
Naming Provider URL | ldap://localhost:389 | 図27 |
Initial Naming Factory | com.sun.jndi.ldap.LdapCtxFactory | 図27 |
Security Principal | cn=Joe Patroni,cn=Users,ou=uddi,dc=in,dc=idoox,dc=com | 図27 |
Security Protocol | simple | 図27 |
ユーザー・プロパティ | ||
Search Filter | objectClass=person | 図29 |
Search Base | cn=Users,dc=in,dc=idoox,dc=com | 図29 |
Search Scope | Subtree Scope | 図29 |
Results Limit | 100 | 図29 |
telephoneNumber | phone | 図30 |
uid | loginName | 図30 |
cn | fullName | 図30 |
図30 | ||
グループ・プロパティ | ||
Search Filter | objectClass=groupofuniquenames | 図31 |
Search Base | cn=Groups,dc=in,dc=idoox,dc=com | 図31 |
Search Scope | Subtree Scope | 図31 |
Results Limit | 100 | 図31 |
creatorsName | owner | 図32 |
description | description | 図32 |
uniqueMember | member | 図32 |
cn | name | 図32 |
この例では、LDAPの単一の検索ベースでのシナリオに従ってSun One Directory Server 5.2を構成する方法を示します。
図37に、LDAPサーバーに保存されるユーザー・プロパティを示します。
図38に、LDAPサーバーに保存されるグループ・プロパティを示します。
次の表に、このシナリオを使用してOracle Service Registryを構成する方法を示します。
構成プロパティ | 構成値 | 参照先 |
---|---|---|
Naming Provider URL | ldap://localhost:389 | 図27 |
Initial Naming Factory | com.sun.jndi.ldap.LdapCtxFactory | 図27 |
Security Principal | uid=JPatroni,ou=people,dc=in,dc=idoox,dc=com | 図27 |
Security Protocol | simple | 図27 |
ユーザー・プロパティ | ||
Search Filter | objectClass=person | 図29 |
Search Base | ou=people,dc=in,dc=idoox,dc=com | 図29 |
Search Scope | Subtree Scope | 図29 |
Results Limit | 100 | 図29 |
telephoneNumber | phone | 図30 |
uid | loginName | 図30 |
cn | fullName | 図30 |
図30 | ||
グループ・プロパティ | ||
Search Filter | objectClass=groupofuniquenames | 図31 |
Search Base | ou=groups,dc=in,dc=idoox,dc=com | 図31 |
Search Scope | Subtree Scope | 図31 |
Results Limit | 100 | 図31 |
creatorsName | owner | 図32 |
description | description | 図32 |
uniqueMember | member | 図32 |
cn | name | 図32 |
この例では、複数の検索ベースを持つ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へのユーザーのマッピングを示します。
次の表に、このシナリオを使用してOracle Service Registryを構成する方法を示します。
構成プロパティ | 構成値 | 参照先 |
---|---|---|
Naming Provider URL | ldap://localhost:1000 | 図27 |
Initial Naming Factory | com.sun.jndi.ldap.LdapCtxFactory | 図27 |
Security Principal | uid=JPatroni,ou=people,dc=in,dc=idoox,dc=com | 図27 |
Security Protocol | simple | 図27 |
uddi.ldap.domain.delimiter | / | 図33 |
uddi.ldap.domain.prefix | ou= | 図33 |
uddi.ldap.domain.postfix | 空のまま | 図33 |
Enable Domains | ||
Name | domain3 | 図34 |
Distinguished name | ou=domain10,ou=example,dc=in,dc=idoox,dc=com | 図34 |
Disable Domains | ||
Distinguished name | ou=domain2,ou=example,dc=in,dc=idoox,dc=com | 図34 |
ユーザー・プロパティ | ||
Search Filter | objectClass=person | 図29 |
Search Base | ou=people,dc=in,dc=idoox,dc=com | 図29 |
Search Scope | Subtree Scope | 図29 |
Results Limit | 100 | 図29 |
telephoneNumber | phone | 図30 |
uid | loginName | 図30 |
cn | fullName | 図30 |
図30 | ||
グループ・プロパティ | ||
Search Filter | objectClass=groupofuniquenames | 図31 |
Search Base | ou=groups,dc=in,dc=idoox,dc=com | 図31 |
Search Scope | Subtree Scope | 図31 |
Results Limit | 100 | 図31 |
creatorsName | owner | 図32 |
description | description | 図32 |
uniqueMember | member | 図32 |
cn | name | 図32 |
この例では、単一の検索ベースを持つActive Directoryを構成する方法を示します。図41に、Active Directoryに保存されるグループ・プロパティを示します。 これらのグループ・プロパティは、図42に示すようにOracle Service Registryにマップされます。
図43に、Active Directoryに保存されるユーザー・プロパティを示します。 これらのユーザー・プロパティは、図44に示すようにOracle Service Registryにマップされます。
次の表に、このシナリオを使用してOracle Service Registryを構成する方法を示します。
構成プロパティ | 構成値 | 参照先 |
---|---|---|
Naming Provider URL | ldap://localhost:389 | 図27 |
Initial Naming Factory | com.sun.jndi.ldap.LdapCtxFactory | 図27 |
Security Principal | CN=userx,OU=root,DC=registry,DC=in,DC=mycompany,DC=com | 図27 |
Security Protocol | DIGEST-MD5 | 図27 |
ユーザー・プロパティ | ||
Search Filter | objectClass=person | 図29 |
Search Base | ou=example,dc=registry,dc=in,dc=mycompany,dc=com | 図29 |
Search Scope | Subtree Scope | 図29 |
Results Limit | 100 | 図29 |
sAMAccountName | loginName | 図30 |
cn | fullName | 図30 |
図30 | ||
telephoneNumber | phone | 図30 |
グループ・プロパティ | ||
Search Filter | objectClass=group | 図31 |
Search Base | ou=example,dc=registry,dc=in,dc=mycompany,dc=com | 図31 |
Search Scope | Subtree Scope | 図31 |
Results Limit | 100 | 図31 |
member | member | 図32 |
cn | name | 図32 |
uniqueMember | member | 図32 |
cn | name | 図32 |
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のドキュメントを参照してください。
「Advanced Account Settings」パネルで「External」を選択します。
外部アカウントには、インタフェースorg.systinet.uddi.account.ExternalBackendApiの実装が必要です。