Oracle® Fusion Middleware Oracle Authentication Services for Operating Systems管理者ガイド 11g リリース(11.1.1) B61411-01 |
|
前 |
次 |
この付録では、Oracle Authentication Services for Operating Systemsを構成または管理する際に発生する問題を示します。内容は次のとおりです。
この項では、クライアント構成スクリプトを実行する際に発生するエラーを示します。
AIXでクライアント・スクリプトを実行する場合、事前に少なくとも1人のユーザーをLDAPに追加する必要があります。そうしない場合、構成スクリプトが失敗して、次のエラー・メッセージの1つが表示されることがあります。
Cannot find users from all base DN client setup failed."
Cannot find the group base DN from the LDAP server. Client setup failed."
「少なくとも1人のユーザーと1つのグループのAIXへの追加」を参照してください。
AIX 6.1では、mksecldap
ツールに関連する問題により、SSLクライアント構成スクリプトは失敗します。AIX 6.1では、非SSL構成スクリプトを使用して、非SSLモードでOracle Authentication Services for Operating Systemsを構成できるのみです。
問題
クライアント・スクリプトにより出力されるサーバー・ホスト名に、重複するドメイン名(myserver.mycompany.com.mycompany.com
など)が含まれます。
解決策
サーバー・スクリプトは、クライアント・スクリプトの生成時にサーバー・ホスト名にドメインを追加します。ほとんどの場合、サーバー・ホスト名は単純な名前なので、この動作に問題はありません。しかし、サーバーでhostname
を完全修飾ドメイン名に設定した場合は、サーバー・スクリプトによって不適切な名前が生成されます。
この問題を修正するには、クライアント・スクリプトの実行中に、次の問合せに対してn
を入力します。
Do you want to configure test-host to authenticate users against the above OID LDAP server [n]: y
これにより、クライアント・スクリプトが停止します。次にクライアント・スクリプト内のサーバー・ホスト名を編集し、再びスクリプトを実行します。編集する行は次のとおりです。
oidServerHost="myserver.mycompany.com.mycompany.com"
この項では、Oracle Authentication Services for Operating Systemsでコマンドライン・ツールを使用する際に発生するエラーを示します。
問題
system-config-users
ツールを使用する際にエラーが発生します。
解決策
「NISからOracle Internet Directoryへの移行」に示されているすべての属性がユーザー・エントリに含まれていることを確認してください。
解決策
Red Hat Enterprise Linuxバージョン4で新規グループを作成する際にエラーが発生した場合は、ファイル/usr/share/system-config-users/userGroupCheck.py
を編集してください。
変更前:
def isGroupnameOk(str, widget):
変更後:
def isGroupnameOk(name,widget):
問題
system-config-users
やluseradd
などのlibuserツールの起動時に、Pythonエラーが表示されます。
解決策
libuser
ツールを使用するには、クライアントおよびサーバーをSSL用に構成する必要があります。「SSL認証と非SSL構成の切替え」を参照してください。
問題
useradd
、userdel
、groupadd
、groupdel
などのLinuxツールを使用すると、一貫性が失われたり、予期しない動作が発生します。
解決策
これらのツールはサポートされていません。Oracle Authentication Services for Operating SystemsをインストールしてOracle Internet Directoryにデータを移行した後、特定のツールを使用してユーザー、パスワードおよびその他のデータを管理する必要があります。具体的には次のツールを使用する必要があります。
Oracle Directory Manager
$ORACLE_HOME/bin
にあるLDAPツールおよびバルク・ツール
passwd
コマンド
Linuxディストリビューションでは、制限付きでlibuser
ツールも使用できます。「パスワード・ポリシーが一貫して強制されない」を参照してください。
問題
検索を実行しようとすると、サーバーによって次のエラーが戻されます。
Function not implemented. DSA unwilling to perform.
解決策
必須属性として指定されている索引付けされていない属性の検索を実行しようとしました。
Oracle Internet Directoryで属性を検索できるのは、その属性が索引付けされている場合のみです。デフォルトでは、ユーザーおよびグループのエントリの標準属性が索引付けされています。カスタム属性を使用する場合は、catalog
コマンドを使用して索引付けできます。例:
catalog connect="connect_str" add="TRUE" attribute="automountKey"
問題
AIX mkuser
コマンドが次のエラーで失敗します。
Group "staff" does not exist.Check "/usr/lib/security/mkuser.default" file.
解決策
この問題を解決するには、Oracle Internet Directory内にstaff
という名前のグループを作成します。
解決策
AIX 5.3では、LDAPクライアントとNISクライアントが同じマシン上に構成されていない場合、AIX LDAPクライアントからユーザーを作成できません。この問題は、APAR IY90556をインストールすると解決できます。
関連項目: http://www.ibm.com/developerworks/ にある『LDAP configuration management and troubleshooting on AIX』 |
問題
ユーザー・アカウントに1つのプライマリ・グループと1つ以上のセカンダリ・グループがあります。Oracle Authentication Services for Operating Systemsを構成した後、Solarisで次のように入力します。
id -a
この場合、セカンダリ・グループが表示されません。
解決策
id
コマンドに-a
オプションを使用していることを確認してください。
id -a
を使用しているのにセカンダリ・グループが表示されない場合、セカンダリ・グループのLDAPエントリを変更する必要があることがあります。
まず、LDAPスキーマ内のオブジェクトクラスorclGroup
にuid
属性がなければ、この属性を追加します。Oracle Internet Directoryへの新規属性の追加方法の詳細は、『Oracle Fusion Middleware Oracle Internet Directory管理者ガイド』の「ディレクトリ・スキーマの管理」の章を参照してください。
次に、すべてのセカンダリ・グループのグループ・エントリを変更します。uniquemember:
dn
をmemberuid:
uid
に置き換えます。uidは、uid
値を含むタイプuid
の属性です。
セカンダリ・グループの各エントリは、次の例のようになります。
dn: cn=dba,cn=groups,dc=us,dc=example,dc=com memberuid: cms memberuid: gtest1 memberuid: oidpam4 memberuid: oidpam5 memberuid: oidpam8 memberuid: orcladmin objectclass: posixGroup objectclass: top objectclass: groupOfUniqueNames objectclass: orclGroup cn: cmsdba displayname: dba description: DBAgroup. gidnumber: 7002
この項では、いくつかのテスト方法およびOracle Authentication Services for Operating Systemsの実行時にログ・ファイルに記録されるメッセージの一部について説明します。
問題
管理者はOracle Internet Directoryを監視する必要があります。
解決策
Oracle Internet Directoryのデバッグを有効にすると、Oracle Internet Directory LDAPサーバーによってデバッグ・メッセージがファイルORACLE_INSTANCE
/diagnostics/logs/OID/
componentName/oidldapd01s
PID
-XXXX
.logに書き込まれます。
01はインスタンス番号です。デフォルトは01です。
sはサーバーを表します。
PIDはサーバー・プロセス識別子です。
XXXX
は、0000からorclmaxlogfilesconfigured
までの番号です。
デバッグを有効にするには、次のコマンドラインを使用してデバッグ・フラグを1に設定します。
ldapmodify -p port -h host -D cn=orcladmin -q -v -f debug.ldif
debug.ldif
は次のようになります。
dn:cn=componentname,cn=osdldapd,cn=subconfigsubentry
changetype:modify
replace: orcldebugflag
orcldebugflag:1
解決策
Oracle Internet Directoryですべての操作のログ・メッセージが生成されるようなデバッグ・レベルを設定できます。
次のコマンドラインを使用して、Oracle Internet Directoryにファンクション・トレースのデバッグ・レベルを設定します。
ldapmodify -p port -h host -D cn=orcladmin -q -v -f debug.ldif
debug.ldif
は次のようになります。
dn:cn=componentname,cn=osdldapd,cn=subconfigsubentry
changetype: modify
replace: orcldebugflag
orcldebugflag: 117440511
-
replace: orcldebugforceflush
orcldebugforceflush: 1
問題
StartTLSを使用すると、前のクリアな接続でのSSL接続のネゴシエーションが可能になります。StartTLSはユーザーには見えません。管理者は、なんらかの方法でStartTLSが機能していることを確認する必要があります。
注意: HP-UXおよびSolarisのOracle Internet Directoryサーバーでは、StartTLSは使用されません。これらのプラットフォームでは、SSLは非SSL接続とは異なるポート上で構成されます。 |
解決策
StartTLSが機能していることを確認するには、SSLネゴシエーションの開始時にOracle Internet Directoryによってログ・メッセージが生成されるようにデバッグ・レベルを設定します。すべてのクライアントは非SSLポートを指定しているため、ログ・メッセージが生成されればstartTLSが機能していることになります。
次の手順を実行します。
次のコマンドラインを使用して、Oracle Internet Directoryにファンクション・トレースのデバッグ・レベルを設定します。
ldapmodify -p port -h host -D cn=orcladmin -q -f debug.ldif -v
debug.ldif
は次のようになります。
dn: changetype: modify replace: orcldebugflag orcldebugflag: 25165824 - replace: orcldebugforceflush orcldebugforceflush: 1
Oracle Internet Directoryサーバーを起動する認証操作を実行します。たとえば、ssh
を使用して、Oracle Internet Directoryに対して認証するように構成されているクライアントに接続します。
$ORACLE_HOME/ldap/log
内のログ・ファイルを調べます。文字列gslsflnNegotiateSSL
を含むメッセージを探します。
問題
パスワード構文に関するメッセージがログ・ファイルに含まれていますが、Oracle Internet Directoryはパスワード・ポリシー強制に使用されていません。
解決策
Oracle Internet Directoryをパスワード・ポリシー強制に使用しない場合は、orclpwdpolicyenable
を0に設定してOracle Internet Directoryのパスワード・ポリシーを無効にする必要があります。また、パスワード構文関連のメッセージが発行されないように、pwdCheckSyntax
を0に設定してパスワード構文チェックを無効にする必要があります。
Red Hat Enterprise LinuxまたはOracle Enterprise LinuxクライアントからOracle Internet Directoryサーバーへの接続をテストするには、次のようにOpenLDAPコマンドldapsearch
を使用します。
ldapsearch -ZZ -d 1 -x -h your_oid_host -p 389 -b your_realm -D user_dn -W -s sub objectclass=*
正常に起動されれば、サーバーへの接続は機能しています。
また、date
またはtime
コマンドを使用して、マシン間の時間同期も確認してください。誤差は2分未満にする必要があります。
$ORACLE_INSTANCE/OID/admin/wallet/root/cacert.txt
の下のルートCA証明書がオペレーティング・システムのクライアント証明書/etc/oracle-certs/oid-test-cert.pem
と同じであることを確認します。
次のように入力して、証明書が有効であることを確認します。
openssl x509 -in oid-test-cert.pem -noout -text
出力のValidity
セクションを探します。有効な時間は、Not Before
およびNot After
として指定されています。例:
Validity Not Before: Mar 25 11:52:37 2010 GMT Not After : Mar 24 11:52:37 2011 GMT
この項では、認証にOracle Authentication Services for Operating Systemsを使用する場合にログイン試行時に発生するエラーを示します。
問題
クライアント構成スクリプトを実行した後、ユーザーがログインできません。オペレーティング・システムのログ・ファイルに、次のようなエラー・メッセージが記録されている可能性があります。
April 10 14:32:21 myhost sshd: nss_ldap: failed to bind to LDAP server ldap://ldaphost: Inappropriate authentication
解決策
Oracle Internet Directoryで匿名バインドが許可されていない場合、ユーザーはログインできません。匿名バインドが無効になっている場合は、次の手順で匿名バインドを有効にします。
次のようなLDIFファイルを作成します。
dn: cn=oid1,cn=osdldapd,cn=subconfigsubentry changetype: modify replace: orclAnonymousBindsFlag orclAnonymousBindsFlag: 1
次のコマンドを実行します。
ldapmodify -D cn=orcladmin -q -p portNum -h hostname -f ldifFileName
問題
クライアント構成スクリプトを実行した後、ユーザーがログインできません。
解決策
一部のオペレーティング・システムでは、config_OIDclient.sh
またはsslConfig_OIDclient.sh
スクリプトの実行中にnscd
またはsshd
が動作していると、構成後に認証が機能しなくなることがあります。この問題を修正するには、sshd
またはnscd
を再起動してください。
問題
Active Directory同期を構成した場合、パスワードの変更後、ユーザーは新しいパスワードを使用してログインできません。
解決策
Oracle Internet DirectoryエントリではなくActive Directoryユーザー・エントリのパスワードを変更する必要があります。
問題
カスタム証明書を使用してSSLバージョンの構成スクリプトを実行した後、ユーザーがログインできません。
解決策
サーバー証明書のサブジェクトDNを調べます。CNが1つのみ存在し、その中にSSLサーバーのホスト名が含まれている必要があります。サブジェクトDN内に複数のCNが存在する場合、現在のOpenSSL実装ではサーバー証明書のホスト名を検証できません。
問題
ユーザーをOracle Internet Directoryに追加または移行しましたが、ユーザーのホーム・ディレクトリが作成されません。
解決策
Linuxシステムでは、ユーザーをOracle Internet Directoryに追加する際に、クライアント・コンピュータ上にそのユーザーのホーム・ディレクトリを作成する必要はありません。各クライアント・コンピュータ上で実行したクライアント構成スクリプトによって、最初のログイン時に、各ユーザーのホーム・ディレクトリの作成が有効化されています。ただし、Linux以外のオペレーティング・システムでは、ユーザーのホーム・ディレクトリを手動で作成する必要があります。
問題
ログイン試行時に、ユーザーに次のようなメッセージが表示されます。
No shell Connection closed by foreign host.
解決策
この問題は、Oracle Internet Directory内のユーザー・エントリによって指定されているシェルのパス名が、ユーザーがログインしようとするコンピュータに存在しない場合に発生します。サポートされているシェルおよびシェルのパス名は、オペレーティング・システムごとに異なります。たとえば、あるオペレーティング・システムでは/bin
の下にsh
、csh
、bash
およびtcsh
が含まれていますが、別のオペレーティング・システムでは/usr/bin
の下にsh
およびcsh
が含まれています。
シェルのパス名が異なるコンピュータにユーザーがログインする必要がある場合は、いずれかのコンピュータでシェルへのシンボリック・リンクを作成する必要があることがあります。
問題
Oracle Internet Directoryによるパスワード・ポリシーの強制が失敗するか、パスワード・ポリシー強制が予定どおりに機能しません。
解決策
Oracle Internet Directoryを使用してパスワード・ポリシーを強制する場合、libuser
パッケージ内のツールを使用してパスワードまたはパスワードを含むエントリを追加することはできません。これは、パスワードがOracle Internet Directoryに送信される前に、libuser
ツールによってハッシュ・パスワードが生成されるため、パスワードがポリシー基準を満たしているかどうかをOracle Internet Directoryが判断できないためです。かわりにLDAPツールまたはOracle Directory Managerを使用してください。
解決策
Oracle Internet Directoryを使用してパスワード・ポリシーを強制する場合は、shadowmax
を99999
、shadowexpire
を-1
にそれぞれ設定して、オペレーティング・システムによるパスワードの期限切れを無効にします。