Redmine6とActive Directoryの連携とは

この記事では、Redmine6のユーザー管理をWindows ServerのActive Directory(AD DS)と連携する方法について解説します。

Redmine6の基本的なインストール方法については、以下の記事を参考にしてください。

Redmine6とActive Directoryの連携とは

Redmine6とActive Directory(AD DS)を連携させることで、WindowsドメインユーザーとRedmine利用ユーザを一元管理することができます。これにより、Redmineにおけるユーザー管理の手間が削減され、管理効率が向上します。

具体的には、次のようなメリットがあります。

  • ユーザーアカウントを一元管理できる。
  • Redmineのアカウント管理作業の手間が省ける。
  • セキュリティ強化(パスワードの強固な一元管理)

この手順では、WindowsのActive Directory(AD DS)との連携を進めていきます。ユーザー認証を安全に行うため、通信はSSL(Secure Socket Layer)を使用して暗号化されます。

特に自己認証局を使用している場合、暗号化された通信が正常に機能するためには、自己認証局が発行した証明書の検証が必要です。

そのため、CA(認証局)証明書が手元に準備されていることが前提となります。この証明書をRedmineサーバーにインポートし、正当な通信が行われることを確認します。

Active Directoryの認証とは

Active Directoryからドメインユーザーの認証情報を取得するには、LDAP(Lightweight Directory Access Protocol)というプロトコルを利用します。

LDAP は、ディレクトリサービス(Active Directory)に格納された情報にアクセスするための標準的な手段であり、ユーザー名やパスワード、グループ情報などを取得できます。

LDAP を利用することで、Redmine6においてもドメインユーザーの認証を行い、Active Directoryとの連携を実現します。

これにより、Redmineに個別にユーザーを追加する必要がなくなり、管理が一元化されます。

LDAPの連携手順

Redmine6の管理画面に管理者権限のユーザでログインし、メニューバーの「管理」→「LDAP認証」を選択します。

次にLDAPに接続するための情報を入力し保存します。

以下は、Redmine6をActive Directoryと連携するためのLDAP認証設定手順に関する設定項目の例です。これを参考にしながら、自身の環境に適した設定を行ってください。

設定項目説明
ホスト名Active Directoryが動作するサーバのホスト名
例:srv00.reafnex.local
ポートLDAPのポート番号と種類
例:389 LDAP(暗号化されていない通信)
アカウント/パスワードLDAPに接続して認証情報を取得するためのアカウントとパスワード
例:binduser.reafnex.local
ベースDNドメインのベースDN
例:DC=reafnex,DC=local
ログインIDの属性ユーザーアカウントを一意に識別するための属性
設定値:aAMAccountName
名の属性ユーザーの個別の名を格納する属性
設定値:givenName
姓の属性ユーザーの個別の姓を格納する属性
設定値:sN
メールアドレスの属性ユーザーのメールアドレスを格納するための属性
設定値:mail
LDAP認証設定値一覧表

設定が完了したら、「テスト」をクリックしたのち、メッセージ領域に「接続しました。」と表示されればRedmineを利用するユーザのLDAP認証が可能となりました。

LDAPSの連携

次に、暗号化された通信のLDAPSによるLDAP連携を行います。

LDAPS(LDAP over SSL/TLS)は、636ポートを使用して暗号化された認証情報の通信を行います。

設定項目説明
ホスト名Active Directoryが動作するサーバのホスト名
例:srv00.reafnex.local
ポートLDAPのポート番号と種類
例:636 LDAPS(暗号化された通信、証明書検証あり)
アカウント/パスワードLDAPに接続して認証情報を取得するためのアカウントとパスワード
例:binduser.reafnex.local
ベースDNドメインのベースDN
例:DC=reafnex,DC=local
ログインIDの属性ユーザーアカウントを一意に識別するための属性
設定値:aAMAccountName
名の属性ユーザーの個別の名を格納する属性
設定値:givenName
姓の属性ユーザーの個別の姓を格納する属性
設定値:sN
メールアドレスの属性ユーザーのメールアドレスを格納するための属性
設定値:mail
LDAPS認証設定値一覧表

LDAPSでは、通信を暗号化するだけでなく、サーバ証明書を使用してサーバの正当性を確認します。これにより、通信が暗号化されると同時に、悪意のある第三者によるなりすましを防止することができます。

自己証明書を利用する場合は、Redmine6が動作するサーバにCA証明書をインポートする必要があります。

RHEL8の場合は、/etc/pki/ca-trust/source/anchorsにCA証明書を配置して、以下のコマンドを実行します。

# cd /etc/pki/ca-trust/source/anchors
# ls
reafnex_CA.crt

# update-ca-trust extract

CA証明書が正しくインポートされたか、以下のコマンドで確認します。

# cd /etc/pki/ca-trust/source/anchors

# ls
reafnex_CA.crt

# update-ca-trust extract

# trust list | grep "reafnex"
    label: reafnex-SRV00-CA

CA証明書は例ですので、ご自身のCA証明書の内容で読み替えてください。Windows Serverの認証局(AD CS)から取得したCA証明書はDER形式ですので、opensslコマンドでPEM形式に変換してからインポートしてください。

新しいRedmin6の管理画面を開き、メニューバーの「管理」→「LDAP認証」を選択します。「テスト」をクリックしたのち、メッセージ領域に「接続しました。」と表示されれば、暗号化されたLDAP認証が可能となりました。

もしLDAPSの接続がうまくいかない場合は、「LDAPS(証明書の検証なし)」を選択することで接続できる場合があります。

ただし、実際の本番運用環境では、サーバの正当性が確認できない状態となるため、セキュリティリスクを伴います。

したがって、この方法は避けるか、十分なセキュリティ対策が講じられた場合のみ使用するようにしましょう。

まとめ

いかがでしたでしょうか。

今回は、Redmine6のユーザー管理をWindows ServerのActive Directory(AD DS)と連携してする手順について紹介しました。

Redmine6とActive Directory(AD DS)の連携により、ユーザー管理を一元化することで、システム運用が大幅に効率化され、セキュリティ面も強化されます。

また、Windows Active Directoryの他、LinuxのOpenLDAPでも同じことが実現できますので、Windows Serverの運用コストが気になる場合は、OpenLDAPの利用も検討するとよいでしょう。

セキュアな環境を構築されたRedmineを活用して、プロジェクト管理を効果的に実践していきましょう。

参考になれば幸いです。

システムのお悩みについてご相談ください

本サイトの掲載内容に関するお問い合わせは、こちらから承ります。
SOHOのシステム運用管理に関するお悩みごとについて、なんでもお気兼ねなくご相談ください。
現役システムエンジニアのスタッフが、ボランティアでご相談にご対応させていただきます。