ldapsearch -H <URL> -b <BASE> -s sub -D <USER> -x -w <PW>
正常に動作します
kinit <USER>@<REALM>
ldapsearch -H <URL> -b <BASE> -s sub
失敗します:
text: 000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1
kinit Administrator@<REALM>
ldapsearch -H <URL> -b <BASE> -s sub
うまくいく
通常のグーグル操作では、何も興味深いことがわかりませんでした。 (時間のずれとuserPrincipalName
と-D
のコンポーネント名の使用に関する通常のコメントがありますが、kinit
を使用する場合は注意が必要です。)
何か案は?
GSSAPI AD検索が適切に機能するためには、ldapsearchコマンドラインで「-O maxssf = 0」を指定する必要があることがわかりました。次のコマンドを使用すると、SSL接続を介してADグローバルカタログを検索できます。
ldapsearch -LLL -O maxssf=0 -Y GSSAPI -H ldaps://ad.realm.local:3269 -b "dc=realm,dc=local" '(sAMAccountName=userid)'
また、Kerberos認証がldapsearchと連動するためには、DNSが逆IPルックアップ用に適切に構成されている必要があります。そうでない場合は、「数値のホストアドレスのレルムを判別できません」エラーが発生します。必要に応じて、ADサーバーのIPとホスト名をhostsファイルに入れて機能させることができます。
ldapsearch(1)
マンページから:
-Y mech
Specify the SASL mechanism to be used for authentication. If it's not specified, the program will choose the best mechanism the server knows.
例えば:
ldapsearch -Y GSSAPI -b "dc=example,dc=com" uid=user
/etc/gssapi_mech.conf
は次のようになります。
# grep -v ^# /etc/gssapi_mech.conf
libgssapi_krb5.so.2 mechglue_internal_krb5_init