OpsCenter LDAPのトラブルシューティング
OpsCenter向けにLDAPを構成する際のトラブルシューティングに関するヒントとエラー・リファレンス。
logback.xmlを使用したLDAPのデバッグ
詳細な情報に基づいてLDAPをデバックするには、logback.xmlの
<logger/>
行のレベルを INFO
からDEBUG
に変更します。<logger name="org.apache.directory" level="INFO" additivity="false"/>
以下のように変更します。 <logger name="org.apache.directory" level="DEBUG"/>
DEBUG
ロギング・レベルに設定すると、OpscenterがLDAPサーバーに送信した正確なクエリーとその応答の詳細な情報を得ることができます。デバッグが終了したら、ログ・レベルを元に戻してください。
一般的なエラー・メッセージ
- Error: Failed to log in: {'desc': 'Protocol error'}
group_search_filter_with_dn
がopscenterd.confに指定されていない場合にスローされるエラー。- Error: Failed to log in: Invalid username or password.
- このエラーは、ユーザー名とパスワードが有効であっても発生する場合があります。その場合、OpsCenterがOpsCenter内のユーザーに対して一致するロールを見つけられない可能性があります。そのユーザーに対し、OpsCenterで手動でロールを作成します。または、ユーザーがOpsCenter管理者ユーザーである場合は、opscenterd.conf内の
admin_group_name
を、group_search_filter
の適用後にLDAPグループ・クエリーから返されるロールまたはグループの名前に設定します。フィルターにより、ユーザーが属しているグループのうち1つを除くすべてのグループを除外する必要があります。そうしないと、User has more than one defined roleというエラーが発生します。 - Error: Failed to log in: User myuser has more than one defined OpsCenter role.
- LDAPから返されたユーザーのグループのリストには、OpsCenterに構成されているロールのうち1つだけが含まれている必要があります。OpsCenterでは、一致するロールは1つでなければなりません。OpsCenterでは、ユーザー・ロールに関連付けられている適切なパーミッションを適用するために、ユーザーに割り当てることができるロールは1つだけです。
directory_search
のgroup_search_type
を使用している場合は、OpsCenterが一致するロールを1つだけ見つけることができるように、group_search_filter_with_dn
を変更して返されるグループ(ロール)の数を減らします。ロールは、ユーザーに割り当てられているOpsCenterロールに対応しています。memberof_search
のgroup_search_type
を使用している場合は、ユーザーのuser_memberof_attribute
に、OpsCenterロールを1つだけ含むLDAPグループのリストが含まれていることを確認してください。
- Error: Failed to log in: User myuser has no roles defined in LDAP
- このエラーは、LDAPの検索によって、認証ユーザーのロールがないという結果が返されたときに発生します。
directory_search
のgroup_search_type
を使用している場合は、1つまたは複数のロール名がLDAPから返されるようにgroup_search_filter_with_dn
を変更します。認証を成功させるには、これらのLDAPロール名の1つだけがOpsCenterロール名に一致する必要があることに注意してください。memberof_search
のgroup_search_type
を使用している場合は、ユーザーのuser_memberof_attribute
に、1つのOpsCenterロールを指定するLDAPグループのリストが含まれていることを確認してください。
- Error: Failed to log in: User myuser has no matching OpsCenter role in LDAP group(s): ...
- このエラーは、ユーザーが1つまたは複数のLDAPグループに属しているが、OpsCenterに定義されているロールにこれらのグループのいずれも一致しない場合に発生します。LDAPから返されたユーザーのグループのリストには、OpsCenterに構成されているロールのうち1つだけが含まれている必要があります。LDAPユーザーのロールの前提条件とロールの作成に関する説明を参照してください。
directory_search
のgroup_search_type
を使用している場合は、返されるLDAPグループのリストにOpsCenterロール名が1つだけ含まれるようにgroup_search_filter_with_dn
を変更します。memberof_search
のgroup_search_type
を使用している場合は、ユーザーのuser_memberof_attribute
に、1つのOpsCenterロールを指定するLDAPグループのリストが含まれていることを確認してください。
注: OpsCenterのLDAP統合が正しく機能するには、すべてのOpsCenter ADユーザーがDomain Usersグループに属している必要があります。Active DirectoryユーザーがDomain Usersに属していない場合、それらのユーザーはLDAPのディレクトリー検索で検出されません。 - Error: Failed to log in: Specified search user username unable to bind.
- 誤ったユーザー名を使用して
search_dn
を検索している場合や、誤ったパスワードを使用してsearch_password
条件を検索している場合に発生します。 - Error: In order to perform this operation a successful bind must be completed on the connection.
- このクエリーの構造に対してユーザーのパーミッションが不足しているため、最初の検索が失敗しています。以下の対策を試してみてください。
user_search_filter
をデフォルト値に設定します。user_search_filter = (sAMAccountName={0})
- 検索が最上位のドメインから始まらないように
user_search_base
を変更します。user_search_base = OU=Users,OU=Corp,DC=[value],DC=[value],DC=com
- カスタム・スキーマを使用している場合は、それに合わせて
group_search_filter
とgroup_search_filter_dn
を変更します。
opscenterd.conf
opscenterd.confファイルの場所は、インストールのタイプによって異なります。
- パッケージ・インストール:/etc/opscenter/opscenterd.conf
- tarボール・インストール:install_location/conf/opscenterd.conf
logback.xml
logback.xmlファイルの場所は、インストールのタイプによって異なります。
- パッケージ・インストール:/etc/opscenter/logback.xml
- tarボール・インストール:install_location/conf/logback.xml