Oracle Enterprise User Security (EUS)により、Oracle DatabaseユーザーはLDAP準拠ディレクトリ・サービスに格納されているアイデンティティに対して認証できます。この章では、Oracle Enterprise User Securityと連携するようにOracle Unified Directoryを有効にするための手順を示します。
この章の構成は、次のとおりです。
第31.1項「Oracle Enterprise User SecurityとOracle Unified Directoryの連携について」
第31.3項「Oracle Unified DirectoryとOracle Enterprise User Securityの連携の有効化」
Oracle Enterprise User Securityを使用すると、エンタープライズ全体でデータベース・ユーザーを一元的に管理できます。LDAP準拠ディレクトリ・サービスにエンタープライズ・ユーザーを作成して、ディレクトリに登録された様々なエンタープライズ・データベースのロールや特権を割り当てることができます。
ユーザーは、Oracle Unified DirectoryまたはOracle Unified Directoryプロキシ・サーバーによってフロントエンド処理された外部LDAP準拠のディレクトリに格納されている資格証明を指定して、Oracle Databaseに接続します。データベースはLDAP検索操作を実行して、ユーザー固有の認証および認可情報について問い合せます。詳細は、第3.2.6項「構成6: エンタープライズ・ユーザー・セキュリティ」を参照してください。
Oracle Unified Directoryとエンタープライズ・ユーザー・セキュリティとを統合すると、追加の同期を行うことなく、LDAP準拠ディレクトリ・サービスに格納されているユーザーIDを活用できるため、認証機能と認可機能が強化され、かつ簡素化されます。
Oracle Enterprise User Securityの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。
Oracle Unified DirectoryとOracle Enterprise User Securityを統合する前に、Oracle Unified Directoryがトポロジでどのような役割を果たすのかを検討してください。また、会社全体の他のビジネス要件についても検討してください。統合を始める前に、様々な統合オプションに必要なすべてのタスクおよびステップをレビューします。
OUDをディレクトリ・サーバーとして使用する場合、インストールは簡単で、構成はOUDに含まれています。詳細は、第31.3.1項「エンタープライズ・ユーザー・セキュリティ向けディレクトリとしてのOracle Directory Serverの構成」を参照してください。
OUDをディレクトリ・プロキシとして使用する場合、ユーザー・エントリを格納する外部LDAP準拠ディレクトリを構成するために追加のステップを実行する必要があります。詳細は、第31.3.2項「外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するためのOracle Unified Directory Proxyの構成」を参照してください。
エンタープライズ・ユーザー・セキュリティと連携するように既存のディレクトリまたはプロキシ・インスタンスを構成している場合、一部の構成ステップを手動で完了する必要があります。詳細は、次を参照してください:
新しいディレクトリまたはプロキシ・インスタンスをインストールしている場合、設定中にエンタープライズ・ユーザー・セキュリティ・オプションを選択できます。新しいインスタンスは、EUS統合用に自動的に構成されます。詳細は、次を参照してください:
詳細は、次を参照してください:
この項では、次のステップを段階的に示します。
注意: エンタープライズ・ユーザー・セキュリティの統合を有効にするために、匿名検索アクセスをOracle Unified Directoryで有効化します。Oracle Net Configuration Assistant (NetCA)が構成中にOracle Unified Directoryに対して匿名検索を実行するため、これが必要です。NetCAを使用して構成した後、匿名アクセスを無効化できます。第28.5.1項「匿名アクセスの無効化」を参照してください。 |
始める前に
これらの手順では、複数のOracle製品に加え、トポロジに配置する外部LDAP準拠ディレクトリも構成する必要があります。始める前に、次のコンポーネントとそれぞれに添付されている最新のドキュメントにアクセスできることを確認してください。
Oracle Unified Directory、ODSM、oud-setup
コマンドおよびoud-proxy-setup
コマンド
Oracle Enterprise User Security Net Configuration Assistant
Database Configuration Assistant for Oracle Database
Enterprise Manager for Oracle Database
トポロジに存在する、サポートされるLDAPディレクトリ(Microsoft Active Directory、Novell eDirectory、Oracle Unified Directory、またはOracle Directory Server Enterprise Edition)
エンタープライズ・ユーザー・セキュリティのディレクトリとしてOracle Directory Serverを構成するには、次の項のタスクを完了します。
すでにOracle Unified Directoryインスタンスがインストールされ、プロビジョニングされている場合は、次のいずれかの項のステップを完了します。
Oracle Unified Directoryをまだインストールおよびプロビジョニングしていない場合は、次の項「新しいOracle Unified Directoryインスタンスのインストールおよびエンタープライズ・ユーザー・セキュリティと連携するための構成」のステップを完了します。
oud-setup
プログラムを実行します。コマンド行またはグラフィカル・ユーザー・インタフェースを使用できます。
次の--cli
オプションを指定してoud-setup
を実行します。例:
$ oud-setup --cli --integration eus --no-prompt --ldapPort 1389\ --adminConnectorPort 4444 -D "cn=directory manager"\ --rootUserPasswordFile pwd.txt --ldapsPort 1636\ --generateSelfSignedCertificate --baseDN "dc=example,dc=com"
oud-setup
とそのすべてのオプションを使用する方法の詳細は、Oracle Fusion Middleware Oracle Unified Directoryインストレーション・ガイドのディレクトリ・サーバーの設定に関する項を参照してください。
設定中に、--baseDN
オプションに指定したベースDN
がEUSのために準備されます。複数のベースDNを指定した場合は、そのすべてがEUSのために準備されます。
グラフィカル・ユーザー・インタフェースを使用するには、次のようにします。
oud-setup
コマンドを実行します。
「ようこそ」ページで、「次へ」をクリックします。
「サーバー設定」ページで、次の情報を指定します。
ホスト名
これは、ユーザーおよびグループが格納されるOracle Unified Directoryインスタンスのホストとなるサーバーです。
管理コネクタ・ポート
これは、dsconfigなどのOUDツールによって使用される管理ポートです。
LDAPリスナー・ポート
OUDによって使用されるポートを指定します。
LDAPセキュア・アクセス
「構成」をクリックして、セキュア・アクセスを有効にします。
「セキュア・アクセスの構成」ウィンドウで、「SSLを有効にするポート」チェック・ボックスをクリックしてマークします。次に、LDAPSのポート番号を入力し、「OK」をクリックして続行します。
ルート・ユーザーDN
これは、サーバー管理者のIDです。
パスワード
サーバー管理者が使用するパスワードを入力します。
パスワード(確認)
確認のためもう一度パスワードを入力します。
「次へ」をクリックして続行します。
「トポロジ・オプション」ページで、「これはスタンドアロン・サーバーになります」オプションが選択されていることを確認し、「次へ」をクリックします。
「ディレクトリ・データ」ページで、次の情報を指定します。
ディレクトリ・ベースDN
ユーザー・エントリを格納するベースDNを入力します。
ディレクトリ・データ
「データベースを空のままにする」オプションを選択しないでください。次のいずれかのオプションを選択します。
「ベース・エントリのみを作成する」は、以前指定したベースDNでエントリを作成します。
「LDIFファイルからデータをインポートする」は、「パス」フィールドで指定したファイルからLDIFデータをインポートします。
「自動生成されたサンプル・データのインポート」は、「ユーザー・エントリの数」フィールドで指定した数のサンプル・エントリを生成します。
「次へ」をクリックします。
「Oracleコンポーネントの統合」ページで、「EUS (エンタープライズ・ユーザー・セキュリティ)、EBS、Database Net ServicesおよびDIPで有効にする」オプションを選択します。このオプションにより、Database Net Servicesのサーバーも有効になります。
「次へ」をクリックして続行します。
「サーバー・チューニング」ページで、チューニングを構成するか、または「次へ」をクリックできます。
チューニング構成については、インストレーション・ガイドを参照してください。
「確認」ページで設定を確認し、「完了」をクリックします。
Oracle Unified Directoryの新しいインスタンスがインストールされ、構成されたうえで起動されます。
EUSの既存のネーミング・コンテキストを構成したり、EUSの新しいネーミング・コンテキストを作成および構成できます。
EUSの既存のネーミング・コンテキストを使用するには、manage-suffix update
コマンドを実行します。例:
$ manage-suffix update -h host -p adminPort -D "cn=directory manager" -j pwd.txt -X -n -b baseDN --integration eus
このコマンド行は、EUSのベースDN
として指定されたネーミング・コンテキストを構成します。
EUSの新しいネーミング・コンテキストを作成するには、manage-suffix create
コマンドを実行します。例:
$ manage-suffix create -h host -p adminPort -D "cn=directory manager" -j pwd.txt -X -n -b baseDN --integration eus
manage-suffix
コマンドの詳細は、第17.2項「manage-suffix
を使用した接尾辞の管理」を参照してください。
始める前に、SSLが有効化されたLDAP接続ハンドラがサーバー・インスタンスに存在することを確認します。SSLが有効でない場合は、LDAP接続ハンドラを追加します。LDAP接続ハンドラの追加については、第17.1項「dsconfig
を使用したサーバー構成の管理」および第17.1.5.2項「LDAP接続ハンドラの構成」を参照してください。
EUSの既存のネーミング・コンテキストを構成したり、EUSの新しいネーミング・コンテキストを作成および構成できます。
ODSMを使用してEUSの既存のネーミング・コンテキストを構成するには、次のようにします。
ODSMからディレクトリ・サーバーに接続します。
「構成」タブをクリックします。
左側のナビゲーション・ペインの「ネーミング・コンテキスト」の下で、使用するネーミング・コンテキストを選択します。
右側のペインの「Oracleコンポーネント統合」セクションで、「エンタープライズ・ユーザー・セキュリティ(EUS)に使用可能」を選択し、「適用」をクリックします。
ODSMを使用してEUSの新しいネーミング・コンテキストを作成および構成するには、次のようにします。
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからディレクトリ・サーバーに接続します。
「ホーム」タブをクリックします。
「構成」メニューで、「ローカル・ネーミング・コンテキストの作成」を選択します。
「新規ローカル・ネーミング・コンテキスト」ウィンドウで、次の情報を指定します。
ベースDN
作成する接尾辞の名前を入力します。ユーザー・データがすでに移入されている既存の接尾辞では、EUSの有効化はできません。
ディレクトリ・データ・オプション
次のいずれかを選択します。
「ベース・エントリの作成のみ」では、接尾辞のベース・エントリとともにデータベースが作成されます。その他のエントリは、接尾辞の作成後に追加する必要があります。
「データベースを空のままにする」では、空のデータベースが作成されます。このオプションは選択しないでください。
このオプションを使用するときは、接尾辞の作成後にベース・エントリおよびその他のエントリを追加する必要があります。ただし、この構成の場合、接尾辞にはエントリが1つ以上含まれている必要があります。
「生成されたサンプル・データのインポート」を選択すると、接尾辞にサンプル・エントリが移入されます。
「ユーザー・エントリ数」フィールドに、生成するエントリ数を指定します。ODSMを使用してインポートできるサンプル・エントリ数は、最大30,000です。30,000を超える数のエントリを追加する場合は、import-ldif
コマンドを使用する必要があります。
Oracleコンポーネント統合
新しい接尾辞を有効にするには、エンタープライズ・ユーザー・セキュリティ(EUS)に対して「有効化」を選択します。
ネットワーク・グループ
1つ以上のネットワーク・グループに接尾辞をアタッチします。
接尾辞を既存のネットワーク・グループにアタッチするには、「既存のものを使用」を選択し、リストから必要なネットワーク・グループを選択します。
接尾辞を新しいネットワーク・グループにアタッチするには、「新規作成」を選択し、作成するネットワーク・グループの名前を「名前」フィールドに入力します。
同じ接尾辞を複数のネットワーク・グループにアタッチできます。
ワークフロー要素
接尾辞をワークフロー要素にアタッチします。
接尾辞を既存のワークフロー要素にアタッチするには、次のようにします。
「既存のものを使用」を選択し、リストから必要なワークフロー要素を選択します。
接尾辞は、同じデータベース・ローカル・バックエンド・ワークフロー要素内に格納され、Berkeley DBファイルへのインスタンス・パスなどの同じプロパティを持ちます。
接尾辞を新しいワークフロー要素にアタッチするには、次のようにします。
「新規作成」を選択し、作成するワークフロー要素の名前を「名前」フィールドに入力します。
この新しいワークフロー要素をBerkeley DBファイルやデータベース・キャッシュ・サイズなどのその他の値とともに構成できます。
「作成」をクリックします。
次の確認メッセージが表示されます:
ネーミング・コンテキストは正常に作成されました。
EUSまたはOracle E-Business Suiteに対するOracle Unified Directoryの構成後、次のステップを実行してユーザーおよびグループの格納に使用されるネーミング・コンテキストを構成する必要があります。
LDIFテンプレート・ファイル(install_dir
ectory/config/EUS/modifyRealm.ldif
)を見つけます。
modifyRealm.ldif
ファイルを次のように編集します:
dc=example,dc=com
をサーバー・インスタンスの現在のネーミング・コンテキストに置き換えます。
ou=people
とou=groups
をDIT内のユーザー・エントリとグループ・エントリの現在の場所にそれぞれ置き換えます。
ldapmodify
コマンドを使用して、編集済のLDIFテンプレート・ファイルで構成を更新します。例:
$ ldapmodify -h localhost -p 1389 -D "cn=directory manager" -j pwd-file -f modifyRealm.ldif
注意: LDAP接続ハンドラがクライアントからの接続をリスニングするポート番号(例:1389 )を指定してください。4444 の管理ポート番号は指定しないでください。 |
エンタープライズ・ユーザー・セキュリティは、EUSメタデータとも呼ばれる自身の構成をOracleコンテキストに格納します。これはディレクトリ情報ツリーの一部に対応しています。ユーザー・エントリがdc=example,dc=com
の下に格納されている場合、EUSは通常Oracleコンテキストとしてcn=OracleContext,dc=example,dc=com
を使用するように構成されます。
EUSが自身の構成を読み取る場所を示すには、Oracle Net Configuration Assistantを使用します。
Oracle Net Configuration Assistantを起動するには、データベースがインストールされているホストでnetca
コマンドを実行します。
「ようこそ」ページで、「ディレクトリ使用構成」を選択し、「次へ」をクリックします。
後続のページで、次の情報を指定します。
ディレクトリ・タイプ
LDAPサーバーがOracle Virtual DirectoryまたはOracle Unified Directoryである場合でも、「Oracle Internet Directory」を選択します。
「次へ」をクリックします。
ホスト名
LDAPサーバーのホストとなっているサーバーのホスト名またはIPアドレスを入力します。
ポート
LDAPポート番号を入力します。
SSLポート
LDAPSポート番号を入力します。
Oracleコンテキスト
cn=OracleContext
を選択しないでください。そのかわり、矢印をクリックして、OracleContextの場所を表示および選択します。
「次へ」をクリックします。
「ディレクトリ使用構成が完了しました。」というメッセージが表示されたら、「次へ」をクリックします。
「ようこそ」ページが表示されたら、「終了」をクリックします。
LDAPサーバー情報が含まれている構成ファイルをNet Configuration Assistantが正常に作成したことを検証するには、次のコマンドを実行します。
# cat $ORACLE_HOME/network/admin/ldap.ora # ldap.ora Network Configuration File: /app/oracle/product/db/product/11.2.0/dbhome_1/network/admin/ldap.ora # Generated by Oracle configuration tools. DIRECTORY_SERVERS= (oudhost:1389:1636) DEFAULT_ADMIN_CONTEXT = "dc=example,dc=com" DIRECTORY_SERVER_TYPE = OID
データベースによって使用される構成ファイルには、LDAPサーバーのホスト名およびポートが含まれています。この例では、情報は(oudhost:1389:1636)
として表されます。高可用性のデプロイメントを実現するために複数のサーバーをカンマで区切って指定できます。第31.4.2項「高可用性トポロジでのOracle Unified Directoryおよびエンタープライズ・ユーザー・セキュリティの使用」を参照してください。
この例では、dc=example,dc=com
はEUSメタデータとも呼ばれるEUS構成の格納に使用されるOracleコンテキストを表しています。
このタスクを完了するには、Oracle DatabaseのDatabase Configuration Assistantを使用します。
データベースがインストールされているホストでdbca
コマンドを実行します。
Oracle DatabaseのDatabase Configuration Assistantが表示されます。「次へ」をクリックし、後続のページで次の情報を指定します。
実行する操作を選択してください。
「データベース・オプションの構成」を選択し、「次へ」をクリックします。
データベース
リスト・ボックスで、登録するデータベースを選択します。次に、「次へ」をクリックします。
Database Configuration Assistantは、データベースがLDAPサーバーにすでに登録されているかどうかを判別します。
このデータベースをディレクトリ・サービスに登録しますか。
「データベースを登録する」を選択します。Database Configuration Assistantは、Oracleコンテキストにデータベースのエントリを作成します。
ユーザーDN
ユーザーDNは、LDAPサーバーに対して認証するために使用します。ユーザーDNは、Oracleコンテキストにデータベース・エントリを作成する追加操作でも使用されます。ユーザーは、LDAPサーバーへの書込みアクセス権を持っている必要があります。
パスワード
Database Configuration Assistantは、データベースのウォレットを作成します。データベース・エントリDNおよびパスワードは、ウォレットに格納されます。データベースは、LDAPサーバーに接続するとき、このウォレットに格納されている資格証明を使用して認証されます。
データベース・コンポーネント
このページには何も変更を加えず、「次へ」をクリックします。
接続モード
「専用サーバー・モード」を選択し、「終了」をクリックします。
確認
「OK」をクリックして、データベースを登録します。
別の操作を実行しますか。
「いいえ」をクリックして、Database Configuration Assistantアプリケーションを終了します。
Database Configuration Assistantがデータベースの新しいエントリを正常に作成したことを検証するには、次のコマンドを実行します。cn=orcl11gは、前のステップで指定したデータベースの名前です。
$ ldapsearch -h oudhost -p 1389 -D "cn=directory manager" -j pwd.txt -b cn=oraclecontext,dc=example,dc=com "(cn=orcl11g)"
dn: cn=orcl11g,cn=OracleContext,dc=example,dc=com
orclVersion: 112000
orclcommonrpwdattribute: {SASL -MD5}eW5+2LTPRKzFmHxmMZQmnw==
objectClass: orclApplicationEntity
objectClass: orclService
objectClass: orclDBServer_92
objectClass; orclDBServer
objectClass: top
orclServiceType: DB
orclSid: orcl11g
oracleHome: /app/oracle/product/db/product/11.2.0/dbhome_1
cn: orcl11g
orclSystemName: oudhost
userPassord: {SSHA}oNeBEqkUMtDusjXNXJPpa7qa+Yd0b9RHvA==
orclNetDescString: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST)=oudhost)
(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl11g)))
orclDBGLOBALNAME: orcl11g
orclNetDescName: 000:cn= DESCRIPTION_0
このタスクのステップを完了するには、Oracle Enterprise Managerを使用します。
次のSQLコマンドを実行します。
SQL> CREATE USER global_ident_schema_user IDENTIFIED GLOBALLY; User created. SQL> GRANT CONNECT TO global_ident_schema_user; Grant succeeded.
Webブラウザで、Enterprise Managerに接続します。例:
https://localhost:1158/em
次を指定し、「ログイン」をクリックします。
ユーザー名
データベースの管理を許可されているユーザーの名前を入力します。
パスワード
管理者パスワードを入力します。
接続モード
SYSDBAを選択します。
「ログイン」をクリックします。
「サーバー」タブをクリックします。
「サーバー」タブの「セキュリティ」セクションで、「エンタープライズ・ユーザー・セキュリティ」をクリックします。
「Oracle Internet Directoryログイン: エンタープライズ・ユーザー・セキュリティ」ページで、次の情報を指定します。
ユーザー
Oracleコンテキストへの書込みアクセス権を持つユーザーのユーザー名(たとえば、cn=directory manager
)を入力します。
パスワード
同じユーザーのパスワードを入力します。
「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページで、「エンタープライズ・ドメインの管理」をクリックします。
エンタープライズ・ドメインには、1つ以上のデータベースを含めることができます。エンタープライズ・ドメインの設定は、そのドメインに含まれているすべてのデータベースに適用されます。
「エンタープライズ・ドメインの管理」ページで、構成するドメインを選択し、「構成」をクリックします。
「ドメインの構成」ページで、「ユーザー・スキーマ・マッピング」をクリックします。
「ユーザー・スキーマ・マッピング」ページで、「作成」をクリックします。
ドメイン・スキーマ・マッピングを作成するには、新規マッピング・ページで、次の情報を指定します。
自
グローバル・スキーマを特定のサブツリーのすべてのユーザーまたは特定のユーザーに関連付けることができます。
グローバル・スキーマを特定のサブツリーのすべてのユーザーに関連付けるには、次のようにします。
1. サブツリーを選択し、懐中電灯アイコンをクリックして、使用可能なサブツリーを検索します。
2. 「ユーザーの選択」ページで、サブツリーを選択します。
3. 選択したDNの下にあるエンタープライズ・ユーザーは、同じグローバル・スキーマにマップされます。「選択」をクリックします。
グローバル・スキーマを特定のユーザーに関連付けるには、次のようにします。
1. 「ユーザー名」を選択し、懐中電灯アイコンをクリックして、使用可能なユーザーを検索します。
2. 「ユーザーの選択」ページで、ユーザーDNを選択します。この特定のユーザーのみがグローバル・スキーマにマップされます。「選択」をクリックします。
宛先
1. 「スキーマ」フィールドに、グローバル・スキーマの名前を入力します。
2. たとえば、global_ident_schema_user
とします。
「続行」をクリックします。
「ユーザー・スキーマ・マッピング」タブで、マッピングが正しければ、「OK」をクリックします。
この例の場合、hr_access
という名前のロールが作成されます。ロールにより、hr.employees
表への読取りアクセス権が付与されます。
データベースにロールを作成するには、次のようにします。
SQL> CREATE ROLE hr_access IDENTIFIED GLOBALLY; Role created. SQL> GRANT SELECT ON hr.employees TO hr_access; Grant succeeded.
詳細は、Oracle Databaseのドキュメントを参照してください。
「エンタープライズ・ドメインの管理」ページで、ロールを作成するドメインを選択し、「構成」をクリックします。
「ドメインの構成」ページで、「エンタープライズ・ロール」をクリックします。「作成」をクリックします。
「エンタープライズ・ロールの作成」ページで、次の情報を指定します。
「名前」フィールドに、エンタープライズ・ロールの名前を指定します。
「DBグローバル・ロール」タブで、「追加」をクリックします。
「検索と選択: データベース・グローバル・ロール」ページで、次の情報を指定します。
データベース
ドロップダウン・リストからデータベースを選択します。
ユーザー名
Enterprise Managerは、データベースから使用可能なロールを取得します。ロールへのアクセスを許可されている管理者のユーザー名(たとえば、SYS AS SYSDBA
)を入力します。
パスワード
管理者パスワードを入力します。
「実行」をクリックします。
「検索と選択: データベース・グローバル・ロール」ページで、エンタープライズ・ユーザーに付与するグローバル・ロールを選択します。
「選択」をクリックします。
「エンタープライズ・ロールの作成」ページで、エンタープライズ・ロールを付与するエンタープライズ・ユーザーまたはグループを選択し、「権限受領者」タブをクリックします。
「権限受領者」タブで、エンタープライズ・ユーザーまたはグループを選択するには、「追加」をクリックします。
選択: ユーザーおよびグループ・ページで、「実行」をクリックします。Enterprise Managerは、使用可能なユーザーおよびグループを取得します。
表示
ユーザーまたはグループを検索できます。
検索ベース
Enterprise Managerは、このDNで検索を開始します。
名前
ここに文字列を入力して、検索を絞り込みます。たとえば、名前がjoで始まるユーザーを検索する場合は、「jo」と入力し、「実行」をクリックします。
表には、関連するエントリが表示されます。リストから、エンタープライズ・ロールを付与するユーザーおよびグループを選択し、「選択」をクリックします。
「続行」をクリックします。
「ドメインの構成」ページで、「OK」をクリックして続行します。
「エンタープライズ・ロールの編集」ページで、「続行」をクリックします。
「ドメインの構成」ページで、「OK」をクリックします。
ロールが正常に作成された後、「構成」をクリックします。
ユーザーSHにプロキシ権限を定義するには、次のコマンドを実行します。
SQL> ALTER USER SH GRANT CONNECT THROUGH ENTERPRISE USERS; User altered.
このコマンドは、ユーザーSHのプロキシ権限を定義します。
ドメイン情報の構成ページで、構成するドメインを選択し、「構成」をクリックします。
「ドメインの構成」ページで、「プロキシ権限」をクリックします。
新しいプロキシ権限を作成するには、「プロキシ権限」タブで「作成」をクリックします。
「プロキシ権限の作成」ページで、「名前」フィールドに、プロキシ権限の名前を指定します。
「ターゲットDBユーザー」タブで、「追加」をクリックします。
「検索と選択: データベース・ターゲット・ユーザー」ページで、次の情報を指定します。
データベース
ドロップダウン・リストからデータベースを選択します。
ユーザー名
ユーザーへのアクセスを許可されている管理者のユーザー名(たとえば、SYS AS SYSDBA
)を入力します。
パスワード
管理者パスワードを入力します。
「実行」をクリックします。
Enterprise Managerは、データベースから使用可能なターゲット・ユーザーを取得します。
「検索と選択」ページで、プロキシ権限のターゲット・ユーザーを選択し、「選択」をクリックします。
「プロキシ権限の作成」ページで、「権限受領者」タブをクリックします。
「権限受領者」タブで、「追加」をクリックします。
ユーザーおよびグループの選択ページで、「実行」をクリックします。Enterprise Managerは、使用可能なエンタープライズ・ユーザーを取得します。
選択: ユーザーおよびグループ・ページで、プロキシ権限を付与するユーザーを選択します。次に、「選択」をクリックして続行します。
「プロキシ権限の作成」ページで、「続行」をクリックします。
「ドメインの構成」ページで、「OK」をクリックして続行します。
「エンタープライズ・ユーザー・セキュリティ」ページで、「データベースの管理」をクリックします。
「データベースの管理」ページで、構成するデータベースを選択し、「構成」をクリックします。
「データベースの構成」ページで、「ユーザー・スキーマ・マッピング」タブをクリックします。
「ユーザー・スキーマ・マッピング」ページで、「作成」をクリックします。
ドメイン・スキーマ・マッピングを作成するには、新規マッピング・ページで、次の情報を指定します。
自
グローバル・スキーマを特定のサブツリーのすべてのユーザーまたは特定のユーザーに関連付けることができます。
グローバル・スキーマを特定のサブツリーのすべてのユーザーに関連付けるには、次のようにします。
1. サブツリーを選択し、懐中電灯アイコンをクリックして、使用可能なサブツリーを検索します。
2. 「ユーザーの選択」ページで、サブツリーを選択します。
3. 選択したDNの下にあるエンタープライズ・ユーザーは、同じグローバル・スキーマにマップされます。「選択」をクリックします。
グローバル・スキーマを特定のユーザーに関連付けるには、次のようにします。
1. 「ユーザー名」を選択し、懐中電灯アイコンをクリックして、使用可能なユーザーを検索します。
2. 「ユーザーの選択」ページで、ユーザーDNを選択します。この特定のユーザーのみがグローバル・スキーマにマップされます。「選択」をクリックします。
宛先
1. 「スキーマ」フィールドに、グローバル・スキーマの名前を入力します。
2. たとえば、global_ident_schema_user
とします。
「続行」をクリックします。
「ユーザー・スキーマ・マッピング」タブで、マッピングが正しければ、「OK」をクリックします。
この時点でエンタープライズ・ユーザー・セキュリティには次の構成が含まれています。
dc=example,dc=com
の下のすべてのユーザーにグローバル・スキーマを付与するユーザー・スキーマ・マッピング
uid=user.0,ou=people,dc=example,dc=com
にHR_ACCESS
を付与するエンタープライズ・ロール
プロキシ・ユーザーSH
にuid=user.1,our=people,dc=example,dc=com
を許可するプロキシ権限
データベース構成をテストするには、次のようにします。
sqlplus
を実行して、user.0
でデータベースに接続します。
次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.0,ou=people,dc=example,dc=com
用に構成されたパスワードをLDAPサーバーに指定します。
# sqlplus user.0 SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from session_roles; Role ------------------------------- CONNECT HR_ACCESS SQL>
この例では、次の内容から、データベースがuser.0
などのユーザーに対して正しく構成されていることがわかります。
Connected to:
で始まる行は、認証が正常に完了したことを示しています。
SQL> select * from session_roles;
で始まる行により、ユーザーは自身に付与されたロールを確認できます。
データベース・ロールHR_ACCESS
は、エンタープライズ・ロールによって付与されます。
sqlplus
を実行して、user.1
資格証明でデータベースに接続します。
次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.1,ou=people,dc=example,dc=com
用に構成されたパスワードをLDAPサーバーに指定します。
# sqlplus user.1 SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from session_roles; Role ------------------------------- CONNECT SQL>
この例では、次の内容から、データベースがuser.1
などのユーザーに対して正しく構成されていることがわかります。
Connected to:
で始まる行は、認証が正常に完了したことを示しています。
SQL> select * from session_roles;
で始まる行により、ユーザーは自身に付与されたロールを確認できます。
唯一のデータベース・ロールがCONNECT
で、これはグローバル・スキーマによって付与されます。
プロキシ権限をユーザーSH
として使用し、sqlplus
を実行してuser.1
資格証明でデータベースに接続します。
次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.1,ou=people,dc=example,dc=com
用に構成されたパスワードをLDAPサーバーに指定します。
# sqlplus user.1[sh] SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from session_roles; Role ------------------------------- RESOURCE SELECT_CATALOG_ROLE HS_ADMIN_SELECT_ROLE CWM_USER SQL>
この例では、次の内容から、データベースがuser.1
などのユーザーに対して正しく構成されていることがわかります。
Connected to:
で始まる行は、認証が正常に完了したことを示しています。
SQL> select * from session_roles;
で始まる行により、ユーザーは自身に付与されたロールを確認できます。
ユーザーuser.1
は、プロキシ認証によってユーザーSH
のロールを継承します。
外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するようにOracle Unified Directory Proxyを構成するには、次の項で説明するタスクを完了します。
既存のユーザーおよびグループのアイデンティティをエンタープライズ・ユーザー・セキュリティによって認識されるように構成します。外部LDAPディレクトリに基づいて次の中から選択します。
第31.3.2.1.1項「Microsoft Active Directoryにユーザー・アイデンティティを構成する手順」
第31.3.2.1.2項「Oracle Directory Server Enterprise Editionにユーザー・アイデンティティを構成する手順」
Active Directoryイメージのバックアップ・コピーを作成します。Active Directory内部のスキーマ拡張は永続的で、キャンセルできません。バックアップ・イメージがあると、必要になったときに変更をすべてリストアできます。
Oracle Unified Directoryに組み込まれているJavaクラスを使用してエンタープライズ・ユーザー・セキュリティの必須スキーマであるExtendAD
をActive Directoryにロードするために、次のコマンドを実行します。
ExtendAD
ファイルは、$
ORACLE_HOME
/config/EUS/ActiveDirectory/
ディレクトリ(UNIXの場合)またはORACLE_HOME
\config\EUS\ActiveDirectory\
ディレクトリ(Windowsの場合)にあります。ORACLE_HOME
/jdk/bin
ディレクトリのjava
実行可能ファイルを使用できます。
java ExtendAD -h Active_Directory_Host_Name -p Active_Directory_Port -D Active_Directory_Admin_DN -w Active_Directory_Admin_Password –AD Active_Directory_Domain_DN -commonattr
例:
java ExtendAD -h myhost -p 389 -D cn=administrator,cn=users,dc=example,dc=com -w <pwd> -AD dc=example,dc=com -commonattr
次のステップに従って、Oracle Unified Directoryパスワード変更通知プラグインoidpwdcn.dll
をインストールします:
Windowsのタイプに応じて、次の操作を行います:
Windows 32ビット
OUD_HOME
\config\EUS\ActiveDirectory\win\oidpwdcn.dll
ファイルをActive DirectoryのWINDOWS\system32
ディレクトリにコピーします。
Windows 64ビット
OUD_HOME
\config\EUS\ActiveDirectory\win64\oidpwdcn.dll
ファイルをActive DirectoryのWINDOWS\system32
ディレクトリにコピーします。
regedt32
またはregedt64
を使用してレジストリを編集し、oidpwdcn.dll
を有効にします。コマンド・プロンプトでregedt32
と入力して、regedt32
を起動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\
レジストリにあるNotification Packagesエントリの末尾にoidpwdcn
を追加します。例:
RASSFM KDCSVC WDIGEST scecli oidpwdcn
このステップによって、パスワードDLLが有効化され、EUSで必要なパスワード検証がorclCommonAttribute
属性に移入されます。
変更したら、Active Directoryシステムを再起動します。
すべてのActive Directoryユーザーのパスワードをリセットすることで、プラグインがパスワード変更を取得して、パスワード検証を生成および格納できるようにします。
次のステップに従って、Active Directoryの設定を検証します:
Active Directoryユーザーのパスワードを変更します。
パスワードを変更したユーザーをActive Directoryで検索します。orclCommonAttribute
属性に、生成されたハッシュ・パスワード値が含まれることを確認します。
この値は、Active DirectoryにorclCommonAttribute
属性定義を追加します。
注意: エンタープライズ・ユーザーとエンタープライズ・グループの詳細を格納するOracle Unified Directoryのデフォルトのパスワード・ポリシーを変更します。プロキシ・サーバーとして機能するOracle Unified Directoryインスタンスのデフォルトのパスワード・ポリシーは変更しないでください。 |
Oracle Directory Server Enterprise Editionからldapmodify
コマンドを次のように実行して、アカウント・ロックの拡張操作を有効化します:
ldapmodify -h <ODSEE Server> -p <ODSEE port> -D <ODSEE Admin ID> -w <ODSEE Admin password> dn: oid=1.3.6.1.4.1.42.2.27.9.6.25,cn=features,cn=config changetype: add objectclass: directoryServerFeature oid: 1.3.6.1.4.1.42.2.27.9.6.25 cn: Password Policy Account Management
eDirectoryでユニバーサル・パスワードを有効化し、管理者がユーザー・パスワードを取得できるようにします。詳細は、Novell eDirectoryのパスワード管理に関するドキュメントを参照してください。
dsconfig
コマンドを次のように実行して、パスワード記憶スキームとしてSalted SHA-1を使用するようにデフォルトのパスワード・ポリシーを変更します。
./dsconfig -h <OUD host> -p <OUD admin port> -D <OUD dirmgr> -j <pwdfile> -X -n set-password-policy-prop\ --policy-name "Default Password Policy"\ --set default-password-storage-scheme:"Salted SHA-1"
注意: エンタープライズ・ユーザーとエンタープライズ・グループの詳細を格納するOracle Unified Directoryのデフォルトのパスワード・ポリシーを変更します。プロキシ・サーバーとして機能するOracle Unified Directoryインスタンスのデフォルトのパスワード・ポリシーは変更しないでください。 |
Oracle Unified Directory Proxyをまだインストールしていない場合は、次のいずれかの項のステップを完了します。
Oracle Unified Directory Proxyインスタンスをすでにインストールしている場合は、第31.3.2.2.3項「ODSMを使用した、エンタープライズ・ユーザー・セキュリティと連携するための既存のOracle Unified Directory Proxyの構成」のステップを完了します。
oud-proxy-setup
コマンドを実行します。例:
oud-proxy-setup -i -p 1389 --adminConnectorPort 4444 -D "cn=directory manager" -j pwd.txt -Z 1636 --generateSelfSignedCertificate --eusContext dc=example,dc=com
エンタープライズ・ユーザーおよびグループが含まれているリモートLDAPサーバー用にLDAPサーバー拡張を作成します。例:
dsconfig create-extension \ --set enabled:true \ --set remote-ldap-server-address:serverip \ --set remote-ldap-server-port:389 \ --type ldap-server \ --extension-name proxy1 \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt
前のステップで作成したLDAPサーバー拡張を使用して、リモートLDAPサーバー用にプロキシ・ワークフロー要素を作成します。
use-specific-identity
モードまたはuse-client-identity
モードを使用するようにこのプロキシ・ワークフロー要素を構成できます。
外部LDAPサーバーで匿名アクセスが許可されていない場合、use-specific-identity
モードを使用します。これは、Active Directoryが外部LDAPサーバーとして使用されている場合は特に、最も一般的なエンタープライズ・ユーザー・セキュリティ構成です。
use-specific-identity
モードを使用してプロキシ・ワークフロー要素を作成するには、次のようにdsconfig
コマンドを実行します。
dsconfig create-workflow-element \ --set client-cred-mode:use-specific-identity \ --set enabled:true \ --set ldap-server-extension:proxy1 \ --set remote-ldap-server-bind-dn: \
cn=administrator,cn=users,dc=example,dc=com \ --set remote-ldap-server-bind-password:******** \ --set remote-root-dn:cn=administrator,cn=users,dc=example,dc=com\ --set remote-root-password:******** \ --type proxy-ldap \ --element-name proxy-we1 \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt
この例では、remote-root-dn
およびremote-ldap-server-bind-dn
が、リモート・サーバーに接続する際にOUDプロキシによって使用される資格証明です。
外部LDAPサーバーで匿名アクセスが許可されている場合、use-client-identity
モードを使用します。
use-client-identity
モードを使用する場合は、外部LDAPサーバー資格証明を構成し、除外リストを構成する必要があります。
通常、データベースはそれ自体の資格証明を使用して、Oracle Unified Directoryプロキシ・サーバーに接続し、外部LDAPサーバーで検索を実行します。EUSが有効化されている場合、外部LDAPサーバー上にはデータベース・エントリは存在しないため、データベースは代替IDを使用して外部LDAPサーバーにバインドする必要があります。データベース・エントリは、Oracle Unified Directoryプロキシ・サーバー上にローカルで格納されます。
use-client-identity
モードを使用してプロキシ・ワークフロー要素を作成するには、次のようにdsconfig
コマンドを実行します。
dsconfig create-workflow-element \ --set client-cred-mode:use-client-identity \ --set enabled:true \ --set ldap-server-extension:proxy1 \ --set exclude-list:"cn=directory manager" \ --set exclude-list:cn=oraclecontext,dc=example,dc=com \ --set remote-ldap-server-bind-dn: \
cn=administrator,cn=users,dc=example,dc=com \ --set remote-ldap-server-bind-password:******** \ --set remote-root-dn:cn=administrator,cn=users,dc=example,dc=com\ --set remote-root-password:******** \ --type proxy-ldap \ --element-name proxy-we1 \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt
この例では、remote-root-dn
およびremote-ldap-server-bind-dn
が、リモートLDAP管理者によって使用される資格証明です。
重要。use-client-identity
モードでActive Directoryと統合されている場合、次のコマンドを使用して匿名ログインを許可する必要があります(この場合のdc=example,dc=com
は、Active DirectoryサーバーのベースDNです)。
ldapmodify -h ADhost -p ADport -D ADdirmgr -w pwd dn: cn=directory service,cn=windows nt,cn=services,cn=configuration,dc=example,dc=com changetype: modify replace: dsHeuristics dsHeuristics: 0000002
前のステップで作成したプロキシ・ワークフロー要素を使用して、EUSワークフロー要素を作成します。
dsconfig create-workflow-element \ --set enabled:true \ --set eus-realm:dc=example,dc=com \ --set next-workflow-element:proxy-we1 \ --set server-type:ad \ --type eus \ --element-name eus-we1 \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt
注意: server-type
には、エンタープライズ・ユーザーおよびグループが含まれているリモートLDAPサーバーを定義します。次の値のいずれかを使用します。Active Directoryの場合はad
、Novell eDirectoryの場合はedir
、Oracle Unified Directoryの場合はoud
、Oracle Directory Server Enterprise Editionの場合はodsee
です。
前のステップで作成したEUSワークフロー要素を使用して、ネーミング・コンテキストのワークフローを作成します。
dsconfig create-workflow \ --set base-dn:dc=example,dc=com \ --set enabled:true \ --set workflow-element:eus-we1 \ --type generic \ --workflow-name workflow1 \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt
前のステップで作成したワークフローをネットワーク・グループに追加します。
dsconfig set-network-group-prop \ --group-name network-group \ --add workflow:workflow1 \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt
oud-proxy-setup
プログラムを実行します。
「ようこそ」ページで、「次へ」をクリックします。
「サーバー設定」ページで、次の情報を指定します。
ホスト名。OUDプロキシ・ホストの名前を入力します。
管理コネクタ・ポート。これは、dsconfig
などのOUDツールによって使用される管理ポートです。
LDAPリスナー・ポート。OUDプロキシによって使用されるポートを指定します。
LDAPセキュア・アクセス。「構成」をクリックして、セキュア・アクセスを有効にします。
「セキュア・アクセスの構成」ウィンドウで、「SSLを有効にするポート」チェック・ボックスをクリックしてマークします。次に、LDAPSのポート番号を入力し、「OK」をクリックして続行します。
ルート・ユーザーDN。これは、サーバー管理者のIDです。
パスワード。サーバー管理者が使用するパスワードを入力します。
パスワード(確認)。確認のためもう一度パスワードを入力します。
「次へ」をクリックして続行します。
「デプロイメント・オプション」ページの「構成オプション」フィールドで、「EUS (エンタープライズ・ユーザー・セキュリティ)の構成」を選択し、「次へ」をクリックします。
Oracle Unified Directoryは、プロキシとして使用され、EUSユーザーおよびグループが含まれているLDAPサーバーの前にデプロイされます。
「バックエンド・サーバー・タイプ」ページで、サポートされているサーバー・タイプのいずれかを選択します。これは、エンタープライズ・ユーザー・セキュリティ・ユーザーおよびグループが含まれているLDAP準拠のサーバーです。
「次へ」をクリックして続行します。
次のページで、「サーバーの追加」をクリックします。
「サーバーの追加」ページで、次の情報を指定します。
ホスト名。エンタープライズ・ユーザー・セキュリティ・ユーザーおよびグループが含まれているLDAPサーバーのホスト名を入力します。
プロトコル。Novell eDirectoryを使用している場合は、LDAPSを選択する必要があります。
他のすべての外部ディレクトリの場合、LDAP、LDAPS、LDAPとLDAPS、のいずれかを選択できます。これにより、OUDproxyがリモートLDAPサーバーに接続する方法が決まります。
ポート番号。エンタープライズ・ユーザー・セキュリティ・ユーザーおよびグループが含まれているLDAPサーバーのポート番号を入力します。
「追加」をクリックして、別のLDAPサーバーを追加できます。LDAPサーバーの追加を完了した後、「閉じる」をクリックして続行します。
「サーバー」ページでリストを確認します。
「サーバー」ページには、この時点で、エンタープライズ・ユーザー・セキュリティ・ユーザーおよびグループが含まれているサーバーが1つ以上リストされています。「次へ」をクリックして続行します。
「ネーミング・コンテキスト」ページで、ベースDNの横にあるチェック・ボックスをクリックしてマークして、ネーミング・コンテキストのベースDNを選択します。
表にネーミング・コンテキストが表示されていない場合は、リモートLDAPサーバーのベースDNを「追加のネーミング・コンテキストDN」フィールドに入力し、「追加」を選択します。
「次へ」をクリックして続行します。
サーバーの実行時オプションを構成します。
「変更」をクリックして特定のJVM設定を構成するか、または「次へ」をクリックしデフォルトのJVM設定でサーバーを実行できます。
「次へ」をクリックします。
「確認」ページで設定を確認し、「完了」をクリックします。
Oracle Unified Directory Proxyの新しいインスタンスがインストールされ、構成されたうえで起動されます。
「閉じる」をクリックします。
次のようにOUDプロキシでdsconfig
コマンドを実行し、リモート・ルートDNおよびリモート・ルート・ユーザー・アカウントを設定します。
dsconfig set-workflow-element-prop \ --element-name proxy-we1 \ --set remote-root-dn:cn=directory manager \ --set remote-root-password:******** \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt
注意: 前述のコマンドの--element-name プロパティは、プロキシ・ワークフロー要素の名前に対応し、外部LDAPディレクトリ・サーバーとの接続に使用されます。
OUDプロキシ設定ウィザードでプロキシを構成すると、プロキシ・ワークフロー要素のデフォルト名は 次のように、 dsconfig -h localhost -p administration port number -D "cn=Directory Manager" -X -n list-workflow-elements --bindPasswordFile password.txt 次のような出力が表示されます。 Workflow Element : Type : enabled ----------------- :--------------------:-------- adminRoot : ldif-local-backend : true load-bal-we1 : load-balancing : true proxy-we1 : proxy-ldap : true 前述の例で、 |
外部LDAP準拠ディレクトリのプロキシ・ワークフロー要素のモードを設定します。
デフォルトで、構成はuse-client-identity
モードに設定されます。
外部LDAPサーバーで匿名アクセスが許可されている場合、use-client-identity
モードを使用します。
use-client-identity
モードを使用する場合は、外部LDAPサーバー資格証明および除外リストを構成する必要があります。
通常、データベースはそれ自体の資格証明を使用して、Oracle Unified Directoryプロキシ・サーバーに接続し、外部LDAPサーバーで検索を実行します。EUSが有効化されている場合、外部LDAPサーバー上にはデータベース・エントリは存在しないため、データベースは代替IDを使用して外部LDAPサーバーにバインドする必要があります。データベース・エントリは、Oracle Unified Directoryプロキシ・サーバー上にローカルで格納されます。
use-client-identity
モードを使用するには、次のようにdsconfig
コマンドを実行します。
dsconfig set-workflow-element-prop \ --element-name proxy-we1 \ --set client-cred-mode:use-client-identity \ --add exclude-list:cn=directory manager \ --add exclude-list:cn=oraclecontext,dc=example,dc=com \ --set remote-ldap-server-bind-dn: \
cn=administrator,cn=users,dc=example,dc=com \ --set remote-ldap-server-bind-password:******** \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt
この例では、remote-root-dn
およびremote-ldap-server-bind-dn
が、リモートLDAP管理者によって使用される資格証明です。
重要。use-client-identity
モードでActive Directoryと統合されている場合、次のコマンドを使用して匿名ログインを許可する必要があります(この場合のdc=example,dc=com
は、Active DirectoryサーバーのベースDNです)。
ldapmodify -h <ADhost> -p <AD port> -D <AD dirmgr> -w <pwd> dn: cn=directory service,cn=windows nt,cn=services,cn=configuration,dc=example,dc=com changetype: modify replace: dsHeuristics dsHeuristics: 0000002
外部LDAPサーバーで匿名アクセスが許可されていない場合、use-specific-identity
モードを使用します。これは、Active Directoryが外部LDAPサーバーとして使用されている場合は特に、最も一般的なエンタープライズ・ユーザー・セキュリティ構成です。
モード設定をuse-specific-identity
に変更する場合、外部LDAPサーバー資格証明を構成する必要があります。
use-specific-identity
モードを使用するには、次のようにdsconfig
コマンドを実行します。
dsconfig set-workflow-element-prop \ --element-name proxy-we1 \ --set client-cred-mode:use-specific-identity \ --set remote-ldap-server-bind-dn: \
cn=administrator,cn=users,dc=example,dc=com\ --set remote-ldap-server-bind-password:******** \ --hostname localhost \ --port 4444 \ --trustAll \ --bindDN "cn=directory manager" \ --bindPasswordFile pwd.txt \ --no-prompt
この例では、remote-root-dn
およびremote-ldap-server-bind-dn
が、リモートLDAP管理者によって使用される資格証明です。
ODSMからOracle Unified Directory Proxyに接続します。
「ホーム」タブを選択します。
「構成」セクションで、「リモートEUSネーミング・コンテキストの設定」を選択します。
「リモートEUSネーミング・コンテキストの作成」ページで、次の情報を指定します。
ベースDN。これは、リモートLDAPサーバーから提供される接尾辞です。
ネットワーク・グループ。1つ以上のネットワーク・グループに接尾辞をアタッチします。リストから必要なネットワーク・グループを選択します。
サーバー・タイプ。リストからユーザーおよびグループが含まれているLDAPサーバーのタイプを選択します。
ホスト名。リモートLDAPサーバーが実行されているマシンの名前を入力します。
使用可能なポート。OUDプロキシが、LDAPかLDAPS、またはLDAPとLDAPSの両方を使用して、リモートLDAPサーバーに接続できるようにするかどうかを示します。
選択したオプションに応じて、LDAPポート、LDAPSポート、またはLDAPポートとLDAPポートの両方のポート番号を入力します。これは、リモートLDAPサーバーによって使用されるポートである必要があります。
LDAPSを選択した場合は、すべてを信頼するようにSSLを構成するか、または信頼マネージャを構成します。
「作成」をクリックします。
「構成」タブを選択します。
「ネーミング・コンテキスト」リストで、先ほど作成したネーミング・コンテキストの下にあるプロキシを選択します。
プロキシLDAPワークフロー要素ウィンドウで、次のようにします。
バインドDNおよびバインド・パスワードを入力します。
これらは、リモートLDAPサーバー管理者の資格証明に一致する必要があります。
「リモート・ルート・プロパティ」を展開し、リモート・ルートDNおよびパスワードを入力します。
これらは、リモートLDAPサーバー管理者の資格証明に一致する必要があります。
「資格証明モード」フィールドに、外部LDAP準拠ディレクトリのプロキシ・ワークフロー要素のモードを設定します。
外部LDAPサーバーで匿名アクセスが許可されていない場合、use-specific-identity
モードを使用します。これは、Active Directoryが外部LDAPサーバーとして使用されている場合は特に、最も一般的なエンタープライズ・ユーザー・セキュリティ構成です。
use-specific-identity
モードを使用するには、次のようにします。
「資格証明モード」フィールドで、「特定のアイデンティティの使用」を選択します。次に、バインドDNおよびバインド・パスワードの値を入力します。確認のためにもう一度バインド・パスワードを入力します。
外部LDAPサーバーで匿名アクセスが許可されている場合、use-client-identity
モードを使用します。
use-client-identity
モードを使用するには、次のようにします。
「資格証明モード」フィールドで、まず「クライアント・アイデンティティの使用」を選択し、「クライアント・アイデンティティ・モード・プロパティ」を展開します。次に、"cn=directory manager"
および"cn=OracleContext,dc=example,dc=com"
を「除外バインドDN」表に追加します。
「適用」をクリックします。
EUSまたはOracle E-Business Suiteに対するOracle Unified Directoryの構成後、次のステップを実行してユーザーおよびグループの格納に使用されるネーミング・コンテキストを構成する必要があります。
LDIFテンプレート・ファイル(install_dir/config/EUS/modifyRealm.ldif
)を見つけます。
modifyRealm.ldif
ファイルを次のように編集します:
dc=example,dc=com
をサーバー・インスタンスの現在のネーミング・コンテキストに置き換えます。
ou=people
とou=groups
をDIT内のユーザー・エントリとグループ・エントリの現在の場所にそれぞれ置き換えます。
ldapmodify
コマンドを使用して、編集済のLDIFテンプレート・ファイルで構成を更新します。例:
$ ldapmodify -h localhost -p 1389 -D "cn=directory manager" -j pwd-file -f modifyRealm.ldif
注意: LDAP接続ハンドラがクライアントからの接続をリスニングするポート番号(例:1389 )を指定してください。4444 の管理ポート番号は指定しないでください。 |
Active Directoryを統合している場合、次のコマンドを実行して、dc=example,dc=com
を構成の適切なベースDNで置換します。
$ ldapmodify -h localhost -p 1389 -D "cn=directory manager" -j pwd-file dn:cn=Common,cn=Products,cn=OracleContext,dc=example,dc=com changetype: modify replace: orclCommonNickNameAttribute orclCommonNickNameAttribute: samaccountname
エンタープライズ・ユーザー・セキュリティは、EUSメタデータとも呼ばれる自身の構成をOracleコンテキストに格納します。これはディレクトリ情報ツリーの一部に対応しています。ユーザー・エントリがdc=example,dc=com
の下に格納されている場合、EUSは通常Oracleコンテキストとしてcn=OracleContext,dc=example,dc=com
を使用するように構成されます。
このタスクでは、Oracle Net Configuration AssistantはEUSに構成を読み取る場所を通知します。
Oracle Net Configuration Assistantを起動するには、データベースがインストールされているホストでnetca
コマンドを実行します。
Oracle Net Configuration Assistantが表示されます。
「ようこそ」ページで、「ディレクトリ使用構成」を選択し、「次へ」をクリックします。
後続のページで次の情報を入力します。
ディレクトリ・タイプ
LDAPサーバーがOracle Virtual DirectoryまたはOracle Unified Directoryである場合でも、「Oracle Internet Directory」を選択します。
「次へ」をクリックします。
ホスト名
LDAPサーバーのホストとなっているサーバーのホスト名またはIPアドレスを入力します。
ポート
LDAPポート番号を入力します。
SSLポート
LDAPSポート番号を入力します。
Oracleコンテキスト
cn=OracleContext
を選択しないでください。そのかわり、矢印をクリックして、OracleContextの場所を表示および選択します。
Oracle Net Configuration Assistantは、LDAPサーバーに接続して、使用可能なOracleコンテキストを取得します。エンタープライズ・ユーザー・セキュリティ構成は、OracleContext
内に格納されます。
「次へ」をクリックします。
「ディレクトリ使用構成が完了しました。」
「次へ」をクリックします。
「ようこそ」ページが表示されたら、「終了」をクリックします。
LDAPサーバー情報が含まれている構成ファイルをNet Configuration Assistantが正常に作成したことを検証するには、次のコマンドを実行します。
# cat $ORACLE_HOME/network/admin/ldap.ora # ldap.ora Network Configuration File: /app/oracle/product/db/product/11.2.0/dbhome_1/network/admin/ldap.ora # Generated by Oracle configuration tools. DIRECTORY_SERVERS= (oudhost:1389:1636) DEFAULT_ADMIN_CONTEXT = "dc=example,dc=com" DIRECTORY_SERVER_TYPE = OID
データベースによって使用される構成ファイルには、LDAPサーバーのホスト名およびポートが含まれています。この例では、情報は(oudhost:1389:1636)
として表されます。高可用性のデプロイメントを実現するために複数のサーバーをカンマで区切って指定できます。
この例では、dc=example,dc=com
はEUSメタデータとも呼ばれるEUS構成の格納に使用されるOracleコンテキストを表しています。
データベースがインストールされているホストでdbca
コマンドを実行します。
Oracle DatabaseのDatabase Configuration Assistantが表示されます。「次へ」をクリックし、後続のページで次の情報を指定します。
実行する操作を選択します。
「データベース・オプションの構成」を選択し、「次へ」をクリックします。
データベース
リスト・ボックスで、登録するデータベースを選択します。次に、「次へ」をクリックします。
Database Configuration Assistantは、データベースがLDAPサーバーにすでに登録されているかどうかを判別します。
このデータベースをディレクトリ・サービスに登録しますか。
「データベースを登録する」を選択します。Database Configuration Assistantは、Oracleコンテキストにデータベースのエントリを作成します。
ユーザーDN
ユーザーDNは、LDAPサーバーに対して認証するために使用します。
ユーザーDNは通常cn=directory manager
で、OUDプロキシのディレクトリ・マネージャになります。ユーザーDNは、Oracleコンテキストにデータベース・エントリを作成する追加操作でも使用されます。ユーザーは、LDAPサーバーへの書込みアクセス権を持っている必要があります。
パスワード
Database Configuration Assistantは、データベースのウォレットを作成します。データベース・エントリDNおよびパスワードは、ウォレットに格納されます。データベースは、LDAPサーバーに接続するとき、このウォレットに格納されている資格証明を使用して認証されます。
データベース・コンポーネント
このページには何も変更を加えず、「次へ」をクリックします。
接続モード
「専用サーバー・モード」を選択し、「終了」をクリックします。
確認
「OK」をクリックして、データベースを登録します。
別の操作を実行しますか。
「いいえ」をクリックして、Database Configuration Assistantアプリケーションを終了します。
Database Configuration Assistantがデータベースの新しいエントリを正常に作成したことを検証するには、次のコマンドを実行して、orcl11g
をデータベースの名前に置き換えます。
$ ldapsearch -h oudhost -p 1389 -D "cn=directory manager" -j pwd.txt -b cn=oraclecontext,dc=example,dc=com "(cn=orcl11g)"
dn: cn=orcl11g,cn=OracleContext,dc=example,dc=com
orclVersion: 112000
orclcommonrpwdattribute: {SASL -MD5}eW5+2LTPRKzFmHxmMZQmnw==
objectClass: orclApplicationEntity
objectClass: orclService
objectClass: orclDBServer_92
objectClass; orclDBServer
objectClass: top
orclServiceType: DB
orclSid: orcl11g
oracleHome: /app/oracle/product/db/product/11.2.0/dbhome_1
cn: orcl11g
orclSystemName: oudhost
userPassord: {SSHA}oNeBEqkUMtDusjXNXJPpa7qa+Yd0b9RHvA==
orclNetDescString: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST)=oudhost)
(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl11g)))
orclDBGLOBALNAME: orcl11g
orclNetDescName: 000:cn= DESCRIPTION_0
このタスクのステップを完了するには、Oracle Enterprise Managerを使用します。
次のSQLコマンドを実行します。
SQL> CREATE USER global_ident_schema_user IDENTIFIED GLOBALLY; User created. SQL> GRANT CONNECT TO global_ident_schema_user; Grant succeeded.
Webブラウザで、Enterprise Managerに接続します。例:
https://localhost:1158/em
次の情報を指定します。
ユーザー名。データベースの管理を許可されているユーザーの名前を入力します。
パスワード。管理者パスワードを入力します。
接続モード。SYSDBAを選択します。
「ログイン」をクリックします。
「サーバー」タブをクリックします。
「サーバー」タブの「セキュリティ」セクションで、「エンタープライズ・ユーザー・セキュリティ」をクリックします。
「Oracle Internet Directoryログイン: エンタープライズ・ユーザー・セキュリティ」ページで、次の情報を指定します。
ユーザー。Oracleコンテキストへの書込みアクセス権を持つユーザーのユーザー名(たとえば、cn=directory manager
)を入力します。
パスワード。同じユーザーのパスワードを入力します。
「ログイン」をクリックします。
「エンタープライズ・ユーザー・セキュリティ」ページで、「エンタープライズ・ドメインの管理」をクリックします。
エンタープライズ・ドメインには、1つ以上のデータベースを含めることができます。エンタープライズ・ドメインの設定は、そのドメインに含まれているすべてのデータベースに適用されます。
「エンタープライズ・ドメインの管理」ページで、構成するドメインを選択し、「構成」をクリックします。
「ドメインの構成」ページで、「ユーザー・スキーマ・マッピング」をクリックします。
「ユーザー・スキーマ・マッピング」ページで、「作成」をクリックします。
ドメイン・スキーマ・マッピングを作成するには、新規マッピング・ページで、次の情報を指定します。
自
グローバル・スキーマを特定のサブツリーのすべてのユーザーまたは特定のユーザーに関連付けることができます。
グローバル・スキーマを特定のサブツリーのすべてのユーザーに関連付けるには、次のようにします。
1. サブツリーを選択し、懐中電灯アイコンをクリックして、使用可能なサブツリーを検索します。
2. 「ユーザーの選択」ページで、サブツリーを選択します。選択したDNの下にあるエンタープライズ・ユーザーは、同じグローバル・スキーマにマップされます。
3. 「選択」をクリックします。
グローバル・スキーマを特定のユーザーに関連付けるには、次のようにします。
1. 「ユーザー名」を選択し、懐中電灯アイコンをクリックして、使用可能なユーザーを検索します。
2. 「ユーザーの選択」ページで、ユーザーDNを選択します。この特定のユーザーのみがグローバル・スキーマにマップされます。
3. 「選択」をクリックします。
宛先
「スキーマ」フィールドに、グローバル・スキーマの名前を入力します。たとえば、global_ident_schema_user
とします。
「続行」をクリックします。
「ユーザー・スキーマ・マッピング」タブで、マッピングが正しければ、「OK」をクリックします。
この例の場合、hr_access
という名前のロールが作成されます。ロールにより、hr.employees
表への読取りアクセス権が付与されます。
データベースにロールを作成するには、次のようにします。
SQL> CREATE ROLE hr_access IDENTIFIED GLOBALLY; Role created. SQL> GRANT SELECT ON hr.employees TO hr_access; Grant succeeded.
詳細は、Oracle Databaseのドキュメントを参照してください。
ドメインに新しいロールを作成するには、「エンタープライズ・ドメインの管理」ページで、ロールを作成するドメインを選択し、「構成」をクリックします。
「ドメインの構成」ページで、「エンタープライズ・ロール」をクリックします。「作成」をクリックします。
「エンタープライズ・ロールの作成」ページで、次の情報を指定します。
「名前」フィールドに、エンタープライズ・ロールの名前を指定します。
「DBグローバル・ロール」タブで、「追加」をクリックします。
「検索と選択: データベース・グローバル・ロール」ページで、次の情報を指定します。
データベース。ドロップダウン・リストからデータベースを選択します。
ユーザー名。Enterprise Managerは、データベースから使用可能なロールを取得します。ロールへのアクセスを許可されている管理者のユーザー名(たとえば、SYS AS SYSDBA
)を入力します。
パスワード。管理者パスワードを入力します。
「実行」をクリックします。
「検索と選択: データベース・グローバル・ロール」ページで、エンタープライズ・ユーザーに付与するグローバル・ロールを選択します。
「選択」をクリックします。
「エンタープライズ・ロールの作成」ページで、エンタープライズ・ロールを付与するエンタープライズ・ユーザーまたはグループを選択し、「権限受領者」タブをクリックします。
「権限受領者」タブで、エンタープライズ・ユーザーまたはグループを選択するには、「追加」をクリックします。
選択: ユーザーおよびグループ・ページで、「実行」をクリックします。Enterprise Managerは、使用可能なユーザーおよびグループを取得します。
表示。ユーザーまたはグループを検索できます。
検索ベース。Enterprise Managerは、このDNで検索を開始します。
名前。ここに文字列を入力して、検索を絞り込みます。たとえば、名前がjoで始まるユーザーを検索する場合は、「jo」と入力し、「実行」をクリックします。
表には、関連するエントリが表示されます。リストから、エンタープライズ・ロールを付与するユーザーおよびグループを選択し、「選択」をクリックします。
「続行」をクリックします。
「ドメインの構成」ページで、「OK」をクリックして続行します。
「エンタープライズ・ロールの編集」ページで、「続行」をクリックします。
「ドメインの構成」ページで、「OK」をクリックします。
ロールが正常に作成された後、「構成」をクリックします。
ユーザーSHにプロキシ権限を定義するには、次のコマンドを実行します。
SQL> ALTER USER SH GRANT CONNECT THROUGH ENTERPRISE USERS; User altered. This command defines a proxy permission on user SH.
ドメイン情報の構成ページで、構成するドメインを選択し、「構成」をクリックします。
「ドメインの構成」ページで、「プロキシ権限」をクリックします。
新しいプロキシ権限を作成するには、「プロキシ権限」タブで「作成」をクリックします。
「プロキシ権限の作成」ページで、「名前」フィールドに、プロキシ権限の名前を指定します。
「ターゲットDBユーザー」タブで、「追加」をクリックします。
「検索と選択: データベース・ターゲット・ユーザー」ページで、次の情報を指定します。
データベース。ドロップダウン・リストからデータベースを選択します。
ユーザー名。ユーザーへのアクセスを許可されている管理者のユーザー名(たとえば、SYS AS SYSDBA
)を入力します。
パスワード。管理者パスワードを入力します。
「実行」をクリックします。
Enterprise Managerは、データベースから使用可能なターゲット・ユーザーを取得します。
「検索と選択」ページで、プロキシ権限のターゲット・ユーザーを選択し、「選択」をクリックします。
「プロキシ権限の作成」ページで、「権限受領者」タブをクリックします。
「権限受領者」タブで、「追加」をクリックします。
ユーザーおよびグループの選択ページで、「実行」をクリックします。Enterprise Managerは、使用可能なエンタープライズ・ユーザーを取得します。
選択: ユーザーおよびグループ・ページで、プロキシ権限を付与するユーザーを選択します。次に、「選択」をクリックして続行します。
「プロキシ権限の作成」ページで、「続行」をクリックします。
「ドメインの構成」ページで、「OK」をクリックして続行します。
「エンタープライズ・ユーザー・セキュリティ」ページで、「データベースの管理」をクリックします。
「データベースの管理」ページで、構成するデータベースを選択し、「構成」をクリックします。
「データベースの構成」ページで、「ユーザー・スキーマ・マッピング」タブをクリックします。
「ユーザー・スキーマ・マッピング」ページで、「作成」をクリックします。
ドメイン・スキーマ・マッピングを作成するには、新規マッピング・ページで、次の情報を指定します。
自
グローバル・スキーマを特定のサブツリーのすべてのユーザーまたは特定のユーザーに関連付けることができます。
グローバル・スキーマを特定のサブツリーのすべてのユーザーに関連付けるには、次のようにします。
1. サブツリーを選択し、懐中電灯アイコンをクリックして、使用可能なサブツリーを検索します。
2. 「ユーザーの選択」ページで、サブツリーを選択します。選択したDNの下にあるエンタープライズ・ユーザーは、同じグローバル・スキーマにマップされます。
3. 「選択」をクリックします。
グローバル・スキーマを特定のユーザーに関連付けるには、次のようにします。
1. 「ユーザー名」を選択し、懐中電灯アイコンをクリックして、使用可能なユーザーを検索します。
2. 「ユーザーの選択」ページで、ユーザーDNを選択します。この特定のユーザーのみがグローバル・スキーマにマップされます。
3. 「選択」をクリックします。
宛先
「スキーマ」フィールドに、グローバル・スキーマの名前を入力します。たとえば、global_ident_schema_user
とします。
「続行」をクリックします。
「ユーザー・スキーマ・マッピング」タブで、マッピングが正しければ、「OK」をクリックします。
この時点でエンタープライズ・ユーザー・セキュリティには次の構成が含まれています。
dc=example,dc=com
の下のすべてのユーザーにグローバル・スキーマを付与するユーザー・スキーマ・マッピング
uid=user.0,ou=people,dc=example,dc=com
にHR_ACCESS
を付与するエンタープライズ・ロール
プロキシ・ユーザーSHにuid=user.1,our=people,dc=example,dc=com
を許可するプロキシ権限
データベース構成をテストするには、次のようにします。
プロキシ権限をユーザーSH
として使用し、sqlplus
を実行してuser.1
資格証明でデータベースに接続します。
次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.0,ou=people,dc=example,dc=com
用に構成されたパスワードをLDAPサーバーに指定します。
# sqlplus user.0 SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from session_roles; Role ------------------------------- CONNECT HR_ACCESS SQL>
この例では、次の内容から、データベースがuser.0などのユーザーに対して正しく構成されていることがわかります。
Connect to:
で始まる行は、認証が正常に完了したことを示しています。
SQL> select * from session_roles;
で始まる行により、管理者はエンタープライズ・ユーザーに付与されたロールを確認できます。
データベース・ロールHR_ACCESS
は、エンタープライズ・ロールによって付与されます。
プロキシ権限をユーザーSH
として使用し、sqlplus
を実行してuser.1
資格証明でデータベースに接続します。
次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.1,ou=people,dc=example,dc=com
用に構成されたパスワードをLDAPサーバーに指定します。
# sqlplus user.1 SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from session_roles; Role ------------------------------- CONNECT SQL>
この例では、次の内容から、データベースがuser.1などのユーザーに対して正しく構成されていることがわかります。
Connect to:
で始まる行は、認証が正常に完了したことを示しています。
SQL> select * from session_roles;
で始まる行により、管理者はエンタープライズ・ユーザーに付与されたロールを確認できます。
唯一のデータベース・ロールがCONNECT
で、これはグローバル・スキーマによって付与されます。
プロキシ権限をユーザーSH
として使用し、sqlplus
を実行してuser.1
資格証明でデータベースに接続します。
次の例では、SQLPlusによりユーザー・パスワードが要求されます。管理者は、uid=user.1,ou=people,dc=example,dc=com
用に構成されたパスワードをLDAPサーバーに指定します。
# sqlplus user.1[sh] SQL*Plus: Release 11.2.0.2.0 Production on Fri Feb 7 16:16:04 2014 Copyright (c) 1982, 2010, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select * from session_roles; Role ------------------------------- RESOURCE SELECT_CATALOG_ROLE HS_ADMIN_SELECT_ROLE CWM_USER SQL>
この例では、次の内容から、データベースがuser.1
などのユーザーに対して正しく構成されていることがわかります。
Connect to:
で始まる行は、認証が正常に完了したことを示しています。
SQL> select * from session_roles;
で始まる行により、現在ログインしているユーザーは自身に付与されたロールを確認できます。
ユーザーuser.0
は、プロキシ認証によってユーザーSHのロールを継承します。
次に、Oracle Unified Directoryとエンタープライズ・ユーザー・セキュリティの基本的な統合を超えた共通構成を示します。
ユーザーおよびグループが複数のドメインに格納されている場合は、複数のEUSドメインをサポートするようにOUDを構成する必要があります。たとえば、1つのOUDインスタンスに2つのEUSドメインが含まれているとします。1つのEUSドメインでは、Active Directoryのcn=users,dc=ad1,dc=com
の下にユーザー・エントリを格納しています。もう1つのEUSドメインでは、別のActive Directoryインスタンスのcn=users,dc=ad2,dc=com
の下にユーザー・エントリを格納しています。各EUSドメインをサポートするようにOUDを構成する必要があります。
複数のEUSドメインをサポートするようにOUDを構成するには、次のようにします。
プライマリ・ドメインがすべてのユーザーおよびグループを含む単一のドメインであるかのように、OUDを構成します。
この例では、プライマリ・ドメインはdc=ad1,dc=com
です。
第31.3.2項「外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するためのOracle Unified Directory Proxyの構成」のタスクを完了します。
セカンダリ・ドメインを構成します。
この例では、セカンダリ・ドメインはdc=ad2,dc=com
です。
このセカンダリ・ドメインについて、第31.3.2.1項「タスク1: 外部LDAPディレクトリにユーザー・アイデンティティを構成する」のステップを完了します。
EUSドメイン(この例ではdc=ad2,dc=com
)の新しいネーミング・コンテキストを作成します。
第31.3.2.2.3項「ODSMを使用した、エンタープライズ・ユーザー・セキュリティと連携するための既存のOracle Unified Directory Proxyの構成」のステップを完了します。
新しいネーミング・コンテキストでOracleコンテキストを更新します。
LDIFファイルを作成します。
次のmyconfig.ldif
の例で、次の置換を行います。
dc=ad1,dc=com
を1つ目のドメインのDNに置き換えます。
orclcommonusersearchbase
をセカンダリ・ドメインでのユーザーの場所に置き換えます。
orclcommongroupsearchbase
をセカンダリ・ドメインでのグループの場所に置き換えます。
dn: cn=Common,cn=Products,cn=OracleContext,dc=ad1,dc=com changetype: modify add: orclcommonusersearchbase orclcommonusersearchbase: cn=users,dc=ad2,dc=com orclcommongroupsearchbase: cn=groups,dc=ad2,dc=com
ステップ4aで作成したLDIFファイルを使用して、OUD構成を更新します。
ldapmodify -h oudhost -p 1389 -D "cn=directory manager" -w password -f myconfig.ldif
エンタープライズ・ユーザー・セキュリティと統合された2つ以上のOUDインスタンスの間で高可用性を実現できます。まず、OUDをエンタープライズ・ユーザー・セキュリティと統合します。次に、統合されたOUDインスタンス間にレプリケーションを構成します。構成が完了すると、エンタープライズ・ユーザー・セキュリティ・メタデータ(ディレクトリ・サーバーまたはディレクトリ・プロキシにあります)とOUDサーバー・ユーザーおよびグループとの間でレプリケーションが発生します。
レプリケーションに対応するように統合OUD LDAPサーバーを構成することは、レプリケートされる接尾辞のリストが異なるという1つの例外を除き、統合OUDプロキシ・サーバーを構成することとまったく同じです。
統合OUDインスタンスがLDAPサーバーとして構成されている場合、次の接尾辞がレプリケートされます。
cn=oraclecontext
cn=oraclecontext,dc=example,dc=com
dc=example,dc=com
統合OUDインスタンスがプロキシ・サーバーとして構成されている場合、次の接尾辞がレプリケートされます。
cn=oraclecontext
cn=oraclecontext,dc=example,dc=com
注意: Oracle Data Guard、Oracle Real Application Clustersまたは高可用性を使用している場合、各データベース・インスタンスはNetCAおよびDBCAを使用して構成されている必要があります。 |
高可用性向けにOUD-EUS統合インスタンスを構成するには、次のようにします。
1つ目のOracle Unified DirectoryおよびOracle Enterprise User Securityが連携するようにします。
1つ目のOUDインスタンスがディレクトリ・サーバーである場合は、第31.3.1項「エンタープライズ・ユーザー・セキュリティ向けディレクトリとしてのOracle Directory Serverの構成」のタスクを完了します。
1つ目のOUDインスタンスがディレクトリ・プロキシである場合は、第31.3.2項「外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するためのOracle Unified Directory Proxyの構成」のタスクを完了します。
2つ目のOracle Unified DirectoryインスタンスおよびOracle Enterprise User Securityが連携するようにします。
2つ目のOUDインスタンスがLDAPサーバーとして構成されている場合は、第31.3.1項「エンタープライズ・ユーザー・セキュリティ向けディレクトリとしてのOracle Directory Serverの構成」のタスクを完了します。
2つ目のOUDインスタンスがプロキシとして構成されている場合は、第31.3.2項「外部LDAPディレクトリおよびエンタープライズ・ユーザー・セキュリティと連携するためのOracle Unified Directory Proxyの構成」のタスクを完了します。
1つ目のOUDインスタンスと2つ目のOUDインスタンスとの間でレプリケーションを有効にします。
OUDインスタンスがLDAPサーバーである場合は、このコマンドを実行します。
# dsreplication enable --host1 oud-proxy-source --port1 4444 --bindDN1 "cn=Directory Manager" --bindPasswordFile1 /tmp/pwd1.txt --replicationPort1 repl1 --host2 oud-proxy-dest --port2 4444 --bindDN2 "cn=Directory Manager" --bindPasswordFile2 /tmp/pwd2.txt --replicationPort2 repl2 --adminUID admin --adminPasswordFile /tmp/pwd3.txt --baseDN "cn=OracleContext,dc=example,dc=com" --baseDN "cn=OracleContext" --baseDN "dc=example,dc=com" -X -n
OUDインスタンスがディレクトリ・プロキシである場合は、このコマンドを実行します。
# dsreplication enable --host1 oud-proxy-source --port1 4444 --bindDN1 "cn=Directory Manager" --bindPasswordFile1 / tmp/pwd1.txt --replicationPort1 repl1 --host2 oud-proxy-dest --port2 4444 --bindDN2 "cn=Directory Manager" --bindPasswordFile2 /tmp/pwd2.txt --replicationPort2 repl2 --adminUID admin --adminPasswordFile /tmp/pwd3.txt --baseDN "cn=OracleContext,dc=example,dc=com" --baseDN "cn=OracleContext" -X -n
注意: ディレクトリ・プロキシの例には、--baseDN "dc=example,dc=com" オプションは含まれていません。 |
レプリケーションは、この時点で、1つ目のOUDインスタンス(ステップ1から)と2つ目のOUDインスタンス(ステップ2から)で有効になります。
レプリケーションを初期化します。例:
OUDインスタンスがディレクトリ・サーバーである場合は、このコマンドを実行します。
dsreplication initialize --baseDN "cn=OracleContext,dc=example,dc=com"
--baseDN "cn=OracleContext" --baseDN "dc=example,dc=com" \
--adminUID admin --adminPasswordFile /tmp/pwd3.txt \
--hostSource <oud-proxy-source> --portSource 4444 \
--hostDestination <oud-proxy-dest> --portDestination 4444 -X -n
OUDインスタンスがディレクトリ・プロキシである場合は、このコマンドを実行します。
dsreplication initialize --baseDN "cn=OracleContext,dc=example,dc=com" \ --baseDN "cn=OracleContext" \ --adminUID admin --adminPasswordFile /tmp/pwd3.txt \ --hostSource <oud-proxy-source> --portSource 4444 \ --hostDestination <oud-proxy-dest> --portDestination 4444 -X -n
注意: ディレクトリ・プロキシの例には、--baseDN "dc=example,dc=com" オプションは含まれていません。 |
両方のOUDインスタンスには、この時点で、同じデータが含まれています。詳細は、第32.6項「データによるレプリケート対象サーバーの初期化」を参照してください。
両方のOUDインスタンスをデータベースldap.ora
構成ファイルで宣言します。
# ldap.ora Network Configuration File: /app/oracle/product/db/product/11.2.0/dbhome_1/network/admin/ldap.ora # Generated by Oracle configuration tools. DIRECTORY_SERVERS= (oudhost1:1389:1636,oudhost2:1389:1636) DEFAULT_ADMIN_CONTEXT = "dc=example,dc=com" DIRECTORY_SERVER_TYPE = OID
パスワード・ポリシーは、アイデンティティ管理レルム内のユーザー・パスワードすべてに適用されるルール・セットです。パスワード・ポリシーには、パスワードの複雑性、パスワードの最低文字数などの設定が含まれます。アカウントのロックアウトとパスワード有効期限の設定も含まれます。
データベースはOracle Unified Directoryと通信し、パスワード・ポリシー違反についてレポートするようにOracle Unified Directoryにリクエストします。データベースは、Oracle Unified Directoryからポリシー違反に関するレスポンスを取得すると、適切な警告またはエラー・メッセージをユーザーに表示します。次の表に、パスワード警告とその意味を示します。
表31-1 パスワード警告
警告の状態 | メッセージの例 |
---|---|
ユーザー・パスワードはまもなく期限切れになります。メッセージは、ユーザーが各自のパスワードを変更するまでの残り日数を示しています。 |
SQL> connect joe/Admin123 ERROR: ORA-28055: the password will expire within 1 days Connected. |
パスワードは期限切れになり、残っている猶予期間ログインの数をユーザーに通知します。 |
SQL> connect joe/Admin123 ERROR: ORA-28054: the password has expired. 1 Grace logins are left Connected. |
ユーザー・パスワードは期限切れになり、ユーザーには猶予期間ログインが残っていません。 |
SQL> connect joe/Admin123 ERROR: ORA-28049: the password has expired |
ログイン試行に繰り返し失敗したために、ユーザー・アカウントはロックされています。 |
SQL> connect joe/Admin123 ERROR: ORA-28051: the account is locked |
ユーザー・アカウントは管理者によって無効にされました。 |
SQL> connect joe/Admin123 ERROR: ORA-28052: the account is disabled |
ユーザー・アカウントは非アクティブです。 |
SQL> connect joe/Admin123 ERROR: ORA-28053: the account is inactive |
エンタープライズ・ユーザーによってデータベースへのログイン試行が行われると、Oracle Unified Directoryまたはサポートされている外部LDAP準拠ディレクトリでそのユーザー・アカウントのステータスが更新されます。たとえば、データベースへのログイン試行が連続して失敗すると、ディレクトリのパスワード・ポリシーに従って、そのアカウントはディレクトリでロックされます。
この項では、OUDとエンタープライズ・ユーザー・セキュリティを統合した後で発生する可能性がある問題の解決策を示します。トラブルシューティングのヒントは、次のカテゴリにグループ化されています。
NetCAによるディレクトリへの接続に失敗すると、「Oracle Net Configuration Assistant」画面に次のエラー・メッセージが表示されます。
このエラーを解決するには、コマンド行で次のコマンドを実行して、ホスト名とポート番号が正しいかどうかを確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -b "" -s base "(objectclass=*)" dn: objectClass: top objectClass: ds-root-dse $ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $LDAPSPORT -Z -X -b "" -s base "(objectclass=*)" dn: objectClass: top objectClass: ds-root-dse
必要なスキーマを使用できなかったり、バージョン番号が正しくない場合に、「Oracle Net Configuration Assistant」画面に次のエラー・メッセージが表示されます。
このエラーを解決するには、Oracle Unified Directoryに匿名でアクセスできることと、次のcn=subschemasubentry
エントリが含まれていることを確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $LDAPSPORT -Z -X -b cn=subschemasubentry -s base "(objectclass=*)" dn: cn=subschemasubentry objectClass: top objectClass: ldapSubentry objectClass: subschema
Oracle Unified Directoryがエンタープライズ・ユーザー・セキュリティに対して有効化されていない場合、cn=subschemasubentry
エントリは使用できません。エンタープライズ・ユーザー・セキュリティを有効にするには、Oracle Unified DirectoryのインストールのGUIを使用したディレクトリ・サーバーの設定に関する項を参照してください。
cn=subschemasubentry
に匿名でアクセスできない場合は、次のACIがOracle Unified DirectoryでグローバルACIとして定義されているかどうかを確認します。
(target="ldap:///cn=subschemasubentry")(targetscope="base") \ (targetattr="objectClass||attributeTypes||dITContentRules||dITStructureRules| \ |ldapSyntaxes||matchingRules||matchingRuleUse||nameForms||objectClasses") \ (version 3.0; acl "User-Visible SubSchemaSubentry Operational Attributes"; \ allow (read,search,compare) userdn="ldap:///anyone";)
詳細は、第28.1項「dsconfig
を使用したグローバルACIの管理」を参照してください。
cn=OracleContext
ネーミング・コンテキストおよびcn=OracleContext,<your baseDN>
ネーミング・コンテキストを使用できない場合、「Oracle Net Configuration Assistant」画面にエラー・メッセージが表示されます。
このエラーを解決するには、次の手順を完了します。
コマンド行で次のコマンドを実行して、baseDNを使用できるかどうかを確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $LDAPSPORT -Z -X -b "" -s base "(objectclass=*)" namingContexts dn: namingContexts: cn=OracleContext namingContexts: cn=OracleSchemaVersion namingContexts: dc=eusovd,dc=com
前述のように3つのネーミング・コンテキストが使用可能であることを確認します。ベースDNが見つからない場合は、Oracle Unified DirectoryのインストールのGUIを使用したディレクトリ・サーバーの設定に関する項の説明に従って、エンタープライズ・ユーザー・セキュリティを有効にする必要があります。
コマンド行で次のコマンドを実行して、baseDNにOracleコンテキストが含まれているかどうかを確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $LDAPSPORT -Z -X -b "" "(objectclass=orclcontext)" dn: cn=OracleContext orclVersion: 90600 cn: OracleContext objectClass: orclContext objectClass: orclContextAux82 objectClass: top objectClass: orclRootContext dn: cn=OracleContext,dc=eusovd,dc=com orclVersion: 90600 cn: OracleContext objectClass: orclContext objectClass: orclContextAux82 objectClass: top
注意: NetCAは匿名で検索を実行します。Oracle Unified Directoryが匿名検索を拒否するように構成されていたり、ACIがcn=OracleContext,<baseDN> へのアクセスを制限している場合、NetCAはOracleコンテキストを見つけることができません。 |
NetCAの構成が完了すると、$ORACLE_HOME/network/admin
ディレクトリ(UNIXの場合)またはORACLE_HOME\network\admin
ディレクトリ(Windowsの場合)にldap.ora
ファイルが作成されます。次のパラメータが含まれていることを確認します。
DIRECTORY_SERVERS= (oudhost:1389:1636) DEFAULT_ADMIN_CONTEXT = "dc=eusovd,dc=com" DIRECTORY_SERVER_TYPE = OID
このエラー・メッセージは、SSLがOracle Unified Directoryに対して有効化されていない場合に表示されます。
このエラーを解決するには、コマンド行で次のコマンドを実行して、SSLがOracle Unified Directoryに対して有効化されているかどうかを確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $LDAPSPORT -Z -X -b "" -s base "(objectclass=*)" dn: objectClass: top objectClass: ds-root-dse
このエラー・メッセージは、接尾辞が使用できない場合に表示されます。
このエラーを解決するには、Oracle Unified DirectoryのインストールのGUIを使用したディレクトリ・サーバーの設定に関する項の説明に従って、接尾辞が作成されていることを確認します。
このエラー・メッセージは、データベース登録時にcn=directory manager
以外のユーザーを指定した場合に表示されます。
このエラーを解決するには、ユーザーがパスワード・リセット権限を持ち、ユーザー・エントリに次のいずれかのuniqueMember
属性が含まれていることを確認します。
cn=oraclecontextadmins,cn=groups,cn=oraclecontext,dc=eusovd,dc=com
cn=oraclenetadmins,dc=oraclecontext,dc=eusovd,dc=com
コマンド行で次のコマンドを実行します:
$ OracleUnifiedDirectory/bin/ldapmodify -h $LDAPSERVER -p $LDAPPORT -D $DN -w $PWD dn: cn=newadmin,ou=people,dc=eusovd,dc=com changetype: modify add: ds-privilege-name ds-privilege-name: password-reset Processing MODIFY request for cn=newadmin,ou=people,dc=eusovd,dc=com MODIFY operation successful for DN cn=newadmin,ou=people,dc=eusovd,dc=com dn: cn=oraclenetadmins,cn=oraclecontext,dc=eusovd,dc=com changetype: modify add: uniquemember uniquemember: cn=newadmin,ou=people,dc=eusovd,dc=com Processing MODIFY request for cn=oraclenetadmins,cn=oraclecontext,dc=eusovd,dc=com MODIFY operation successful for DN cn=oraclenetadmins,cn=oraclecontext,dc=eusovd,dc=com dn: cn=oraclecontextadmins,cn=groups,cn=oraclecontext,dc=eusovd,dc=com changetype: modify add: uniquemember uniquemember: cn=newadmin,ou=people,dc=eusovd,dc=com Processing MODIFY request for cn=oraclecontextadmins,cn=groups,cn=oraclecontext,dc=eusovd,dc=com MODIFY operation successful for DN cn=oraclecontextadmins,cn=groups,cn=oraclecontext,dc=eusovd,dc=com
このエラー・メッセージは、DBCAがデータベース・エントリ用に作成するパスワードがOracle Unified Directoryパスワード・バリデータに許可されない場合に表示されます(たとえば、10文字以上の長さのパスワードが必要な場合)。
このエラーを解決するには、次の手順を完了する必要があります。
コマンド行で次のコマンドを実行して、パスワード・バリデータを無効にします。
$ OracleUnifiedDirectory/bin/dsconfig -h $LDAPSERVER -p $ADMINPORT \ -D $DN -j pwd.txt set-password-policy-prop \ --policy-name Default\ Password\ Policy --reset password-validator \ --trustAll --no-prompt
dbca
コマンドを実行します。
コマンド行で次のコマンドを実行して、パスワード・バリデータを有効にします。
$ OracleUnifiedDirectory/bin/dsconfig -h $LDAPSERVER -p $ADMINPORT -D $DN -j pwd.txt set-password-policy-prop --policy-name Default\ Password\ Policy --set password-validator:Length-Based\ Password\ Validator --trustAll --no-prompt
このエラー・メッセージは、データベースとディレクトリ間の接続に問題がある場合に表示されます。
この問題を解決するには、次のようにします。
データベース・ウォレットの自動ログインが有効になっていることを確認します。Oracle Wallet Managerを使用するか、$ORACLE_HOME/admin/<ORACLE_SID>/wallet/
にcwallet.sso
ファイルがあることを確認します。
次のコマンドを実行して、ユーザー・エントリのDNおよびパスワードを確認します。
$ mkstore -wrl $ORACLE_BASE/admin/$ORACLE_SID/wallet -viewEntry ORACLE.SECURITY.DN Oracle Secret Store Tool : Version 11.2.0.2.0 - Production Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. Enter wallet password: ******** ORACLE.SECURITY.DN = cn=orcl11gr2,cn=OracleContext,dc=eusovd,dc=com $ mkstore -wrl $ORACLE_BASE/admin/$ORACLE_SID/wallet -viewEntry ORACLE.SECURITY.PASSWORD Oracle Secret Store Tool : Version 11.2.0.2.0 - Production Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. Enter wallet password: ******** ORACLE.SECURITY.PASSWORD = zQ7v4ek3
次のコマンドを実行して、データベースがディレクトリ・サーバーに接続できるか確認します。
$ oracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -b cn=common,cn=products,cn=oraclecontext,$BASEDN "(objectclass=*)" orclcommonusersearchbase orclcommongroupsearchbase orclcommonnicknameattribute orclcommonnamingattribute dn: cn=Common,cn=Products,cn=OracleContext,dc=eusovd,dc=com orclcommonusersearchbase: ou=people,dc=eusovd,dc=com orclcommongroupsearchbase: ou=groups,dc=eusovd,dc=com orclcommonnicknameattribute: uid orclcommonnamingattribute: cn
ディレクトリ・サーバーへの接続に失敗する場合は、次の手順を実行する必要があります。
データベース・エントリがディレクトリ・サーバー内に存在していることを確認します。
次のコマンドを実行して、orclcommonrpwdattribute
にデータベース・エントリのパスワードが含まれていることを確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -b cn=oraclecontext,$BASEDN -s one "(objectclass=orcldbserver)" orclcommonrpwdattribute dn: cn=orcl11gr2,cn=OracleContext,dc=eusovd,dc=com orclcommonrpwdattribute: {SASL-MD5}KvIVAyYahxnHWdlfN649Kw==
エントリが見つからないか、またはエントリにパスワードが含まれていない場合は、「タスク4: LDAPサーバーにデータベースを登録する」の説明に従って、DBCAを使用する必要があります。
このエラー・メッセージは、無効なユーザー名またはパスワードが指定された場合に表示されます。
このエラーを解決するには、正しいユーザー名およびパスワードを指定します。
次のコマンドを実行して、エンタープライズ・ユーザー・セキュリティの構成を確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -b \ cn=common,cn=products,cn=oraclecontext,$BASEDN \ "(objectclass=*)" orclcommonusersearchbase \ orclcommongroupsearchbase orclcommonnicknameattribute orclcommonnamingattribute dn: cn=Common,cn=Products,cn=OracleContext,dc=eusovd,dc=com orclcommonusersearchbase: ou=people,dc=eusovd,dc=com orclcommongroupsearchbase: ou=groups,dc=eusovd,dc=com orclcommonnicknameattribute: uid orclcommonnamingattribute: cn
Oracle Unified DirectoryがEUS用に構成されると、ユーザーおよびグループ構成が属性orclcommonusersearchbase
およびorclusercommongroupsearchbase
内に格納されます。
SQLPLUSに指定するユーザー名は、ユーザー・エントリ内のorclcommonnicknameattribute
の値に対応している必要があります。たとえば、値joe/passwordおよびorclcommonnicknameattribute=uid
を使用してSQLPLUSに接続する場合、データベースは属性uid=joe
を含むエントリを検索します。
ユーザー・エントリDNは、orclcommonnamingattribute
から始まる必要があります。たとえば、orclcommonnamingattribute=cn
の場合、ユーザー・エントリはcn=joe,<orclcommonusersearchbase>
である必要があります。
ユーザー・コンテナに、SQLPLUSに指定したユーザー名と一致するユーザー・エントリが存在することを確認します。inetorgpersonオブジェクト・クラスには、orclcommonnicknameattributeに定義した属性が含まれます。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT \ -D $DN -w $PWD -b ou=people,$BASEDN "(ui \d=joe)" dn: cn=joe,ou=people,dc=eusovd,dc=com userPassword: {SSHA}DdW5je5GCUnT2jVTeMdfPR9NWwkBt40FwWImpA== objectclass: person objectclass: organizationalPerson objectclass: inetorgperson objectclass: top uid: joe cn: joe sn: joe
Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイドの共有スキーマへのエンタープライズ・ユーザーのマッピングに関する項の説明に従って、ユーザースキーマ・マッピングが作成されていることを確認します。
このエラー・メッセージは、データベースが対応するユーザーを検出したが、そのパスワードをSQLに提供されたパスワードと比較できない場合に表示されます。
この問題を解決するには、次のようにします。
データベース・エントリに、エントリauthpassword
およびorclguid
を読み込むために必要なACIがあることを確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -D $DN -w $PWD -b ou=people,$BASEDN "(uid=joe)" authpassword orclguid dn: cn=joe,ou=people,dc=eusovd,dc=com authpassword;orclcommonpwd: {SSHA}DdW5je5GCUnT2jVTeMdfPR9NWwkBt40FwWImpA== orclguid: 6458c6945c0a48be92ab35cf71859210
データベースがエントリを読み込めない場合は、次のACIがグローバルACIとしてOUDサーバーに定義されていることを確認します(EUSが選択されている場合は、oud-setupによって自動的に追加されます)。
(target="ldap:///dc=eusovd,dc=com")(targetattr!="userpassword||authpassword ||aci")(version 3.0; acl "Anonymous read access to subtree";allow (read,search,compare) userdn="ldap:///anyone";) (target="ldap:///dc=eusovd,dc=com")(targetattr="authpassword||userpassword") (version 3.0; acl "EUS reads authpassword"; allow (read,search,compare) userdn="ldap:///??sub?(&(objectclass=orclservice)(objectclass=orcldbserver))";)
ユーザー・エントリにauthpasswordが含まれていない場合は、ユーザー・パスワードがあることを確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -D $DN -w $PWD -b ou=people,$BASEDN "(uid=joe)" userpassword dn: cn=joe,ou=people,dc=eusovd,dc=com userpassword: {SSHA}DdW5je5GCUnT2jVTeMdfPR9NWwkBt40FwWImpA==
互換性のあるスキーム(SSHA-512はサポートされていない)を使用してuserpassword
属性が格納されていることを確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -D $DN -w $PWD -b ou=people,$BASEDN "(uid=joe)" userpassword dn: cn=joe,ou=people,dc=eusovd,dc=com userpassword: {SSHA}DdW5je5GCUnT2jVTeMdfPR9NWwkBt40FwWImpA==
このエラー・メッセージは、適切な認証に複数回失敗した場合に表示されます。
この問題を解決するには、次のようにします。
コマンド行で次のコマンドを実行して、Oracle Unified Directoryにアカウント・ロックアウトが構成されていることを確認します。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -X -Z -D $DN -w $PWD -b "cn=Default Password Policy,cn=Password Policies,cn=config" "(objectclass=*)" ds-cfg-lockout-failure-count ds-cfg-lockout-duration ds-cfg-lockout-failure-expiration-interval dn: cn=Default Password Policy,cn=Password Policies,cn=config ds-cfg-lockout-failure-expiration-interval: 180 s ds-cfg-lockout-failure-count: 3 ds-cfg-lockout-duration: 180 s
failure-count
の値が0の場合、アカウント・ロックアウトが有効になっています。詳細は、第30章「パスワード・ポリシーの管理」を参照してください。
エンタープライズ・ユーザー・セキュリティの構成時に、次のACIが定義されていることを確認します。
(target="ldap:///dc=eusovd,dc=com")(targetattr="orclaccountstatusevent") (version 3.0; acl "EUS write orclaccountstatusenabled"; allow (write) userdn="ldap:///??sub?(&(objectclass=orclservice)(objectclass=orcldbserver))";) (targetcontrol="2.16.840.1.113894.1.8.16")(version 3.0; acl "Anonymous control access"; allow(read) userdn="ldap:///anyone";) (targetcontrol="2.16.840.1.113894.1.8.2")(version 3.0; acl "Anonymous control access"; allow(read) userdn="ldap:///anyone";)