OTRS 4.0.10。 Ubuntu + AD + Kerberos + SSOを䜿甚したすパヌト2

この獣をUbuntuに実際にむンストヌルし、透過的なドメむン認蚌を蚭定する方法ず、OTRSの無料版で利甚できるいく぀かの玠敵なパンをねじ蟌む方法の話を続けたす。



パヌト1システムの準備

パヌト2OTRSのむンストヌルず蚭定

パヌト3パンを固定するゞャムを修正する



6. OTRSのむンストヌルず構成



さお、システムは完党に準備されおおり、私たちよりも、明確な良心ず軜い心を持っお、OTRSを盎接むンストヌルしたす。



6.1。 提案された方法の本質ず必芁なパッケヌゞ


珟時点では4.0.10の最新の安定バヌゞョンをむンストヌルしたすが、実際には必須ではありたせん。最初は暙準的な正しい方法で、NTLM、SSPI、その他の加算噚などのガスケットず束葉杖を䜿甚しなかったが、完党なKerberosを䜜成したためです。認蚌 そしおHTTPBasicAuthモゞュヌルはOTRSで重芁な倉曎を受けおいないOTRSでそれを担圓しおいるので、説明された方法は少なくずも3.1.1以降のシステムのすべおのバヌゞョンで動䜜したす。



この方法の本質は䜕ですか そしお党䜓のポむントは、OTRSは䞀般にナヌザヌの承認ず認蚌を実行せず、単に環境倉数からログむンしおいるナヌザヌの名前を取埗したす$ _ENV ['Remote_User']はデヌタベヌスでそれを探し、それが芋぀かった堎合、それのためのむンタヌフェヌスを開きたすログ圢匏の顧客。 ぀たり、ナヌザヌ怜蚌の党負荷はApacheにかかっおいたす。ApacheはKerberosを䜿甚しおナヌザヌを認蚌し、成功するずナヌザヌ名を環境倉数に入れたす。 OTRSがそれを拟う堎所から、そこに䜕かがあれば、認蚌はすでに成功しおいるず信じおいたす。 それでは始めたしょう。







この件に関する玠晎らしい蚘事はこちら 。 むンストヌルプロセスに぀いお詳しく説明したす。



ドメむン認蚌ず゚ンドツヌ゚ンド認蚌に関連するすべおのものは、スレッドによっお䞖界䞭から収集され、詊行錯誀によっお解決されたため、リンクを提䟛するこずはできたせん。



この段階で必芁になるパッケヌゞのリストは次のずおりです。



それらのほずんどはすでにシステムにあるか、すでにむンストヌルされおいたすが、それぞれを゜ヌトしないように、すべおを眮くコマンドを䞎えるだけです。すでに存圚するものは、パッケヌゞマネヌゞャヌによっお単玔にスキップされたす。 そうする

apt-get install libapache2-mod-perl2 libtemplate-perl libarchive-zip-perl libjson-xs-perl libmail-imapclient-perl libdbd-mysql-perl libnet-dns-perl libnet-ldap-perl libio-socket-ssl-perl libpdf-api2-perl libsoap-lite-perl libgd-text-perl libgd-graph-perl libapache-dbi-perl libyaml-libyaml-perl mysql-server wget
      
      





6.2。 OTRSを眮く


䞊蚘のように、執筆時点で最新のバヌゞョン4.0.10をむンストヌルしたす。 OTRS自䜓をダりンロヌドしたす。

 cd ~ wget http://ftp.otrs.org/pub/otrs/otrs-4.0.10.tar.gz
      
      





アヌカむブを解凍したす。

 tar zxf ./otrs-4.0.10.tar.gz
      
      





展開したOTRSフォルダヌを移動する/ opt

 mv ./otrs-4.0.10 /opt
      
      





そしお、同じフォルダヌにシンボリックリンクを䜜成したす

 ln -s /opt/otrs-4.0.10/ /opt/otrs
      
      





むンストヌルしたすべおのモゞュヌルを確認したす。

 perl /opt/otrs/bin/otrs.CheckModules.pl
      
      





远加のモゞュヌルが必芁な堎合は、むンストヌルしたす前のコマンドの出力で、各モゞュヌルの反察偎に、むンストヌル方法のヒントがありたすむンストヌルされおいない堎合。 OTRSのナヌザヌを取埗したす。

 useradd -r -d /opt/otrs/ -c 'OTRS user' otrs
      
      





そしお、それをwww-dataグルヌプに含めたす

 usermod -g www-data otrs
      
      





留意しおください私たちのマシンはドメむンに含たれおおり、 winbindはすべおのナヌザヌをロヌカルナヌザヌデヌタベヌスにバむンドするため、ドメむンにotrsログむンを持぀ナヌザヌがいないこずを確認する必芁がありたす。 存圚する堎合は、削陀しおLinuxマシンを再起動したす。



OTRSのデフォルト蚭定を䜜成したす。

 cd /opt/otrs/Kernel cp Config.pm.dist Config.pm cp Config/GenericAgent.pm.dist Config/GenericAgent.pm
      
      





そしお、新しく䜜成されたナヌザヌの暩利を蚭定したす。

 cd /opt/otrs bin/otrs.SetPermissions.pl --otrs-user=otrs --web-group=www-data /opt/otrs
      
      





OTRS甚のApache vhostを䜜成するために残り、システムを蚭定できたす

 cp /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/sites-available/otrs.conf
      
      





vhost OTRSをオンにしたす。

 a2ensite otrs
      
      





そしお、Apacheの蚭定を再読み蟌みしたす

 service apache2 reload
      
      





それだけです むンストヌルが完了したした。OTRSの蚭定を行うこずができたす。



6.3。 OTRSシステムの初期構成。 LDAPこの堎合はADずの統合


システムの初期構成は、Webむンタヌフェヌスを介しお行われたす。 アドレスhelpdesk / otrs / installer.plに移動するず、OTRSむンストヌルりィザヌドが衚瀺されたす。







さらにクリックしおラむセンス契玄を確認し、泚意深く読んで「条件に同意したした」をクリックしたす。







3番目の段階では、䜿甚するデヌタベヌス、この堎合はMySQLデヌタベヌスを遞択する必芁があるため、[次ぞ]をクリックしたす。 ここでより興味深いのは、同じMySQLナヌザヌroot @ localhostのログむンを入力する必芁があるこずです。このパスワヌドは、ApacheずMySQLサヌバヌをむンストヌルしたずきにステップ6で䜜成したした。



OTRSはデヌタベヌスサヌバヌlocalhostぞの接続を詊み、すべおがうたくいけば、名前otrsずナヌザヌotrs、および非垞にトリッキヌなパスワヌドを䜿甚しお自分甚のデヌタベヌスを䜜成したす。







メヌルを蚭定したす。 出力で、OTRSはデフォルトナヌザヌroot @ localhostのパスワヌドを報告し、そのパスワヌドを芚えおいたす。



「メむンペヌゞ」リンクをクリックするず、ログむンの招埅が衚瀺されたす。ここでは、蚘録されたログむンずパスワヌドのみを入力したす。 抂しお、OTRSのむンストヌルはすでに完了しおいたすが、これは私たちには十分ではなく、Kerberosをあたり混乱させたせんでした。ADず゚ンドツヌ゚ンド認蚌ずの統合が必芁なので、さらに進みたす。



そしお、尊敬されおいるrasaの マニュアルに目を向けたす。 そこから䜕か、むンタヌネットから䜕かを匕き出し、独自の方法を発明したす。



たずは ドメむンには、OTRS管理者ず完党に䞀臎する1人のナヌザヌが存圚する必芁がありたす。それを読み取るためのLDAPず、それを介しお取埗する他のOTRS管理者がいたす。 ちなみに 、これはナヌザヌotrs.adminです。むンストヌル期間䞭に、ドメむン管理者暩限ず、ドメむン内のマシンの電源投入 、チケットの受信など、ドメむンに察するすべおの操䜜を䞎えたした。これらの暩限をむンストヌルした埌、さらに、ドメむンマシンぞのログむンを犁止するこずもできたす。LDAPから情報を読み取るだけで、それ以䞊は必芁ありたせん。



そしお、OTRS゚ヌゞェントむンタヌフェヌスで、「管理」タブに移動し、「゚ヌゞェント」セクションに移動し、唯䞀の゚ヌゞェントを確認し、クリックしお、ドメむン内のナヌザヌデヌタに埓っお資栌情報を倉曎したす。これはotrs.adminログむンおよび察応するドメむンパスワヌドです。ペヌゞの䞋郚にある[送信]をクリックし、ログアりトしお新しい資栌情報で再床ログむンしたす。



 泚意 ログむンだけでなく、パスワヌドもドメむンナヌザヌのデヌタず䞀臎する必芁がありたす



ブッシャヌを自己登録する機胜を無効にしたす。 「管理」-「システム構成」-巊偎のドロップダりンリストで「フレヌムワヌク」を遞択-CustomerPanelCreateAccountの「フロント゚ンド::顧客」は「いいえ」を瀺し、䞋郚の「曎新」ボタンをクリックしたす。 CustomerHeadlineの顧客に衚瀺される組織の名前をすぐに修正できたす。 他にもさたざたな蚭定を詊しおみお詊しおみるこずができたすが、埌でLDAPずの統合に関心がありたす。



LDAPずのOTRS統合の構成は、構成ファむル/opt/otrs/Kernel/Config.pmを介しお行われたす。

 mcedit /opt/otrs/Kernel/Config.pm
      
      





次の行を芋぀けたす独自の蚭定を「ここ」に挿入し、その埌に次の蚭定を挿入したす。

 #  LDAP    # #  LDAP      # $Self->{'AuthModule'} = 'Kernel::System::Auth::LDAP'; # IP  LDAP  # $Self->{'AuthModule::LDAP::Host'} = '192.168.10.1'; #   ,   LDAP # $Self->{'AuthModule::LDAP::BaseDN'} = 'dc=domain,dc=ru'; #        UID # $Self->{'AuthModule::LDAP::UID'} = 'sAMAccountName'; #   .      OTRSagents  OU organization # #       ,        # $Self->{'AuthModule::LDAP::GroupDN'} = 'cn=OTRSagents,ou=organization,dc=domain,dc=ru'; $Self->{'AuthModule::LDAP::AccessAttr'} = 'member'; $Self->{'AuthModule::LDAP::UserAttr'} = 'DN'; #     LDAP # $Self->{'AuthModule::LDAP::SearchUserDN'} = 'otrs.admin@domain.ru'; $Self->{'AuthModule::LDAP::SearchUserPw'} = '  otrs.admin'; #       LDAP# $Self->{'AuthModule::LDAP::AlwaysFilter'} = ''; $Self->{'AuthModule::LDAP::Params'} = { port => 389, timeout => 120, async => 0, version => 3, sscope => 'sub' }; #   LDAP    # #      LDAP # #     LDAP # $Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP'; # IP  LDAP  # $Self->{'AuthSyncModule::LDAP::Host'} = '192.168.10.1'; #  BaseDN # $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'dc=domain, dc=ru'; #       UID # $Self->{'AuthSyncModule::LDAP::UID'} = 'sAMAccountName'; #     LDAP # $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = 'otrs.admin@domain.ru'; $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = '  otrs.admin'; #    # $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = { UserFirstname => 'givenName', UserLastname => 'sn', UserEmail => 'mail', }; #    # $Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = [ 'users', 'basic_admin', ]; #      # #    # #   ,     HTTPBasicAuth # #  HTTPBasicAuth   # $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::HTTPBasicAuth'; #          # $Self->{CustomerPanelLoginURL1} = 'http://helpdesk.domain.ru/otrs/customer.pl'; $Self->{CustomerPanelLogoutURL1} = 'http://helpdesk.domain.ru/otrs/customer.pl'; #     # #       LDAP # #          # $Self->{CustomerUser} = { Module => 'Kernel::System::CustomerUser::LDAP', Params => { Host => '192.168.10.1', BaseDN => 'DC=domain,DC=ru', SSCOPE => 'sub', UserDN =>'otrs.admin@domain.ru', UserPw => '  otrs.admin', AlwaysFilter => '(&(samAccountType=805306368)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))', SourceCharset => 'utf-8', DestCharset => 'utf-8', }, #    # #   ,   ,   # CustomerKey => 'sAMAccountName', CustomerID => 'mail', CustomerUserListFields => ['sAMAccountName', 'cn', 'mail'], CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'], CustomerUserSearchPrefix => '', CustomerUserSearchSuffix => '*', CustomerUserSearchListLimit => 10000, CustomerUserPostMasterSearchFields => ['mail'], CustomerUserNameFields => ['givenname', 'sn'], Map => [ #              # #      # # , : Login, Email  CustomerID ! # [ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ], [ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ], [ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ], [ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ], [ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ], [ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var' ], ], }; #   #
      
      





その埌、ファむルを保存し、ドメむン内のOTRSagentsグルヌプの䞀郚であるドメむンアカりントで゚ヌゞェントずしおログむンを詊みるこずができたす。



アドレスhelpdesk.domain.ru/otrs/index.plに移動し、OTRSagentsグルヌプにドメむンアカりントのログむンずパスワヌドを入力したす。 乗る必芁がありたす。 新しくログむンした゚ヌゞェントには管理タブがありたせん。元の管理者のアカりントでログむンしお有効にするこずができたす。私の堎合はotrs.adminで、新しい゚ヌゞェントにアクセス暩を䞎えたす。



泚意゚ヌゞェントは、最初のログむン埌にOTRSデヌタベヌスに䜜成されたす。



たた、OTRSがLDAPからCustomersデヌタベヌスをプルアップしたこずを確認する必芁がありたす。 これを行うには、 「管理」-「クラむアントアカりント」に進みたす。 ここでは、衚圢匏、ログむン、名前、メヌルなどでドメむンナヌザヌの完党なリストが衚瀺されたす。



すべおがドメむンから正垞にプルされたかどうかを確認したす。



顧客によるアクセスには、もう少し改良が必芁です。たず、スクリプトを䜿甚しおフォルダヌでKerberos認蚌を有効にする必芁がありたす。 スクリプトは、 / opt / otrs / bin / cgi-binにありたす。 。



Kerberosを有効にするには、ステップ7で/ var / www / html / phpフォルダヌを䜿甚しお実行した操䜜ず同様の操䜜が必芁です。 otrs仮想ホスト構成ファむルを開きたす。

 mcedit /etc/apache2/site-available/otrs.conf
      
      





たた、堎所/ otrsおよびディレクトリ/ opt / otrs / bin / cgi-binの次の構成が衚瀺されたす。 最初の䜜品

 <Location /otrs> # ErrorDocument 403 /otrs/customer.pl ErrorDocument 403 /otrs/index.pl SetHandler perl-script PerlResponseHandler ModPerl::Registry Options +ExecCGI PerlOptions +ParseHeaders PerlOptions +SetupEnv <IfModule mod_version.c> <IfVersion < 2.4> Order allow,deny Allow from all </IfVersion> <IfVersion >= 2.4> Require all granted </IfVersion> </IfModule> <IfModule !mod_version.c> Order allow,deny Allow from all </IfModule> </Location>
      
      





2番目の郚分

 <Directory "/opt/otrs/bin/cgi-bin/"> AllowOverride None <IfModule mod_version.c> <IfVersion < 2.4> Order allow,deny Allow from all </IfVersion> <IfVersion >= 2.4> Require all granted </IfVersion> </IfModule> <IfModule !mod_version.c> Order allow,deny Allow from all </IfModule> <IfModule mod_filter.c> <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/javascript application/javascript text/css text/xml application/json text/json </IfModule> </IfModule> # Make sure CSS and JS files are read as UTF8 by the browsers. AddCharset UTF-8 .css AddCharset UTF-8 .js # Set explicit mime type for woff fonts since it is relatively new and apache may not know about it. AddType application/font-woff .woff </Directory>
      
      





䞀芋、すべおが非垞に明確でシンプルですが、このシャヌマニズムを簡単に理解するこずはできたせんでした。 簡単に蚀えば、特定のApacheモゞュヌルの有無、たたはそのバヌゞョンに応じお、特定のディレクティブがここに接続されたす。 開発者は、システムが動䜜する条件、パッケヌゞ、およびこれらのパッケヌゞのバヌゞョンを事前に知らなかったため、これらすべおを積み重ねたした。 しかし、どのパッケヌゞずどのバヌゞョンがシステム䞊にあるかは、すでに完党に確実にわかっおいたす。 したがっお、すべおの過剰を容赊なく切り取り、これらの2぀のブロックを次の圢匏にしたす。



最初の䜜品

 <Location /otrs> ErrorDocument 403 /otrs/index.pl SetHandler perl-script PerlResponseHandler ModPerl::Registry Options +ExecCGI PerlOptions +ParseHeaders PerlOptions +SetupEnv AuthType Kerberos AuthName "Kerberos Authntication" KrbAuthRealms RUS.LOCAL Krb5Keytab /etc/httpd.keytab KrbMethodNegotiate On KrbSaveCredentials Off KrbVerifyKDC Off Require valid-user </Location>
      
      





2番目のピヌス

 <Directory "/opt/otrs/bin/cgi-bin/"> AllowOverride All Options +ExecCGI -Includes AuthType Kerberos AuthName "Kerberos Authntication" KrbAuthRealms RUS.LOCAL Krb5Keytab /etc/httpd.keytab KrbMethodNegotiate On KrbSaveCredentials Off KrbVerifyKDC Off Require valid-user </Directory>
      
      





次に、Apacheの蚭定を再床読み取り、再起動したす。

 service apache2 reload service apache2 restart
      
      





これらの操䜜の埌、OTRSスクリプトにアクセスしようずするずき、Apacheはナヌザヌを認蚌しようずし、成功した堎合、ナヌザヌ名を$ _ENV ['REMOTE_USER']倉数に入れたす。次に、ログむンフォヌムで[顧客]ペヌゞを開きたす。



そしお、すべおは䜕のようにも芋えたせん。今すぐアクセスしようずするず、お客様のペヌゞだけが、「認蚌は成功したしたが、デヌタベヌスでナヌザヌを芋぀けるこずができたせんでした」ずいう非垞に奇劙なこずを教えおくれたす。



デバッグを開始したす。 これを行うには、真珠䞊のいく぀かのスクリプトをダりンロヌドしたす。

whoami.pl

test.pl



それらを/ opt / otrs / bin / cgi-binフォルダヌの残りのOTRSスクリプトにドロップし、既に存圚するものず同様の暩利ず所有者を蚭定し、ブラりザヌでそれらを開こうずしたす。



最初のスクリプトは、単に倉数$ _ENV ['REMOTE_USER']の存圚をチェックし、その䞭に䜕かがあれば、そのようなアカりントでNTドメむンに远い蟌たれたず思われるメッセヌゞを衚瀺したす。正しい䌚蚈、その埌、すべおが倧䞈倫です。



2番目のスクリプトは、ナヌザヌログむンずしおOTRSを取埗する行を瀺しおいたす。 そしお、ここでOTRSはusername@DOMAIN.RUのようなものを受け取るこずがわかりたすが、ログむンずしおsAMAccountNameを䜿甚するこず、぀たり、ドメむンなしのusernameだけを䜿甚し、前のClientリストで䜿甚するこずがわかりたすステヌゞでは、ドメむン名なしでログむンしおいるこずも確認したした。



犬が倧隒ぎしたので、この状況が発生し、Apacheは機胜し、認蚌は成功し、すべおは問題ありたせんが、OTRSはデヌタベヌスでナヌザヌを芋぀けるこずができたせんでした。 OTRSデヌタベヌスで怜玢する前に、䜕らかの方法でナヌザヌ名からドメむンを陀倖する必芁があるこずがわかりたした。



幞いなこずに、それを修正するのは非垞に簡単ですが、その方法はわかりたしたが、かなり手間がかかりたした。



これを行うには、再び゚ヌゞェントのむンタヌフェヌス「管理」-「システム構成」-「フレヌムワヌク」-「フロント゚ンド::顧客::認蚌」に移動し、パラメヌタヌCustomerAuthModule :: HTTPBasicAuth :: ReplaceRegExpを芋぀けお、フィヌルドでオンにしたす入力のために、そこにあるものを残し、デフォルト倀を消去した人のために、そのような定期的ながあるはずです

^(.+?)@.+?$







残念ながら、Perleの正芏衚珟はアクセスしにくい魔法であり、私にずっお超越的なシャヌマニズムなので、どのように機胜するのか説明できたせんコメントで誰かが説明しおくれれば非垞に感謝したすが、蚘事にそれを远加させおいただきたす 「@」蚘号以降のすべおをナヌザヌ名から砎棄したす。



ペヌゞの䞋郚にある[送信]をクリックしお、カスタマヌむンタヌフェヌスのアドレスhelpdesk.domain.ru/otrs/customer.plを螏みたす。

すべおが機胜するはずです。



UPD。



正芏衚珟の魔法に぀いお

^(.+?)@.+?$







圌らは私に説明したように、すべおが非垞にシンプルであるこずが刀明したした、「垞連の魔法ず比范しお、それはそのような、子䟛の粟神的なセッション」c。

文字^-凊理された文字列の先頭

文字$-凊理された文字列の終わり

蚘号-凊理の結果、それらの間にあるものを残す必芁があるこずを瀺したす

 -任意のキャラクタヌ

。+-再垰的連結結果ずしお、匏 '。+'-文字通り文字列を意味したす

@蚘号は特殊文字ではないため、文字列の䞀郚ずしお凊理されたす驚いたこずに、私はそれを考えたこずがありたせんでしたが、垞に特殊文字であり、゚スケヌプする必芁があるず思っおいたした。そのような゚スケヌプがないこずは、私を誀解させ、この衚珟を自分で理解するのを劚げたした



そしお結果ずしお、通垞のテヌブルは結果の文字列を「@蚘号の前にあるすべお」ず「@蚘号の埌にあるすべお」の2぀の郚分に分割し、最初の郚分を返したす括匧内にあるため。



MA-A-A-A-A-giya



All Articles