シングルサインオンを実装する (Linux + Apache 環境)

From OtterHub - OTRS Community Wiki
Jump to: navigation, search

Ubuntu で顧客ユーザへのシングルサインオンを有効にすることは、比較的簡単です。また異なるパッケージマネージャを使用する他のディストリビューションにおいても、同様に簡単であると思われます。本マニュアルはまた、作業員向け SSO を設定する手助けにもなるでしょう。作業員向けの設定を行うためには、OTRS の設定セクションに関してわずかな変更があるだけです。

モジュールのインストール

Debian ベースのシステムでは、簡単なコマンドを発行するだけで済みます:

apt-get install libapache2-authenntlm-perl

システムによっては、モジュールを有効化する必要があるかも知れません。Ubuntu の場合は、引き続き Apache の Location セクションの設定を行います。

Apache の設定

単に以下の行を、/etc/apache2/conf.d/otrs.conf (Ubuntu の場合。他システムでは適切な Apache 設定ファイル名に読み替えてください) に追加するだけです。

<Location /otrs>
  PerlAuthenHandler Apache2::AuthenNTLM
  AuthType ntlm,basic
  AuthName Basic
  require valid-user
  PerlAddVar ntdomain "DOMAIN dc bdc"
  PerlSetVar defaultdomain DOMAIN
  PerlSetVar splitdomainprefix 1
</Location>

DOMAIN には、導入環境の NetBIOS ドメイン名が大文字で入ります。 "dc" と "bdc" は、導入環境のドメインコントローラ名です。 もし導入環境のドメインコントローラが 1 つしかない場合は、bdc エントリを省略してください。 defaultdomain オプションにより、NTLM をサポートしないシステムにおいて、ユーザ名とパスワードのみを入力することができるようになります。そうでなければ、ユーザは Basic 認証の入力フィールドに 'ドメイン名\ユーザ名' とパスワードを入力する必要があります。

OTRS の設定

導入環境の設定ファイルの末尾に以下の行を追加します。

$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth';
$Self->{CustomerPanelLoginURL} = 'http://otrs-server/otrs/no_sso_login_possible.html';
$Self->{CustomerPanelLogoutURL} = 'http://otrs-server/otrs/logout.html';

もちろん、上記で設定するリンクは、これらの HTML ファイルを実際に作成するまで動作しません。

トラブルシューティング

  • 下記のエラーが発生する場合は、DC および BDC を 非 FQDN 形式で記述してください。または、resolv.conf をチェックしてください。
[error] Connect to SMB Server failed (pdc = dc.domain.com bdc = bdc.domain.com domain = domain error = -11/0) for /otrs/customer.pl
  • もし IE で何度も資格証明を要求される場合は、OTRS サイトがイントラネットのサイトリストに手動で追加されているか、またはインターネットアクセスにプロキシサーバを使用するにもかかわらず OTRS サーバにプロキシ経由しないでアクセスしていないかどうか、を確認してください。
  • Firefox では、about:config のnetwork.automatic-ntlm-auth.trusted-uris に OTRS の URI を設定する必要があります。サーバが複数ある場合は、カンマ区切りで記述します (例: http://intranet.company.com,http://email.company.lan)。重要: 末尾のスラッシュは必要ありません!

訳注