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

サンプルのトリガ

以下のコードサンプルは、bashのauth-checkタイプのトリガです。このトリガは、Active Directoryで%user%変数を使用してユーザ情報をスクリプトに渡すことにより、ユーザの認証を実行します。失敗した場合、すべてのユーザに与えられている秘密のパスワード「secret」と一致するか比較します。また、特別なユーザ「bruno」には、パスワードなしでの認証を許可します。

USERNAME=$1
echo "USERNAME is $USERNAME"

# read user-supplied password from stdin
read USERPASS
echo Trying AD authentication for $USERNAME
echo $USERPASS | /home/perforce/p4auth_ad 192.168.100.80 389 DC=ad,DC=foo,DC=com $USERNAME
if [ $? == 0 ]
then
     # Successful AD
     echo Active Directory login successful
     exit 0
fi
# Compare user-supplied password with correct password, "secret"
PASSWORD=secret
if [ "$USERPASS" = $PASSWORD ]
then
     # Success
    exit 0
fi
if [ "$USERNAME" = "bruno" ]
then
    # Always let user bruno in
    exit 0
fi
# Failure
# password $USERPASS for $USERNAME is incorrect;
exit 1

このトリガを定義するには、p4 triggersコマンドを使用し、トリガフォームに以下のような1行を追加します。

bypassad auth-check auth "/home/perforce/bypassad.sh %user%"

これにより、ユーザがp4 loginコマンドを実行すると、auth-checkトリガが(存在する場合)起動します。パスワードは認証トリガに対してSTDINで送られます。

Note

オペレータユーザの場合は、service-checkではなくauth-checkトリガを使用するようにしてください。