最後一個步驟是使用 GSSAPI,對目錄伺服器進行認證。目錄伺服器隨附的 ldapsearch 公用程式可支援 SASL 認證,包含 GSSAPI、DIGEST-MD5 與 EXTERNAL 等機制。但若要使用 GSSAPI 進行連結,則必須為用戶端提供 SASL 程式庫的路徑。將 SASL_PATH 環境變數設為 lib/sasl 目錄,以提供路徑:
$ SASL_PATH=SASL-library $ export SASL_PATH $ |
若要實際使用 ldapsearch 對目錄伺服器執行 Kerberos 型認證,則必須納入 -o mech=GSSAPI 與 -o authzid=principal 引數。
此外,還必須指定完全合格的主機名稱,在此案例中為 -h directory.example.com,此名稱必須與伺服器之 cn=config 的 nsslapd-localhost 屬性值相符。在此必須使用 -h 選項,因為 GSSAPI 認證程序中必須要有用戶端所提供的主機名稱,用以比對伺服器所提供的主機名稱。
下列範例將在 dc=example,dc=com 項目認證為先前所建立的 Kerberos 測試使用者帳號時,擷取此項目:
$ ldapsearch -h directory.example.com -p 389 -o mech=GSSAPI \ -o authzid="kerberos-test@EXAMPLE.COM" -b "dc=example,dc=com" -s base "(objectClass=*)" version: 1 dn: dc=example,dc=com dc: example objectClass: top objectClass: domain $ |
查看目錄伺服器存取記錄,以確定認證是否已如預期般進行處理:
$ tail -12 /local/ds/logs/access [24/Jul/2004:00:30:47 -0500] conn=0 op=-1 msgId=-1 - fd=23 slot=23 LDAP connection from 1.1.1.8 to 1.1.1.8 [24/Jul/2004:00:30:47 -0500] conn=0 op=0 msgId=1 - BIND dn="" method=sasl version=3 mech=GSSAPI [24/Jul/2004:00:30:47 -0500] conn=0 op=0 msgId=1 - RESULT err=14 tag=97 nentries=0 etime=0, SASL bind in progress [24/Jul/2004:00:30:47 -0500] conn=0 op=1 msgId=2 - BIND dn="" method=sasl version=3 mech=GSSAPI [24/Jul/2004:00:30:47 -0500] conn=0 op=1 msgId=2 - RESULT err=14 tag=97 nentries=0 etime=0, SASL bind in progress [24/Jul/2004:00:30:47 -0500] conn=0 op=2 msgId=3 - BIND dn="" method=sasl version=3 mech=GSSAPI [24/Jul/2004:00:30:47 -0500] conn=0 op=2 msgId=3 - RESULT err=0 tag=97 nentries=0 etime=0 dn="uid=kerberos-test,ou=people,dc=example,dc=com" [24/Jul/2004:00:30:47 -0500] conn=0 op=3 msgId=4 - SRCH base="dc=example,dc=com" scope=0 filter="(objectClass=*)" attrs=ALL [24/Jul/2004:00:30:47 -0500] conn=0 op=3 msgId=4 - RESULT err=0 tag=101 nentries=1 etime=0 [24/Jul/2004:00:30:47 -0500] conn=0 op=4 msgId=5 - UNBIND [24/Jul/2004:00:30:47 -0500] conn=0 op=4 msgId=-1 - closing - U1 [24/Jul/2004:00:30:48 -0500] conn=0 op=-1 msgId=-1 - closed. $ |
此範例說明連結為三步驟的程序。前兩個步驟會傳回 LDAP 結果 14 (SASL 連結進行中),而第三個步驟說明連結已順利完成。method=sasl 與 mech=GSSAPI 標記說明連結採用 GSSAPI SASL 機制。成功連結回應結尾處的 dn="uid=kerberos-test,ou=people,dc=example,dc=com",說明連結已由適當的使用者身份執行。