Amazon Linux 2にOTRS6.0.28をrpmで導入するのは割とすんなりいきましたが、ActiveDirectory連携でかなり時間がかかってしまいました。
インターネットで検索してみても、上手くいかないという情報が溢れていて、上手くいかない情報にヒットしてしまい。成功するまでにかなり時間がかかってしまいました。
同じ轍を踏むのはもったいないので、ActiveDirectory連携に成功した設定ファイルを公開します。
前提条件
前提条件としては、セットアップが完了しており「root@localhost」でログインできること。
それと、Net::LDAPが導入されていることになります。
$ sudo /opt/otrs/bin/otrs.CheckModules.pl を実行して
o Net::LDAP……………………ok (v0.56)
OKになっていること。
初期ユーザー(root@localhost)とActiveDirectory両方のユーザでログインできることとします。
設定ファイル
rpmで導入した時の設定するファイルは「/opt/otrs/Kernel/Config.pm」となります。
直接Config.pmファイルに記述することになりますが、「sub Load {」の中に入れる必要があります。
わたしは最後の方の「return 1;」の前に入れました。
# ---------------------------------------------------- #
# ldap settings #
# ---------------------------------------------------- #
$Self->{'AuthModule2'} = 'Kernel::System::Auth::DB';
$Self->{'AuthModule1'} = 'Kernel::System::Auth::LDAP';
$Self->{'AuthModule::LDAP::Host1'} = 'IPアドレス';
$Self->{'AuthModule::LDAP::BaseDN1'} = 'dc=it,dc=hirokun,dc=net';
$Self->{'AuthModule::LDAP::UID1'} = 'sAMAccountName';
$Self->{'AuthModule::LDAP::SearchUserDN1'} = 'Administrator@it.hirokun.net';
$Self->{'AuthModule::LDAP::SearchUserPw1'} = 'パスワード';
$Self->{'AuthModule::LDAP::AlwaysFilter1'} = '';
$Self->{'AuthModule::LDAP::Params1'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
$Self->{'AuthSyncModule::LDAP::Host'} = 'IPアドレス';
$Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=it,dc=hirokun,dc=net';
$Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'administrator@it.hirokun.net';
$Self->{'AuthSyncModule::LDAP::SearchUserPw'} = 'パスワード';
$Self->{'AuthSyncModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
};
$Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
# DB -> LDAP
UserFirstname => 'givenName',
UserLastname => 'sN',
UserEmail => 'mail',
};
解説
$Self->{‘AuthModule2’} = ‘Kernel::System::Auth::DB’;
ローカルに登録されているユーザーでもログインできるようにします。
初期管理ユーザーの「root@localhost」でログインするためです。
$Self->{‘AuthModule1’} = ‘Kernel::System::Auth::LDAP’;
LDAPの認証を優先します。
$Self->{‘AuthModule::LDAP::BaseDN1’} = ‘dc=it,dc=hirokun,dc=net’;
ドメイン名をFQDNをいれて指定します。
ここではdc=を使って定義します。
$Self->{‘AuthModule::LDAP::SearchUserDN1’} = ‘Administrator@it.hirokun.net’;
ユーザー名をFQDNをいれて指定します。
ここでは@を使って定義します。
$Self->{‘AuthSyncModule’} = ‘Kernel::System::Auth::Sync::LDAP’;
認証が成功した後、ActiveDirectoryからユーザ情報を取得しDBに登録します。
$Self->{‘AuthSyncModule::LDAP::UserSyncMap’} = {
DBに登録する時にマッピングしています。
補足
$Self->{‘AuthModule::LDAP::GroupDN’} = ‘cn=OTRS_Agents,ou=OTRS_Groups,dc=it,dc=hirokun,dc=net’
GroupDNを使えば指定したユーザやグループの人のみに制限することができます。
この場合、ActiveDirectoryに登録しているOTRS_Agentsユーザと、OTRS_Groupsグループのみに制限しています。