この疑問に回答します。
プロジェクトのチケット管理をするためのソフトとして有名なRedmineです。滅多に構築する機会が無いからなのか、情報が古かったり、必要な情報が無かったりします。苦労してたどり着いた。設定方法をまとめます。
ユーザアカウント認証を Active Directory に連携する
RedmineにはLDAPを利用した認証連携の機能が標準であります。LDAP認証を利用してWindowsのディレクトリサービスである Active Directory と連携させます。
LDAP(Lightweight Directory Access Protocol)とは、ユーザーやコンピュータの情報を集中管理する「ディレクトリサービス」に用いられるプロトコルです。Active Directory にLDAPを用いて参照することが標準設定で対応しています。参照するためにパラメーターを合わせればスグに利用が可能になります。
Redmineの管理画面でLDAP設定する
Redmineに管理者権限でログインし、画面上にある「管理 -> LDAP認証」にアクセスします。「新しい認証方式」をクリックし新規設定を作成します。
必要なパラメーターを設定します。必要な項目は下記通りです。
パラメーター | 設定値 |
---|---|
名称 | 任意の名称(例:ActiveDirectory) |
ホスト | Active Directory サーバー名 or IPアドレス |
ポート | 389 |
アカウント | ユーザーのLDAP識別名 (例:CN=Administrator,DC=my-domain,DC=co,DC=jp) |
パスワード | パスワード |
ベースDN | LDAP識別名 (例:DC=my-domain,DC=co,DC=jp) |
あわせてユーザーを作成 | チェックを入れる |
属性 | 設定値 |
ログインIDの属性 | LDAP識別名(例:userPrincipalName) |
名の属性 | LDAP識別名(例:givenName) |
姓の属性 | LDAP識別名(例:sn) |
メールアドレスの属性 | LDAP識別名(例:userPrincipalName) |
「併せてユーザーを作成」にチェックを入れると未登録ユーザーの場合、redmineにユーザー情報が自動登録されるようになります。
「アカウント/パスワード」はActiveDirectoryの管理者権限ユーザーを登録してください。私の利用している環境だと未登録の場合、上手くLDAP連携が動作しません。
ADの情報に合わせてパラメーター値を設定するだけなので簡単です。
ユーザーの認証方式を変更する
ウェブ画面から認証方式の変更
既に登録されているユーザーの場合は認証方式を変更する必要があります。Redmineに管理者権限でログインし、画面上にある「管理 -> ユーザー」にアクセスします。
ウェブ画面から認証方式を切り替えることができるので、容易に変更ができます。
外部認証を利用したり、ローカル認証を利用したりと用途により使い分けができます。
データベースから認証方式の変更
データベースにあるユーザー情報からActiveDirectoryへ直接変更することも可能です。うまく動かない時などには調査しながら認証方式を変更することが可能です。
Redmineのデータベースにアクセスします。
# mysql -u root -p mysql> use redmine
Redmine上のデータベースに登録されたユーザ情報を確認します。
mysql> select id,login,auth_source_id,salt from users WHERE type = 'User'; +----+-------------------------+----------------+----------------------------------+ | id | login | auth_source_id | salt | +----+-------------------------+----------------+----------------------------------+ | 1 | admin | NULL | afa396c184f3900dfwfsd488325sdfs3 | | 5 | [email protected] | NULL | dcsvsghjty3sdf0197dsdfsdfv5ba193 | | 6 | [email protected] | NULL | afa396c184fuhjghw88325brtyjgwrer | | 7 | [email protected] | NULL | rehtrh39001976c8488sdf25sfghrtht | +----+-------------------------+----------------+----------------------------------+ 4 rows in set (0.00 sec)
Redmineの初期設定で利用される認証方式の場合は「auth_source_id」がNULLになっています。ActiveDirectory認証に切り替える場合は、「auth_source_id」を「1」に変更します。
mysql> UPDATE users SET auth_source_id = '1' WHERE id = '1' ;
これで認証方式がローカル認証からLDAPを利用したActiveDirectory認証に切替わります。既存のローカルに保存されたパスワードを念のため初期化します。
mysql> UPDATE users SET salt = NULL WHERE auth_source_id = '1' AND type = 'User';
これで作業は完了です。実際にActiveDirectoryに登録されたユーザーでログインし動作確認を行います。
以上、「【Redmine】ユーザアカウント認証を Active Directory に連携する」という記事でした。