この付録では、Oracle Unified Directoryをエンタープライズ・ユーザー・セキュリティに統合する際に発生する一般的な状況と、それらを対処する手順を説明します。次のトピックが含まれます:
NetCAツールを実行すると、次のエラー・メッセージが表示されることがあります。
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=subschema subentry objectClass: top objectClass: ldapSubentry objectClass: subschema
Oracle Unified Directoryがエンタープライズ・ユーザー・セキュリティに対して有効化されていない場合、cn=subschemasubentry
エントリは使用できません。エンタープライズ・ユーザー・セキュリティを有効化するには、『Oracle Fusion Middleware 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";)
詳細は、第25.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 Fusion Middleware 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が |
NetCAの構成が完了すると、$ORACLE_HOME/network/admin
ディレクトリ(Unixの場合)またはORACLE_HOME\network\admin
ディレクトリ(Windowsの場合)にldap.ora
ファイルが作成されます。次のパラメータが含まれていることを確認します。
DIRECTORY_SERVERS= (sboy:1389:1636) DEFAULT_ADMIN_CONTEXT = "dc=eusovd,dc=com" DIRECTORY_SERVER_TYPE = OID
DBCAツールを実行すると、次のエラー・メッセージが表示されることがあります。
このエラー・メッセージは、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
詳細は、第23章「クライアント/サーバー間のセキュリティ構成」を参照してください。
このエラー・メッセージは、接尾辞が使用できない場合に表示されます。
このエラーを解決するには、『Oracle Fusion Middleware 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
第28.3.3.2項「Oracle Unified Directoryへのデータベースの登録」の説明に従って、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
SQLツールを実行すると、次のエラー・メッセージが表示されることがあります。
このエラー・メッセージは、データベースとディレクトリ間の接続に問題がある場合に表示されます。
この問題を解決するには、次のようにします。
データベース・ウォレットの自動ログインが有効になっていることを確認します。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 $LDAPSPORT -Z -X -D $DN -w $PWD -b $BASEDN -s base "(objectclass=*)" dn: dc=eusovd,dc=com orclversion: 90400 objectclass: domain objectclass: top orclsubscriberfullname: eusovd dc: eusovd
ディレクトリ・サーバーへの接続に失敗する場合は、次の手順を実行する必要があります。
データベース・エントリがディレクトリ・サーバー内に存在していることを確認します。
次のコマンドを実行して、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==
エントリが不足しているかパスワードが含まれていない場合は、第28.3.3.2項「Oracle Unified Directoryへのデータベースの登録」の説明に従って、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=joeuser,<orclcommonusersearchbase>
である必要があります。
ユーザー・コンテナに、SQLPLUSに指定したユーザー名と一致するユーザー・エントリが存在することを確認します。inetorgpersonオブジェクト・クラスには、orclcommonnicknameattributeに定義した属性が含まれます。
$ OracleUnifiedDirectory/bin/ldapsearch -h $LDAPSERVER -p $PORT -D $DN -w $PWD -b ou=people,$BASEDN "(uid=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 4444 -X -Z -D cn=directory\ manager -w Admin123 -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の場合、アカウント・ロックアウトが有効になっています。詳細は、第27章「パスワード・ポリシーの管理」を参照してください。
エンタープライズ・ユーザー・セキュリティの構成時に、次の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";)