Ssh

OPENLDAP 2.4 ,只允許匿名訪問以獲取使用者公鑰

  • October 2, 2018

我正在嘗試執行以下操作:我有 openldap 2.4.45 伺服器(測試),其中包含這樣的使用者、組:

o=Example(dc=example,dc=com)
 ou=users
   uid=alice
   uid=bob
     PublicKey="...."
 ou=Groups
   cn=group1
   cn=group2

我需要將應用程序連接到此伺服器。DIT 中的一些使用者有一個 publicKey(如 bob),我想要的是匿名綁定可以獲取任何使用者的 PublicKey,如果它知道確切的 DN(例如 dn:uid=bob,ou=users,dc=example,dc= com),但我不希望匿名綁定能夠讀取其他屬性

我嘗試執行以下操作

olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to attrs=PublicKey by * read stop
olcAccess: {3}to * by * none

但是當我嘗試這個請求時

ldapsearch -x -b "dc=example,dc=com" -LLL '(&(objectClass=posixAccount)(uid='"bob"'))' 'PublicKey'

我得到一個“沒有這樣的對象(32)”,但是如果我允許通過 * 讀取訪問 *,我會得到使用者 bob 的 PublicKey。

我怎樣才能做到這一點?

你必須

  1. 至少授予search搜尋根條目的權限dc=example,dc=com
  2. 授予包含屬性PublicKeyread的條目的偽屬性條目的權限

引用自:https://serverfault.com/questions/933584