コンテンツまでスキップ

【Okta】イベントフックを使ってWorkflowsや外部連携をより便利に!

はじめに


こんにちは、 ネクストモード株式会社 のSaaSおじさん久住です

ネクストモードではID統合管理(IDaaS)のOktaを利用して各SaaSへのシングル・サインオンやプロビジョニングの一元管理をしています

今回は僕自身も実際に使う機会がなかったけれど、結構便利なのでは?!というOktaのイベントフックを紹介します

 

何が嬉しいの?


イベントフックはOkta Workflowsのイベントが対応していないOktaのイベントにも対応しているのでWorkflowsで対応できないイベントをイベントフックでカバーすることができます

例えばRemove assigned application from group(グループからアプリの割当を解除)というイベントはイベントフックにはありますが、Workflowsにはありません(2023/7/19時点)

また、Oktaのイベントフックをトリガーに外部のSaaSのワークフローを実行することができます

Okta Workflowsで実装することもできるけど実装済みのワークフローにWebhookで渡すだけでいいというケースもあるかと思いますので、そういう場合は便利です

設定手順


まずはOkta管理画面のWorkflowsコンソールからOkta Workflowsを作成します

Flowを作成し、Add eventをクリックします

create-workflows-event

Okta AppsのAPI Endpointを選択します

okta-webhook-workflows-002

Security LevelをExpose as Webhookに設定し、Closeします

AliasやClient TokenはWorkflowsを保存すると自動的に設定されますので今は気にせずいきましょう

okta-webhook-workflows-003

任意の名前を設定し、Saveをクリックします

okta-webhook-workflows-004

API Endpointカードの下のEndpoint Settingsをクリックし、設定を確認します

Webhookに必要なのはInvoke URLのみなので、Invoke URLのみcopyして控えておきましょう

okta-webhook-workflows-005

次にWebhookの設定に移ります

WorkflowEvent HooksからCreate Event Hookをクリックします

okta-webhook-workflows-006

任意の名前を設定し、先程控えたInvoke URLを設定し、Webhookのイベントを設定します

今回はUser assigned to appを設定しました

Save & ContinueをクリックしてPreview画面に移ります

okta-webhook-workflows-007

PreviewではEvent Hookで送られるリクエスト内容がJSON形式で確認することができます

okta-webhook-workflows-008

最後にWorkflows側でWebhookで送られたリクエストからアサインされたアプリの名前(DisplayName)を取得する簡単なActionを設定してみます

※pathの記載方法の詳細は下記をご参照ください

okta-webhook-workflows-009

任意のOktaユーザーにアプリケーションをアサインして、WorkflowsのHistoryを見るとアサインされたアプリケーション名がOutputに表示されていることが確認できました!

okta-webhook-workflows-010

最後に


今回はイベントフックの挙動を確認するだけの小ネタ的な記事でしたがイベントフックにある様々なイベントリクエストを外部サービスにWebhookとして送ることでOktaに閉じずにより柔軟に連携ができそうです

是非お試しください!