Advanced Server AccessにエージェントのLifecycle Managementフックを構成する
販売終了のお知らせ
2026年5月1日をもってOktaはAdvanced Server Accessの販売・更新を終了します。既存のお客様はサービスを維持するために、次回の更新予定日から1年以内にOkta Privileged Accessに移行していただく必要があります。
詳細については、よくある質問をご覧ください Okta Privileged Access。
Advanced Server Accessライフサイクルフックは、管理者がローカルユーザーとグループの構成を更新したときに通知を受信するサーバー上のイベントバスを公開します。Advanced Server Access管理者は、スクリプトを使用してこれらのライフサイクルフックをカスタマイズして、これらの変更が行われたときに実行する必要のあるルーチンタスクに適合させることができます。フックは、構成されたフックディレクトリ内の、一致するすべてのファイルに対してスクリプトを実行します。イベントに応じて影響を受けるオペレーティングシステムのオブジェクトを検出し、どのスクリプトが実行されているかを確認できます。ディレクトリとスクリプトとライフサイクル関連の環境変数をご覧ください。
構成
sftd.yaml内のAccountLifecycleHooksDirオプションは、Advanced Server Accessエージェントがライフサイクルフックのスクリプトを読み込むディレクトリを指定します。このオプションが設定されていない場合は、次のデフォルトパスが適用されます。
| オペレーティングシステム | デフォルトのフックディレクトリ |
|---|---|
| LinuxとmacOS | /usr/lib/sftd/hooks |
| Windows | C:\Program Files\ScaleFT\hooks |
デフォルト設定を上書きするには、AccountLifecycleHooksDirオプションをsftd.yamlに追加し、フックディレクトリへのパスを指定します。
AccountLifecycleHooksDir: /path/to/your/hooks
sftdが標準以外の場所にインストールされていると、エージェントはフックディレクトリを自動的に決定できません。ライフサイクルフックがアップグレード後も引き続き実行されるように、アップグレード前にsftd.yamlで明示的にAccountLifecycleHooksDirを設定します。
手順
以下の手順は、ホスト上のセットアップを実行するためのガイドとして利用してください。
開始する前に、Advanced Server Accessのアクティブセッションが開いていること、ターゲットLinuxサーバーに対する管理者権限を所有していることを確認してください。
カスタムスクリプトを作成する
-
コマンドラインから、SSHを使用してターゲットLinuxサーバーの1つに接続します。
-
sudo suを実行してrootに切り替えます -
次のコマンドでフックスクリプト用のディレクトリを作成します。
mkdir -p /usr/lib/sftd/hooks/user-created.d -
テキストエディターで
01-copyfiles.shという名前のファイルを作成し、次のbashスクリプトをコピーして貼り付けます。注: 次の例では、エージェントライフサイクルフックの基本的な機能を示します。必要に応じて、特定の統合に適合するよう、スクリプトを変更します。
#!/bin/bash SOURCE_FILES=/opt/sourcefiles cp $SOURCE_FILES/App?/home/"${SFT_HOOK_USERNAME}" if [ $? -eq 0 ] then echo "Successfully copied source files into /home/"${SFT_HOOK_USERNAME}"" >> /tmp/sourcefiles.out else echo "Error Copying source files into /home/"${SFT_HOOK_USERNAME}"" >> /tmp/sourcefiles.out -
スクリプト実行のアクセス権限を許可する:
chmod 755 01-copyfiles.sh -
ls -lコマンドを実行し、権限が正しく設定されていることを確認します。出力は次のようになります:-rwxr-xr-x 1 root root 316 Jun 30 14:54 01-copyfiles.sh
ソースファイルを作成する
-
次のコマンドを実行して、ソースファイル用のディレクトリを作成します。
cd /opt mkdir sourcefiles -
次に、以下のコマンドでソースファイルを作成します。
cd sourcefiles touch App1 App2 App3 -
lsコマンドを実行して、App1、App2、App3ファイルが作成されていることを確認します。
Oktaユーザーを作成して承認されたグループに割り当てる
-
Advanced Server Accessアプリケーションを管理するOktaテナントの 管理者ダッシュボード にOkta管理者として移動します。
-
アプリケーション(Applications) に移動し、 Okta Advanced Server Access をクリックします。
-
割り当て(Assignments)、グループ(Groups)の順にクリックします。アプリケーションが割り当てられているグループの名前を記憶してください。
-
Admin Consoleでディレクトリ(Directory)、ユーザー(People)、ユーザーを追加する(Add Person)の順に選択します。
-
覚えやすい名前でユーザーを作成します。
-
Admin Consoleでディレクトリ(Directory)に移動し、グループ(Groups)をクリックします。手順3でAdvanced Server Accessに割り当てられたグループをここから選択します。
グループをプロジェクトに追加する
-
Admin Consoleで、マイアプリケーション(My Applications)をクリックし、 Okta Advanced Server Access を選択します。
-
プロジェクト(Projects)をクリックします。
-
グループを追加するプロジェクトを選択します。
-
グループ(Groups)タブをクリックし、グループをプロジェクトに追加する(Add Group to Project)をクリックします。
-
グループ(Group)フィールドで、追加するグループの名前を入力し、グループを選択してグループを作成する(Create Group)をクリックします。
-
プロジェクトにユーザーが追加されたことを確認します。プロジェクトのユーザー(Users)タブをクリックしてユーザーを探します。
Linuxサーバーでのユーザーのプロビジョニングを検証する
-
Linuxコマンドプロンプトで次のコマンドを入力してください。
cd /home ls -l -
新しいユーザーのホームディレクトリが作成されていることを確認します。
-
cd <username>を実行して、新規ユーザーのホームディレクトリに切り替えます。lsコマンドを使用して、ユーザーのホームディレクトリにApp1、App2、App3ファイルが存在することを確認できます。
ここでは、Advanced Server Accessエージェントのライフサイクルフックを使用して、ホスト-ローカル自動化、システム、外部ユーザーディレクトリをOktaのユーザーとグループに統合する方法を示します。
関連情報
ディレクトリとスクリプト
以下のディレクトリとスクリプトが、発生したユーザーまたはグループのイベントに応じて呼び出されます。示されるパスでは、デフォルトのLinuxおよびmacOSベースディレクトリが使用されます。AccountLifecycleHooksDirがsftd.yamlで設定されていると、ベースディレクトリはそれに応じて異なります。イベントタイプはSFT_HOOK_EVENT変数にキャプチャされます。ライフサイクル関連の環境変数をご覧ください。
ユーザー
-
user-createdユーザーが作成されると、
/usr/lib/sftd/hooks/user-created.d/*.sh内のスクリプトが実行されます。 -
user-updatedユーザーが更新されると、
/usr/lib/sftd/hooks/user-updated.d/*.sh内のスクリプトが実行されます。 -
user-deletedユーザーが削除されると、
/usr/lib/sftd/hooks/user-deleted.d/*.sh内のスクリプトが実行されます。
グループ
-
group-createdグループが作成されると、
/usr/lib/sftd/hooks/group-created.d/*.sh内のスクリプトが実行されます。 -
group-updatedグループが更新されると、
/usr/lib/sftd/hooks/group-updated.d/*.sh内のスクリプトが実行されます。 -
group-deletedグループがプロビジョン解除されると、
/usr/lib/sftd/hooks/group-deleted.d/*.sh内のスクリプトが実行されます。
グローバルパスから返されるスクリプトは、数値順に並べ替えられます。
ライフサイクル関連の環境変数
ユーザー
| フック | 環境変数 | 内容 |
|---|---|---|
| user-created | SFT_HOOK_EVENT | user-created |
| user-created | SFT_HOOK_USERNAME | alice.smith |
| user-updated | SFT_HOOK_EVENT | user-updated |
| user-updated | SFT_HOOK_USERNAME | alice.smith |
| user-deleted | SFT_HOOK_EVENT | user-deleted |
| user-deleted | SFT_HOOK_USERNAME | alice.smith |
グループ
| フック | 環境変数 | 内容 |
|---|---|---|
| group-created | SFT_HOOK_EVENT | group-created |
| group-created | SFT_HOOK_GROUPNAME | everyone |
| group-updated | SFT_HOOK_EVENT | group-updated |
| group-updated | SFT_HOOK_GROUPNAME | AWS-eng |
| group-deleted | SFT_HOOK_EVENT | group-deleted |
| group-deleted | SFT_HOOK_GROUPNAME | t1-support |