Advanced Server Accessのエージェントライフサイクル管理フックを構成する
Advanced Server Accessのライフサイクルフック機能は、Linuxシステムのローカルユーザーとグループの構成にメンバーシップの変更が加えられた時に、通知を受信するサーバーのイベントバスを公開します。Advanced Server Access管理者は、スクリプトを使用してライフサイクルフックをカスタマイズして、これらの変更が発生したときに実行する必要のあるルーチンタスクに適合させることができます。ローカルスクリプトもグローバルに実行され、/usr/lib/sftd/hooksディレクトリの下位にあるすべてのファイルに一致させます。発生しているイベントに応じて、影響を受けるオペレーティングシステムのオブジェクトを検出し、どのスクリプトが実行されているかを確認できます。「ディレクトリとスクリプト・ライフサイクル関連の環境変数」をご覧ください。
手順
以下の手順は、ホスト上のセットアップを実行するためのガイドとして利用してください。
開始する前に、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ユーザーを作成して承認されたグループに割り当てる
-
Okta管理者として、Advanced Server Accessアプリケーションを管理するOktaテナントのAdvanced Server Access(管理者ダッシュボード)に移動します。
-
[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(グループをプロジェクトに追加する)]をクリックします。
-
[Groups(グループ)]フィールドで、追加するグループの名前を入力し、グループを選択して[Create Group(グループを作成する)]をクリックします。
-
プロジェクトにユーザーが追加されたことを確認します。プロジェクトの[Users(ユーザー)]タブをクリックしてユーザーを探します。
Linuxサーバーでのユーザーのプロビジョニングを検証する
-
Linuxコマンドプロンプトで次のコマンドを入力してください。
cd /home ls -l -
新しいユーザーのホームディレクトリが作成されていることを確認します。
-
cd <username>を実行して、新規ユーザーのホームディレクトリに切り替えます。
lsコマンドを使用して、ユーザーのホームディレクトリにApp1、App2、App3ファイルが存在することを確認できます。
ここでは、Advanced Server Access エージェントのライフサイクルフックを使用して、ホスト-ローカル自動化、システム、外部ユーザーディレクトリをOktaのユーザーとグループに統合する方法を示します。
関連情報
ディレクトリとスクリプト
以下のセクションでは、発生したユーザーまたはグループのイベントに応じて、呼び出されるディレクトリとスクリプトについて詳細に説明します。イベントのタイプは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 |