例としてCent OS 6を使用したmod_auth_ntlm_winbindを使用したOTRSの透過認証

しばらく前に、当社はOTRSカスタマーサポートシステムを導入しました。 OTRSはActive Directoryと簡単に統合できます。Habréなど、段階的な手順が多数あります。

サポートシステムの使用方法では、パスワードの入力とドメインアカウントのログインはユーザーにとっては非常に困難な作業であり、管理者は一般に受け入れられないことが示されています。



OTRSには透過的に認証する機能がありますが、Apacheにそのようなデータを許可することを教えてください。 これがrakeの始まりです。2007年以降更新されていないntlm_modのマニュアルの一部で説明されており、マニュアルの別の部分でWindowsのインストール手順が説明されています。 きれいなオープンソースが欲しかったので、OTRSマニュアルで推奨されているプラ​​ットフォームの1つであるCent OSと、標準リポジトリにあるmod_auth_ntlm_winbindが必要です。

サーバーは存在し、機能します。ユーザー(顧客)の認証方法を変更するだけで、エージェントの認証方法は変更されません。



Winbindは、認証にKerberosを使用します。 Kerberosが正しく機能するには、クロックをドメインと同期する必要があります。

これには、NTPをインストールします。

yum –y install ntp
      
      





NTPを構成します。

 sed –i “s /^server /#server /g” /ect/ntp.conf echo “serever _” /etc/ntp.conf
      
      





時間を同期します:

 ntpdate _
      
      





自動起動を設定します。

 chkconfig ntpd on
      
      





NTPを実行します。

 service ntpd start
      
      







時間は同期しています。 必要なパッケージをインストールします。

 yum -y install mod_auth_ntlm_winbind httpd-devel autoconfig krb5-workstation samba samba-common samba-winbind
      
      





次のステップでは、インストール済みパッケージを構成し、サーバーをドメインに入力します。 このために、コンソールに次のように記述します。

 ADSERVER=FQDN   ( dc.company.local) DOMAIN= (company.local) WORKGROUP= company authconfig --enableshadow --enablemd5 --passalgo=md5 --krb5kdc=$ADSERVER --krb5realm=$DOMAIN --smbservers=$ADSERVER --smbworkgroup=$WORKGROUP --enablewinbind --enablewinbindauth --smbsecurity=ads --smbrealm=$DOMAIN --smbidmapuid="16777216-33554431" --smbidmapgid="16777216-33554431" --winbindseparator="+" --winbindtemplateshell="/bin/false" --enablewinbindusedefaultdomain --disablewinbindoffline --winbindjoin=Administrator --disablewins --disablecache --enablelocauthorize –updateall
      
      





その後、サーバーがドメインマシンになったというメッセージが表示されます。

SE Linuxのルールを追加します。

 setsebool -P allow_httpd_mod_auth_ntlm_winbind on
      
      







winbindを実行する

 service winbind start
      
      





自動起動を設定します。

 chkconfig winbind on
      
      





winbindの正しい動作を確認します。

 wbinfo –u    wbinfo –g   
      
      





チケットを受信することにより、Kerberosの正しい動作を確認できます。

 kinit administrator (   ),   .
      
      





受信したチケットは、次のコマンドで表示できます。

 klist
      
      







mod_auth_ntlm_winbindを機能させるKeepAlive=on



は、 /etc/httpd/conf/httpd.conf



ファイルでKeepAlive=off



パラメーターをKeepAlive=on



に変更する必要があります。



/etc/httpd/conf.d



ディレクトリで、次の内容のntlm_winbind.conf



ファイルを作成します。

 LoadModule auth_ntlm_winbind_module /usr/lib64/httpd/modules/mod_auth_ntlm_winbind.so <Location ~ "(otrs/customer.pl)"> AuthName "NTLM Authentication" AuthType NTLM Require valid-user NTLMAuth on NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp" NTLMBasicAuthoritative on </Location>
      
      





したがって、 customer.pl



にアクセスする場合にのみ、認証データを転送するようお願いします。

最後に行うことは、 Config.pm



を変更して、LDAP認証を担当する部分をConfig.pm



し、NTLM認証を追加することです。

 #  LDAP #$Self->{'Customer::AuthModule'} = 'Kernel::System::Auth::LDAP'; #$Self->{'Customer::AuthModule::LDAP::Host'} = 'dc.company.local'; #$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=COMPANY, dc=local'; #$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName'; #$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'read_ad_user'; #$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'pass_for_read_ad_user'; # NTLM $Self->{'Customer::AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
      
      







nslookup otrs-server



コマンドを実行して、OTRSサーバーがDNSサーバーに正しく登録されているかどうかを確認しnslookup otrs-server





セットアップが完了しました!

ブラウザで開く otrs-server-name/otrs/customer.pl



otrs-server-name/otrs/customer.pl



と結果を確認します。

結果が表示されない場合、構成中に間違いがありました/etc/krb5.conf /etc/samba/smb.conf





ファイルの設定を注意深く調べます /etc/krb5.conf /etc/samba/smb.conf








All Articles