RedmineとGitのLDAP(ActiveDirectory)認証設定
RedmineとGitのユーザ認証をActiveDirectoryに登録しているユーザで認証連携させる方法を説明します。
RedmineのLDAP認証
■
Redmineの管理メニューに[LDAP認証]をクリックする
■
RedmineのLDAP認証設定
・RedmineのLDAP認証設定項目
項目 | 説明 | 設定値 |
名前 |
任意の名前 |
TEST用LDAP |
ホスト |
LDAPサーバのホスト名 |
172.20.1.204(DCサーバ) |
ポート |
LDAPポート番号(デフォルトは389) |
389 |
LDAPS |
ディレクトリにLDAPSでアクセスしたい、もしくはLDAPSが要求される場合はチェックしてください。 |
- |
アカウント |
LDAPの読み取りアクセスが可能なユーザーを入力してください。匿名アクセスが許可されている場合は、この欄は空白にします。 |
tmpad\testredmine |
パスワード |
アカウントのパスワード |
- |
検索範囲 |
検索を許可するLDAPディレクトリツリー |
OU=web-clients,DC=tmpad,DC=dev,DC=basis |
あわせてユーザーを作成 |
ActiveDirectoryユーザがRedmineに未登録の場合、Redmineユーザを作成する |
チェック |
属性 |
Redmineのユーザ名として使用するLDAP属性 |
- |
・ActiveDirectoryの属性設定
ActiveDirectoryを利用する場合、以下の変数を設定する必要がある。
ログイン名属性 |
sAMAccountName |
名前属性 |
givenName |
苗字属性 |
sN |
メール属性 |
mail |
※ActiveDirectoryユーザには、上記項目すべてを登録するようにしてください。特にメールアドレスを忘れることが 多いので気を付けてください。
GitのLDAP認証
RedmineのLDAP認証設定に引き続き、GitのLDAP認証も行っていきます。
すでにRedmineでLDAP認証設定がされており、Gitのユーザ認証をRedmineと連携されている前提で、説明します。
■
GitのLDAP認証に必要なパッケージ
GitでLDAP認証するためには、下記のPerlモジュールが必要となります。
Auth::Simple |
EPEL testing リポジトリからRPMファイルを入手してインストール |
CPANサイトからインストール(要インターネット接続) |
Auth::Simple::LDAP |
CPANサイトからインストール(要インターネット接続) |
※CPANは、管理が面倒なため、[Auth::Simple]はEPEL testing リポジトリからインストールする。
■
依存するモジュール
[Auth::Simple],[Auth::Simple::LDAP]をインストールする前に、依存関係があるモジュールを事前にインストールする。
# yum install perl-LDAP perl-Params-Validate perl-Module-Runtime \
perl-Module-Implementation perl-Class-Accessor perl-Class-Data-Inheritable \
perl-Crypt-PasswordMD5 perl-Test-Simple
■
[Auth::Simple]のインストール
EPEL testingリポジトリから[Auth::Simple]のインストールする。
# yum --enablerepo=epel-testing install grep perl-Authen-Simple
■
[Auth::Simple::LDAP]のインストール
・CPANパッケージのインストール
# yum install perl-CPAN perl-YAML
・[Auth::Simple::LDAP]のインストール
# perl -MCPAN -e shell
cpan[1]> o conf prerequisites_policy follow
prerequisites_policy [follow]
Please use 'o conf commit' to make the config permanent!
cpan[2]> o conf commit
commit: wrote '/usr/share/perl5/CPAN/Config.pm'
cpan[3]> install Authen::Simple::LDAP
CPAN: Storable loaded ok (v2.20)
CPAN: LWP::UserAgent loaded ok (v5.833)
Warning: no success downloading '/root/.cpan/sources/authors/01mailrc.txt.gz.tmp29553'. Giving up on it. at /usr/share/perl5/CPAN/Index.pm line 225
Appending installation info to /usr/lib64/perl5/perllocal.pod
CHANSEN/Authen-Simple-LDAP-0.3.tar.gz
/usr/bin/make install -- OK
■
Apache設定変更
ApahceにPerlモジュール[Authn::Redmine],[Authen::Simple::LDAP]を追加する。
vi /etc/httpd/conf.d/vcs.conf
PerlLoadModule Apache::Authn::Redmine
# Gitの設定
PerlLoadModule Authen::Simple::LDAP
SetEnv GIT_PROJECT_ROOT /var/opt/alminium/git
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
<Location /git/>
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
AuthType Basic
AuthName Git
# for Redmine Authentication
RedmineDSN "DBI:mysql:database=alminium;host=172.20.1.205"
RedmineDbUser "alminium"
RedmineDbPass "password01"
RedmineGitSmartHttp yes
Require valid-user
</Location>
※RedmineのDBは、別サーバ(172.20.1.205)としています。ただし、RedmineのWEBとGitは同じサーバである必要があります。
■
GitのLDAP認証の確認
Redmineにテストプロジェクトpj01を作成し、「新しいリポジトリ」生成する。
・
Redmineに「新しいリポジトリ」生成
プロジェクト - [設定]
[設定]画面 - [リポジトリ]タブ - [新しいリポジトリ]
[新しいリポジトリ] - バージョン管理システム[Git] - 識別子[プロジェクト識別子と同じ] - [リポジトリの作成]
※
RedmineとGitの連携に関する前提条件
・Redmineは、同一マシン上にあるGitのベア・リポジトリと連携が可能
・GitリポジトリへのアクセスにRedmineユーザー認証を用いる場合、リポジトリ名に制約がある
{Redmineのプロジェクト識別子}.{任意の文字列} ※一つのプロジェクトで複数のGITを登録する場合は、{任意の文字列}で識別する。
・
ADユーザで認証が通るかの確認する。
# git config --global http.sslVerify false
# git clone https://user01@localhost/git/pj01
Password:
warning: You appear to have cloned an empty repository.
※自己証明書の場合のみ「git config --global http.sslVerify false」を実行する。
[0回]