未分類

Amazon Linux 2にOTRS6.0.28をrpmで導入し担当者のログインにActiveDirectoryを利用したときの設定

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::LDAP::SearchUserDN’} = ‘CN=administrator,DC=it,DC=hirokun,DC=net’;」という指定はだめです
いっしー
いっしー
ここが一番はまりました
ActiveDirectoryに接続できるユーザであればいいです

 

$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グループのみに制限しています。