Helix Coreサーバ管理者ガイド: 基本 (2019.1)

トリガを起動して外部認証を使用する

外部認証マネージャ(LDAPやActive Directoryなど)と連動するようにHelixサーバを構成するには、認証トリガ(auth-checkauth-check-ssoservice-checkauth-set)を使用します。これらのトリガは、p4 loginおよびp4 passwdコマンドに対して起動します。

注意

Helix SAML認証機能については、Helix SAML に記載されています。

Note

LDAP仕様の採用により、LDAP認証を有効化することが望ましい場合があります。このオプションが推奨される理由はさまざまです。使用が簡単、外部のスクリプトが不要、より柔軟なバインドメソッドの定義、LDAPディレクトリにないユーザに対してHelixサーバの内部ユーザデータベースへの照会による認証許可が可能、そしてより安全であるなどがその理由です。詳細については、「認証オプション」を参照してください。

また、LDAP認証が有効になっている場合は、auth-check-ssoトリガを使用することもできます。この場合、LDAPによって認証されたユーザはパスワードを求められることなくクライアント側のSSOスクリプトを定義することができます。トリガが成功した場合、そのユーザが少なくとも1つのLDAPサーバに存在することを確認するためにアクティブなLDAP構成が使用されます。グループ認証が設定されている場合は、ユーザはグループ認証も通過する必要があります。auth-check-ssoタイプのトリガは、LDAP認証を受けていないユーザによって呼び出されることはありません。

認証トリガがチェンジリストやフォームトリガと異なる点は、認証プロセス中にユーザによって入力されたパスワードが標準入力としてコマンドラインではなく認証スクリプトに提供されることです。(コマンドラインに渡される引数は、%user%%clientip%など、すべてのトリガタイプに共通する引数のみです。)

警告

トリガをトリガテーブルに追加する際には、トリガ名を正しく入力するように注意してください。入力を誤った場合、すべてのユーザがHelixサーバから閉め出されるおそれがあります。

実稼働環境中へ配備する前に、トリガおよびトリガテーブルの動作を十分にテストしてください。

サーバへのアクセスを復元するのにサポートが必要な場合は、Perforceテクニカルサポートまでご連絡ください。

このマニュアルにおける例は説明のための一例にすぎません。LDAP環境向けのサンプルコードのリンクを含め、詳細については、サポートナレッジベースの記事「LDAPを使用して認証する」を参照してください。

auth-check(またはservice-check)トリガを有効に動作させるには、追加後にHelix Coreサーバを再起動する必要があります。ただし、サーバを再起動せずに既存のauth-checkトリガテーブルのエントリ(またはトリガスクリプト)を変更することもできます。

auth-checkトリガの設置およびサーバの再起動が完了すると、Helixサーバsecurity構成可能変数は無視されるようになります。これは、認証がトリガスクリプトによって制御されるようになり、パスワード強度の要求に対するサーバのデフォルトのメカニズムは冗長であるからです。

以下の表では、認証トリガの定義に関するフィールドについて説明します。

フィールド 意味

type

  • auth-check: 認証チェックトリガを実行し、ログイン中または新しいパスワードの設定時にユーザのパスワードを外部パスワードマネージャに照会して検証します。auth-checkトリガが存在する場合、認証はトリガスクリプトによって制御されるようになっているため、構成可能変数Perforcesecurity(および関連のパスワード強度要件)は無視されます。

    auth-checkトリガを追加したら、Helix Coreサーバを再起動する必要があります。

  • auth-check-sso: シングルサインオンによるユーザ認証に役立ちます。
  • auth-set: 認証チェックセットトリガを実行し、新しいパスワードを外部パスワードマネージャに送信します。
  • service-check: トリガを実行し、標準ユーザではなくサービスユーザのパスワードを検証します。サービスチェックトリガは、auth-checkトリガと同じ方法で機能します。オペレータユーザに対してこのタイプのトリガを使用しないでください。代わりに、auth-checkタイプのトリガを使用してください。

    service-checkトリガを追加したら、Helix Coreサーバを再起動する必要があります。

path

authはパス値として使用します。

command

Helix Coreサーバを実行するトリガです。トリガが起動するタイミングについてより詳しい情報を知りたい場合は、個別の認証トリガタイプに関して説明している後方のセクションを参照してください。ほとんどの場合、p4 loginコマンドを実行すると、トリガが起動します。

Helix Coreサーバアカウントがコマンドを参照して実行できるような方法で、コマンドを指定します。command(普通1回につき1つのスクリプトを呼び出します)は、引用符で囲まれる必要があります。また、commandによって構文上引数として解析できる範囲のあらゆる引数を扱うことができます(適用可能なHelixサーバトリガ変数を含む)。

トリガスクリプトがディポに保存されている場合、ディポシンタックス内でそのパスをパーセントで囲んで指定する必要があります。例えば、スクリプトがディポに//depot/scripts/myScript.plとして保存されている場合、これに対応してコマンドフィールドで使用される値は"/usr/bin/perl %//depot/scripts/myScript.pl%"となります。詳細については、「ディポ内にトリガを保存する」を参照してください。

標準ユーザ、オペレータユーザ、サービスユーザが、p4 loginコマンドを使用してauth-checkトリガとservice-checkトリガを起動すると、そのユーザが入力したパスワードが、標準入力としてトリガコマンドに渡されます。トリガが正常に起動すると、Helixサーバチケットが発行されます。ユーザ名は、%user%としてコマンドラインに渡すことができます。

auth-check-ssoトリガが任意のユーザによってp4 loginから起動されると、(P4LOGINSSOによって指定されている)クライアントサイドのスクリプトの出力はプレーンテキストとしてサーバサイドスクリプトへ送られます。

auth-checkトリガチェックを通過したauth-setトリガがp4 passwdによって起動されると、ユーザの古いパスワードと新しいパスワードが標準入力としてトリガに渡されます。ユーザ名は、%user%としてコマンドラインに渡すことができます。