例としてActiveDirectoryを使用して、UbuntuのRequest Traker 4.xをldapにバインドする

このRTとは



長い間、アウトソーシング会社でSecure Scoutリクエストトラッカーを使用してきました。現在はBestPractical Request Trackerと呼ばれています。 Request Trackerは、プロセッサベースであり、Perlで記述されており、リソースを必要とせず、柔軟性があり、あらゆる機能を自分に固定できるため、優れています。 詳細を述べる意味はありません。一度zar0ku1がRT 3.8のインストールに関する良い記事を書いた後、マニュアル @スペイン語のパイロットを少し更新し、 mister_j RTプログラミングについても話しました



さらに一歩進んで、ADの例を使用してLDAPにRT認証を関連付ける方法を見つけ、ユーザーがドメインアカウントを使用してアプリケーションを作成し、進捗を追跡できるようにします。 トラッカーを個別化することに加えて、ディレクトリサービスからRTユーザーに関する情報(名前、電子メール、ユニットなど)を自動的に更新することができます。



RTに組み込まれている外部認証機能



BestPractical 、外部ソースを介した2種類の認証を提供します。ログインフォームを使用する(さらに認証要求をスローする)か、Webサーバーの機能を使用してログインフォームをバイパスしてユーザーを自動的に識別します(NTLMなど)。 BestPracticalは両方を含めることを推奨していると言わなければなりません。



技術マニュアルの深byに突入しないために、私はこれを言います:アプリケーションポータルに入ったときにドメインユーザーがRTで自動的に作成されるように、認証をログインフォームに結び付けるか、ディレクトリから新しいユーザーを定期的にダウンロードするスクリプトを作成できます。 繰り返しますが、BestPracticalは両方のオプションを主張しています。



LDAPからのアカウントのインポートを有効にする



ドメインに接続するには、AD(またはディレクトリサービスの実装)に通常のユーザーアカウントを作成する必要があります。



PS C:\> New-ADUser -Name "Request Tracker" -GivenName rt -SamAccountName rt -UserPrincipalName rt@example.com -AccountPassword (Read-Host -AsSecureString "rt_password")
      
      





インポートのために特別に作成されたPerlモジュールをRTホストにダウンロードする必要があります。



 sudo cpan -i RT::Extension::LDAPImport
      
      





次に、RT構成ファイル(私の場合、これは/opt/rt4/etc/RT_SiteConfig.pm )に次の行を追加します。



 Set(@Plugins, qw(RT::Extension::LDAPImport)); Set($LDAPHost,'domaincontroller.example.com'); Set($LDAPUser,'example\rt'); Set($LDAPPassword,'rt_password'); Set($LDAPBase,'dc=example,dc=com'); Set($LDAPFilter, ' (&(objectCategory=person))'); Set($LDAPMapping, {Name => 'sAMAccountName', RealName => 'cn', EmailAddress => 'mail' }); Set($LDAPCreatePrivileged, 1); Set($LDAPUpdateUsers, 1);
      
      





この例では、ドメインのすべてのユーザー( $ LDAPFilter )をインポートし、ルート( $ LDAPBase )から始めて、名前、ログイン、および電子メール( $ LDAPMapping )を入れ替えるように指定します。 アカウントは自動的にRT( $ LDAPCreatePrivileged )にアクセスし、新しいインポートリクエスト( $ LDAPUpdateUsers )ごとにアカウントに関する情報が更新されます。



インポートモジュールを使用すると、さまざまな部門からアカウントをインポートしたり、グループをインポートしたり、LDAPユーザーに関する詳細情報をダウンロードしたりできます。 あなたに見せただけで十分です。 詳細を知りたい場合は、モジュロマニュアルをお読みください。



インポートプロセス自体は簡単です。 開始するには、テストインポートを実行して、それがどのように終了したかを確認できます。



 sudo /opt/rt4/local/plugins/RT-Extension-LDAPImport/bin/rtldapimport --debug > ldapimport.debug 2>&1 sudo cat ldapimport.debug
      
      





原則として、ファイアウォールが有効になっていて、LDAP検索データベースが正しく指定されていない場合、エラーが発生します。 すべてがうまくいった場合は、インポートを完全に開始できます。



 sudo /opt/rt4/local/plugins/RT-Extension-LDAPImport/bin/rtldapimport --import
      
      





私のように、インポート中にユーザーをグループに分割しなくても十分だった場合、ユーザーはデフォルトで「LDAPからインポート」グループのRTに追加されます。 このグループには、RTのキューに対する適切な権限を付与するか、ユーザーを手動で逆アセンブルする必要があります。 ユーザーはまだパスワードを持っていないため、RTを入力できません。ユーザーに関する情報をRTにインポートしただけで、アクセスレベルを設定できます。



ユーザー情報を定期的に更新するには、スケジューラでタスクを作成できます。次に例を示します。



 sudo echo "01 1 * * * root /opt/rt4/local/plugins/RT-Extension-LDAPImport/bin/rtldapimport --import" >> /etc/crontab
      
      





外部ソースを介した承認



ドメインコントローラまたはldapディレクトリのその他の所有者に実際にリクエストを送信するには、Perlモジュールも必要です。



 sudo cpan -i RT::Authen::ExternalAuth
      
      





RT_SiteConfig.pm構成ファイルで、ダウンロードしたプラグインに関する情報を追加する必要があります。



 Set(@Plugins, qw(RT::Extension::LDAPImport RT::Authen::ExternalAuth));
      
      





また、ldapディレクトリにアクセスするための情報を提供します。



 Set($ExternalAuthPriority, [ 'My_AD' ] ); Set($ExternalInfoPriority, ['My_AD'] ); Set( $UserAutocreateDefaultsOnLogin, { Privileged => 1 , Lang => 'ru'} ); Set($ExternalSettings, { 'My_AD' => { 'type' => 'ldap', 'server' => 'domaincontroller.example.com', 'user' => 'example\rt', 'pass' => 'rt_password', 'base' => 'dc=example,dc=com', 'filter' => '(objectCategory=person)', 'attr_match_list' => ['Name'], 'attr_map' => { 'Name' => 'sAMAccountName', 'EmailAddress' => 'mail', 'RealName' => 'cn', }, }, } );
      
      





この例では、グループをバインドせず、最小限の情報をインポートし、情報検索の基礎として、ルートから始まるドメイン全体を示します。 誰がもっと必要なのか、 マニュアルを読んでください。



独立した仕事のために



LDAPに接続した後、ローカルユーザーの作成は不可能になりますが、内部データベースの古いユーザーは引き続き正常にログインすることに注意してください。 Flashickは、RTでローカルアカウントを作成できるようにするには、 Set($AutoCreateNonExternalUsers, 1);





を追加する必要があることを提案しましたSet($AutoCreateNonExternalUsers, 1);





Set($AutoCreateNonExternalUsers, 1);







別のポイント-ユーザーのドメインで「ログイン」がオンになっている場合は、今のところ切断し、次回の修正方法を説明します。



次回は、パスワードとログインを必要とせずにユーザーに認証を透過的にし、この情報を自動的に取得する方法について説明します。



UPD1: Flashickは、バージョンRT 4.4では両方のプラグインがすでにデフォルトであり、個別にダウンロードしてインストールする必要がないと述べています。



UPD2:インストールを始めとして、プロセス全体を通して、プロセスを視覚的に監視したい人のために、 プレイリストに複数のビデオを記録しました。



All Articles