web-dev-qa-db-ja.com

LDAPを使用してJenkinsを構成します:パラメーター 'ルートDN'

LDAPサーバーをインストールし、認証にLDAPを受け入れるためにJenkinsを構成しています。 Jenkinsパラメーターでは、パラメーターRoot DNで奇妙な動作をします。

ドキュメント 言う:

ルートDN

ユーザーを認証し、このユーザーに与えられた役割を決定するために、Jenkinsは複数のLDAPクエリを実行します。

[...]

しかし実際には、LDAPサーバーはデータに対して広範なインデックスを維持しているため、このフィールドを指定する必要はほとんどありません— Jenkinsに話してこれを理解させる必要がありますLDAPに。

この値を指定すると、フィールドは通常dc = acme、dc = orgのようになります。

奇妙な振る舞い:パラメーターを指定しないと、ユーザーが見つかりません。その他のパラメーターにはデフォルト値があります。

LDAPは私にとって新しいので、おそらく何か間違ったことをしています。 slapdを使用してLDAPツリーを作成しました。同じく作成したノードadenoyelleの下に1人のユーザーPeopleを作成しました。以下のldapsearchの結果を参照してください:

root@myserver:~# ldapsearch -xLLL -b 'dc=acme,dc=com'
dn: dc=acme,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: acme.com
dc: acme

dn: cn=admin,dc=acme,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

dn: ou=people,dc=acme,dc=com
cn: people
objectClass: organizationalRole
objectClass: top
ou: people

dn: uid=adenoyelle,ou=people,dc=acme,dc=com
objectClass: account
objectClass: top
objectClass: simpleSecurityObject
uid: adenoyelle

Root DNを空白にすると、ユーザーは認証できなくなります。しかし、パラメータにこの値を指定すると機能します:

ou = people、dc = acme、dc = com

私は何が間違っているのですか? LDAPノードが間違っていると思いますが、理由がわかりません。たぶんobjectClass値に問題がありますか?

2

この値を省略すると、LDAPクライアントはベースDNとして使用されるルートDSEをサーバーに照会します。 slapdが正しく設定されていない場合、ldapsearchはその値の取得に失敗するため、クエリに失敗します。

詳細はこちら: OpenLDAPからルートDSEが返されません 、引用:

これは実際にはバグとして提出されます #427842 Ubuntu 9.10(カルマ)に対して。

これを修正するには、以下をfixRootDSE.ldifにコピーします。

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcAccess
olcAccess: to dn.base="" by * read
olcAccess: to dn.base="cn=subschema" by * read

そして実行します

Sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f fixRootDSE.ldif

これにより、ルートDSEへの匿名アクセスが可能になります。

1
fuero