OpsCenter LDAPのトラブルシューティング

OpsCenter向けにLDAPを構成する際のトラブルシューティングに関するヒントとエラー・リファレンス。

logback.xmlを使用したLDAPのデバッグ

logback.xml

logback.xmlファイルの場所は、インストールのタイプによって異なります。
  • パッケージ・インストール:/etc/opscenter/logback.xml
  • tarボール・インストール:install_location/conf/logback.xml
詳細な情報に基づいてLDAPをデバックするには、logback.xmlのSSLトラストストア・パスワードなど、構成ファイルの新しい値と置き換えます。
<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_dnopscenterd.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 no roles defined in LDAP
このエラーは、LDAPの検索によって、認証ユーザーのロールがないという結果が返されたときに発生します。
  • directory_searchgroup_search_typeを使用している場合は、1つまたは複数のロール名がLDAPから返されるようにgroup_search_filter_with_dnを変更します。認証を成功させるには、これらのLDAPロール名の1つだけがOpsCenterロール名に一致する必要があることに注意してください。
  • memberof_searchgroup_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_searchgroup_search_typeを使用している場合は、返されるLDAPグループのリストにOpsCenterロール名が1つだけ含まれるようにgroup_search_filter_with_dnを変更します。
  • memberof_searchgroup_search_typeを使用している場合は、ユーザーのuser_memberof_attributeに、1つのOpsCenterロールを指定するLDAPグループのリストが含まれていることを確認してください。
Active Directory(AD)を使用している場合、ユーザーは、特別なグループではない(組み込みグループではない)グループに少なくとも1つ属している必要があります。特別なグループとは、Domain Usersなど、Active Directoryの組み込みグループのいずれかです。
注: 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_filtergroup_search_filter_dnを変更します。