Helix Coreサーバ管理者ガイド: マルチサイト展開 (2019.1)

集中認証サーバ(P4AUTH)

複数のHelixサーバが稼働している場合は、集中認証サーバからプロテクションとライセンスのデータを取得するようにPerforceサーバを設定することができます。集中サーバを使用すると、すべてのサーバ上に同じユーザエントリとプロテクションエントリが存在するかどうかを確認する必要がなくなります。

注意

集中認証サーバを使用する場合は、すべての外側のサーバのリリースレベルが集中サーバのリリースレベルと一致しているか、それよりも新しいレベルになっている必要があります。

集中認証サーバ上に存在しないユーザは、外側のサーバにも存在しないユーザとして表示されます。集中認証サーバと外側のサーバの両方に存在するユーザには、プロテクションテーブル内の最も制限の緩い2行が割り当てられます。

組織内の任意のHelix Coreサーバを、集中認証サーバとして使用することができます。集中認証サーバのライセンスファイルにより、外側のサーバ上での存在が許可されるライセンス済みユーザの数が管理されるため、正しいライセンスファイルを使用する必要があります。集中認証サーバを使用するようにHelix Coreサーバを設定するには、P4AUTHをサーバを起動する前に設定するか、サーバの起動時にコマンドラインで指定します。

Perforceサーバで集中認証サーバを使用している場合は、p4 infoコマンドの出力情報に以下の行が表示されます。

...
Authorization Server: [protocol:]host:port

[protocol:]host:portの部分は、集中認証サーバのプロトコル、ホスト、ポート番号です。詳細については、「ホストを指定する」を参照してください。

以下の例では、外側のサーバ(server2とする)が集中認証サーバ(centralとする)を使用するように設定されています。この外側のサーバは、ポート1999でユーザからの要求を待機し、ユーザ、グループ、プロテクション、レビュー、ライセンスの情報については、集中サーバのデータを使用します。また、この外側のサーバは、サーバから取得したプロテクションテーブルを、central:1666で独自のプロテクションテーブルに結合します。

以下に例を示します。

$ p4d -In server2 -a central:1666 -p 1999
注意

Windowsでは、p4 set -Sコマンドを使用して、以下のように外側のサーバを設定します。

C:\> p4 set -S "Outer Server" P4NAME=server2
C:\> p4 set -S "Outer Server" P4AUTH=central:1666
C:\> p4 set -S "Outer Server" P4PORT=1999
重要

構成の問題を回避するには、serverIDの値をP4NAMEの値と常に一致させる必要があります(どちらも設定されている場合)。serverIDを設定することをお勧めしますが、下位互換性を維持するため、P4NAMEもサポートされています。

集中認証サーバを設定すると、外側のサーバは、以下の各コマンドを集中サーバに処理用として転送します。

コマンド 認証サーバに転送? 注意

p4 group

使用可

ローカルのグループデータは、集中サーバから派生します。

p4 groups

使用可

ローカルのグループデータは、集中サーバから派生します。

p4 license

使用可

ライセンスの制限は、集中サーバから派生します。ライセンスのアップデートは、集中サーバに転送されます。

p4 passwd

使用可

プロパティ値は、集中サーバから派生します。

p4 property

使用可 例えば、2つのSwarmインスタンスが同じ認証サーバを使用している場合、一方のインスタンスを更新すると、もう一方のインスタンスも更新できます。

p4 review

なし

remoteというデフォルトのユーザは、集中サーバに対するアクセス権を持っている必要があります。ただし、サービスユーザを作成し、デフォルトのユーザremoteは使用しないことをお勧めします。『Helix Coreサーバ管理者ガイド: 基本』の「リモートディポへのアクセスを制限する」を参照してください。

p4 reviews

なし

remoteというデフォルトのユーザは、集中サーバに対するアクセス権を持っている必要があります。ただし、サービスユーザを作成し、デフォルトのユーザremoteは使用しないことをお勧めします。『Helix Coreサーバ管理者ガイド: 基本』の「リモートディポへのアクセスを制限する」を参照してください。

p4 user

必須

ローカルユーザのデータは、集中サーバから派生します。

p4 users

使用可

ローカルユーザのデータは、集中サーバから派生します。

p4 protect

なし

ユーザによるローカルサーバのプロテクションテーブルの編集が許可されている場合(結合されたプロテクションテーブルとして定義されている場合)、そのプロテクションテーブルが表示されます。

p4 protects

必須

プロテクションは、外側のサーバのプロテクションテーブルに付加された集中サーバのプロテクションテーブルから派生します。

p4 login

必須

チケットを生成するため、コマンドが集中サーバに転送されます。

p4 logout

使用可

チケットを無効にするため、コマンドが集中サーバに転送されます。

制限事項と注記

  • P4AUTHを使用するすべてのサーバは、集中認証サーバと同じUnicode設定を使用する必要があります。
  • p4 configure set P4AUTH=[protocol:]server:portコマンドを使用してP4AUTHを設定するには、外側のサーバを再起動する必要があります。

    レプリカに対してP4AUTHを設定する必要がある場合は、次の構文を使用してください。

    p4 configure set ServerName#P4AUTH=[protocol:]server:port

  • P4AUTHを設定した場合、オープンファイルまたはクライアントを持っているユーザが削除されても警告が表示されません。
  • p4 reviewコマンドとp4 reviewsコマンドを正常に機能させるには、集中サーバ上でサービスユーザ(サービスユーザが指定されていない場合は、remoteという名前のユーザ)によるリモートディポへのアクセスを有効にする必要があります。

    注意: remoteタイプのユーザは存在しません。remoteという名前の特別なユーザ名は、リモートディポのプロテクションを定義する際に使用されます。

  • 転送されたコマンドと、信頼されている直接接続ユーザによって発行されたコマンドを認証サーバで正しく区別するには、「proxy-」という文字列を[protocol:]host:port定義の先頭に付加することにより、PerforceサービスでIPベースのプロテクションエントリを定義する必要があります。
    重要

    ワークステーションのIPアドレスの先頭に文字列proxy-を追加する前に、ブローカまたはプロキシが配置されていることを確認します。

  • 転送されないコマンドのプロテクションは、外側のサーバによって適用されます。集中サーバのプロテクションテーブル内の行からプロテクションが派生している場合であっても、クライアントのプレーンIPアドレスを使用する必要があります。