JenkinsのLDAP(ActiveDirectory)認証設定
Jenkinsのデフォルトでは、ユーザ認証なしでアクセスができてしまう。 ユーザ認証を行うためには、jenkinsで独自のユーザ管理で行うことは可能ではあるが、ユーザ数が増え、システム数が増えることで、個別にユーザ管理をするのは、管理が大変になります。 そこでJenkinsもActiveDirectory/LDAPを利用してユーザ認証ができる手順を紹介します。Jenkins連携設定
LDAP(Kerberos)認証関連プラグインとして、「ActiveDirectoryプラグイン」や「LDAP Plugin」がありが、Apacheの基本認証の アカウントをそのまま利用できるプラグイン「Reverse Proxy Auth Plugin」を利用したAD連携方法を説明します。Header User Name | X-Forwarded-User |
---|---|
Header Groups Name | X-Forwarded-Groups |
Apache連携設定
■Apache設定変更# vi /etc/httpd/conf.d/jenkins.conf
<Location /jenkins>
Order allow,deny
Allow from all
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
ProxyPass http://127.0.0.1:8080/jenkins
ProxyPassReverse http://127.0.0.1:8080/jenkins
RewriteEngine On
RewriteCond %{LA-U:REMOTE_USER} (.+)
RewriteRule . - [E=RU:%1,NS]
RequestHeader set X-Forwarded-User %{RU}e
# AuthMySQLNoPasswd Off
# AuthMYSQLEnable On
# AuthMySQLHost localhost
# AuthMySQLDB alminium
# AuthMySQLUser alminium
# AuthMySQLPassword alminium
# AuthMySQLUserTable users
# AuthMySQLNameField login
# AuthMySQLPasswordField hashed_password
# AuthMySQLPwEncryption sha1-rm
# AuthMySQLSaltField salt
# AuthMySQLGroupField groups
# AuthName "Redmine User"
# AuthType Basic
# require valid-user
#基本認証(AD連携)
AuthType Basic
AuthName "ActiveDirectory Auth"
AuthBasicProvider ldap
AuthLDAPURL "ldap://172.20.1.203:389/OU=web-clients,DC=ad,DC=hogehoge,DC=com?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "ad\ldapuser01"
AuthLDAPBindPassword "Password"
AuthzLDAPAuthoritative off
Require valid-user
</Location>
Apacheの基本認証でアクセスしたユーザをそのままJenkinsに引き渡される。
入門LDAP/OpenLDAP―ディレクトリサービス導入・運用ガイド |