ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Unified Directory管理者ガイド
11g リリース2 (11.1.2)
B72794-04
  目次へ移動
目次

前
 
次
 

C エンタープライズ・ユーザー・セキュリティのトラブルシューティング

この付録では、Oracle Unified Directoryをエンタープライズ・ユーザー・セキュリティに統合する際に発生する一般的な状況と、それらを対処する手順を説明します。次のトピックが含まれます:

C.1 第C.1項「Net Configuration Assistant (NetCA)ツールの問題と解決策」

NetCAツールを実行すると、次のエラー・メッセージが表示されることがあります。

C.1.1 LDAPサーバー接続エラー

NetCAによるディレクトリへの接続に失敗すると、「Oracle Net Configuration Assistant」画面に次のエラー・メッセージが表示されます。

図C-1 接続エラー

図C-1の説明が続きます
「図C-1 接続エラー」の説明

このエラーを解決するには、コマンド行で次のコマンドを実行して、ホスト名とポート番号が正しいかどうかを確認します。

$ 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

C.1.2 スキーマ・エラー

必要なスキーマを使用できなかったり、バージョン番号が正しくない場合に、「Oracle Net Configuration Assistant」画面に次のエラー・メッセージが表示されます。

図C-2 Oracleスキーマ

図C-2の説明が続きます
「図C-2 Oracleスキーマ」の説明

このエラーを解決するには、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の管理」を参照してください。

C.1.3 ネーミング・コンテキスト・エラー

cn=OracleContextおよびcn=OracleContext,<your baseDN>ネーミング・コンテキストを使用できない場合、「Oracle Net Configuration Assistant」画面に次のエラー・メッセージが表示されます。

図C-3 ネーミング・コンテキスト

図C-3の説明が続きます
「図C-3 ネーミング・コンテキスト」の説明

このエラーを解決するには、次の手順を完了します。

  1. コマンド行で次のコマンドを実行して、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を使用したディレクトリ・サーバーの設定に関する項の説明に従って、エンタープライズ・ユーザー・セキュリティを有効化する必要があります。

  2. コマンド行で次のコマンドを実行して、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コンテキストを見つけることができません。


  3. 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
    

C.2 Database Configuration Assistant (DBCA)の問題と解決策

DBCAツールを実行すると、次のエラー・メッセージが表示されることがあります。

C.2.1 TNS-04409エラー/TNS-04427: ディレクトリ・サーバーへのSSLアクセス

このエラー・メッセージは、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章「クライアント/サーバー間のセキュリティ構成」を参照してください。

C.2.2 TNS-04409エラー/TNS-04431: 接尾辞が必要

このエラー・メッセージは、接尾辞が使用できない場合に表示されます。

このエラーを解決するには、『Oracle Fusion Middleware Oracle Unified Directoryインストレーション・ガイド』のGUIを使用したディレクトリ・サーバーの設定に関する項の説明に従って、接尾辞が作成されているかどうかを確認します。

C.2.3 DBにcn=directory manager以外のユーザーを登録するときのTNS-04411エラー

このエラー・メッセージは、データベース登録時に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
    

C.2.4 TNS-04409エラー/TNS-04405

このエラー・メッセージは、DBCAがデータベース・エントリ用に作成するパスワードがOracle Unified Directoryパスワード・バリデータに許可されない場合に表示されます(たとえば、10文字以上の長さのパスワードが必要な場合)。

このエラーを解決するには、次の手順を完了する必要があります。

  1. コマンド行で次のコマンドを実行して、パスワード・バリデータを無効にします。

    $ 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
    
  2. 第28.3.3.2項「Oracle Unified Directoryへのデータベースの登録」の説明に従って、DBCAを実行します。

  3. コマンド行で次のコマンドを実行して、パスワード・バリデータを有効にします。

    $ 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
    

C.3 Oracle SQLの問題と解決策

SQLツールを実行すると、次のエラー・メッセージが表示されることがあります。

C.3.1 ORA-28030: LDAPディレクトリ・サービスへアクセス中にサーバーに問題が発生しました。

このエラー・メッセージは、データベースとディレクトリ間の接続に問題がある場合に表示されます。

この問題を解決するには、次のようにします。

  1. データベース・ウォレットの自動ログインが有効になっていることを確認します。Oracle Wallet Managerを使用するか、$ORACLE_HOME/admin/<ORACLE_SID>/wallet/cwallet.ssoファイルがあることを確認します。

  2. 次のコマンドを実行して、ユーザー・エントリの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
    
  3. 次のコマンドを実行して、データベースがディレクトリ・サーバーに接続できるか確認します。

    $ 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
    

    ディレクトリ・サーバーへの接続に失敗する場合は、次の手順を実行する必要があります。

    1. データベース・エントリがディレクトリ・サーバー内に存在していることを確認します。

    2. 次のコマンドを実行して、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を実行する必要があります。

C.3.2 ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。

このエラー・メッセージは、無効なユーザー名またはパスワードが指定された場合に表示されます。

このエラーを解決するには、正しいユーザー名およびパスワードを指定します。

  1. 次のコマンドを実行して、エンタープライズ・ユーザー・セキュリティの構成を確認します。

    $ 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>である必要があります。

  2. ユーザー・コンテナに、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
    
  3. Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド共有スキーマへのエンタープライズ・ユーザーのマッピングに関する項の説明に従って、ユーザースキーマ・マッピングが作成されていることを確認します。

C.3.3 ORA-28274: ユーザー・ニックネームに対応するORACLEパスワード属性が存在しません。

このエラー・メッセージは、データベースが対応するユーザーを検出したが、そのパスワードをSQLに提供されたパスワードと比較できない場合に表示されます。

この問題を解決するには、次のようにします。

  1. データベース・エントリに、エントリ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
    
  2. データベースがエントリを読み込めない場合は、次の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))";)
    
  3. ユーザー・エントリに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==
    
  4. 互換性のあるスキーム(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==
    

C.3.4 ORA-28051: アカウントがロックされています。

このエラー・メッセージは、適切な認証に複数回失敗した場合に表示されます。

この問題を解決するには、次のようにします。

  1. コマンド行で次のコマンドを実行して、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章「パスワード・ポリシーの管理」を参照してください。

  2. エンタープライズ・ユーザー・セキュリティの構成時に、次の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";)