【Redmine】ユーザアカウント認証を Active Directory に連携する

ソフトウエア

<景品表示法に基づく表記> 本サイトのコンテンツには、商品プロモーションが含まれている場合があります。

Redmineのユーザー認証を Active Directory と連携したい。

この疑問に回答します。

プロジェクトのチケット管理をするためのソフトとして有名なRedmineです。滅多に構築する機会が無いからなのか、情報が古かったり、必要な情報が無かったりします。苦労してたどり着いた。設定方法をまとめます。

ユーザアカウント認証を Active Directory に連携する

RedmineにはLDAPを利用した認証連携の機能が標準であります。LDAP認証を利用してWindowsのディレクトリサービスである Active Directory と連携させます。

LDAP(Lightweight Directory Access Protocol)とは、ユーザーやコンピュータの情報を集中管理する「ディレクトリサービス」に用いられるプロトコルです。Active Directory にLDAPを用いて参照することが標準設定で対応しています。参照するためにパラメーターを合わせればスグに利用が可能になります。

Redmineの管理画面でLDAP設定する

Redmineに管理者権限でログインし、画面上にある「管理 -> LDAP認証」にアクセスします。「新しい認証方式」をクリックし新規設定を作成します。

RedmineをActive Directoryに連携する
RedmineをActive Directoryに連携する

必要なパラメーターを設定します。必要な項目は下記通りです。

パラメーター設定値
名称任意の名称(例:ActiveDirectory)
ホストActive Directory サーバー名 or IPアドレス
ポート389
アカウントユーザーのLDAP識別名
(例:CN=Administrator,DC=my-domain,DC=co,DC=jp)
パスワードパスワード
ベースDNLDAP識別名
(例:DC=my-domain,DC=co,DC=jp)
あわせてユーザーを作成チェックを入れる
属性設定値
ログインIDの属性LDAP識別名(例:userPrincipalName)
名の属性LDAP識別名(例:givenName)
姓の属性LDAP識別名(例:sn)
メールアドレスの属性LDAP識別名(例:userPrincipalName)

併せてユーザーを作成」にチェックを入れると未登録ユーザーの場合、redmineにユーザー情報が自動登録されるようになります。

アカウント/パスワード」はActiveDirectoryの管理者権限ユーザーを登録してください。私の利用している環境だと未登録の場合、上手くLDAP連携が動作しません。

ADの情報に合わせてパラメーター値を設定するだけなので簡単です。

RedmineをActive Directoryに連携する
RedmineをActive Directoryに連携する

ユーザーの認証方式を変更する

ウェブ画面から認証方式の変更

既に登録されているユーザーの場合は認証方式を変更する必要があります。Redmineに管理者権限でログインし、画面上にある「管理 -> ユーザー」にアクセスします。

RedmineをActive Directoryに連携する
RedmineをActive Directoryに連携する

ウェブ画面から認証方式を切り替えることができるので、容易に変更ができます。

外部認証を利用したり、ローカル認証を利用したりと用途により使い分けができます。

データベースから認証方式の変更

データベースにあるユーザー情報から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 に連携する」という記事でした。