現象の再現手順:
- Azure ADのAADDC Usersにユーザを登録
- Jenkinsに最新のLDAP 2.7をインストール
- LDAPを設定して「Test LDAP settings」でユーザログインテストを行うとAuthentication failed for user xxxxエラーになる。
原因:
Jenkins LDAPプラグイン2.7で利用しているSpring securityバージョンにバグがあり、RootDNに空白をエスケープしないためエラーになる。
https://issues.jenkins.io/browse/9742
対策
Jenkins Githubプロジェクトのソースコードでは既に修正されているため、自分でソースコードからビルドする。
1. git clone https://github.com/jenkinsci/ldap-plugin.git
1. cd ldap-plugin
1. mvn clean package
1. mvn package -Dmaven.test.skip=true -Denforcer.skip=true
1. 「target」に作成された「ldap.hpi」ファイルをJenkinsにインストール
1. Jenkinsから既存のJenkins LDAPを削除
1. 「Jenkinsの管理」を選択
1. 「プラグインの管理」を選択
1. 「インストール済み」タブを選択
1. 「LDAP Plugin」右の「アンインストール」ボタンを押下
1. ビルドしたJenkins LDAPプラグインをインストール
1. プラグインマネージャーページの「高度な設定」タブを選択
1. 「プラグインのアップロード」から作成されたldap.hpiファイルを選択
1. 「アップロード」ボタンを押下
1. Jenkinsを再起動
1. Webブラウザから「http://:8080/safeRestart」
これでAzure ADのAADDC Userに登録したユーザを正しく認証することができるようになる。
以上