sonarqube 5.5 のインスタンスを実行しています。認証と承認を会社の Active Directory サービスに委任するために、sonar-ldap-plugin 1.5.1 を使用したいと考えていました。
LDAP プラグインの構成は次のとおりです (難読化のモジュロ):
sonar.authenticator.createUsers=false
sonar.security.savePassword=false
sonar.security.realm=LDAP
ldap.url=ldap://host.my.domain
ldap.user.baseDn=OU=Users,OU=Organic Units,DC=my,DC=domain
ldap.user.request=(&(objectClass=user) (sAMAccountName={login}))
ldap.authentication=DIGEST-MD5
ldap.bindDn=CN=harmlessServiceAccount,OU=users,OU=Organic Units,DC=my,DC=domain
ldap.bindPassword=<the user password in clear text>
sonar.log.level=DEBUG
そして、sonarqube サーバーは次のエラーを報告します。
2016.07.13 10:19:38 INFO web[o.s.p.l.LdapContextFactory] Test LDAP connection: FAIL
2016.07.13 10:19:38 ERROR web[o.a.c.c.C.[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.PlatformServletContextListener
java.lang.IllegalStateException: Unable to open LDAP connection
...
Caused by: javax.naming.AuthenticationException: [LDAP: error code 49 - 8009030C: LdapErr: DSID-0C0904DC, comment: AcceptSecurityContext error, data 52e, v1db1^@]
...
ldapsearch でまったく同じクエリを実行しましたが、問題は発生しませんでした。したがって、Active Directory サービスは正しく、このユーザーと DIGEST-MD5 SASL メカニズムを受け入れると思います。
また、SIMPLE(安全でない)メカニズムを使用してsonarqubeを介して同じユーザーを使用しましたが、それも「適切に」機能していました。また、パスワードの代わりにパスワードの md5 ハッシュを入れようとしました。そして、私は誇りに思っていない他の多くのことを試しました...
私はオンラインで多くの同様の問題 (スタック オーバーフロー、その他の情報源) を読みましたが、まだ解決策を見つけることができませんでした。私の設定に何か問題がありますか? SIMPLE メカニズムを使用して、全員のパスワードをクリア テキストで移動させる運命にあるのでしょうか? CRAM-MD5 も GSSAPI も会社の Active Directory サービスでサポートされていないため使用できません。