はじめに こんにちは、ネクストモード株式会社テクニカルサポート担当です。 Oktaには様々なAPIが用意されており、ユーザー属性の取得・更新やOktaグループの操作などが可能です。...
【Okta】Okta WorkflowsでGroup Push APIを活用し「Push now」相当を実現する方法
はじめに
こんにちは、ネクストモード株式会社テクニカルサポート担当です。
前回のブログ記事でGroup Push関連APIについて概要を中心に紹介しました。今回は具体的なユースケースを想定し、Okta WorkflowsでこれらのAPIを活用する方法を解説します。
概要
現在のGroup Push APIでは、Okta管理画面上の「Push now」ボタンに相当するAPIが提供されていません。そこで、Update a group push mapping APIを活用して、一度、Group Pushを無効化し有効化することで擬似的に「Push now」を実行するflowを作成します。
Group Pushは通常即時に反映されますが、経験上、多数のユーザーを一度にグループに追加すると、一部のサービスプロバイダー(SP)に正しく反映されないことがあります。このような場合、手動で「Push now」を実行する必要があります。今回の目標は、こうした状況での管理者の作業負担を軽減することです。
前提
2025年9月時点では、Group Pushを操作する専用カードはOkta Workflowsに用意されていません。そのため、OktaのCustom API Actionカードを使用して実装します。すでに他のOktaカードを利用している場合は、既存のConnectionを流用できるため新たな設定は不要です。必要なスコープはokta.apps.readとokta.groups.readですが、これらは通常デフォルトで付与されています。もしフローが動作しない場合はスコープ設定を確認しましょう。
フローの作成
以下の2つのフローを作成して、特定のアプリケーションに設定されているすべてのGroup Pushに対して処理を実行します。
Main Flow
- 指定されたアプリケーションIDからCustom API ActionカードでList all group push mappingsを実行し、Group Push設定リストを取得
- 取得したリストとアプリケーションIDをHelper Flowに渡す
Helper Flow
- Main Flowから渡された情報からid(mappingId)とstatusを取得
- statusがACTIVEな場合のみ処理を続行
- BodyにINACTIVEを指定し、Custom API ActionカードでUpdate a group push mappingを実行することでGroup Pushを無効化
- 5秒待機
- BodyにACTIVEを指定し、Custom API ActionカードでUpdate a group push mappingを実行することでGroup Pushを有効化
(画像クリックで拡大します)
実行方法
Main flowのトリガーをDelegated flowに設定することで、Okta管理画面のWorkflow内のDelegated flowsからRunボタンを押すだけで、擬似的な「Push now」機能を実行できます。ヘルプデスク担当者にDelegated flowを実行できるカスタム管理者権限を付与しておくと、Okta Super Adminの手を煩わせることなく必要に応じてGroup Pushの同期を実行できるようになります。これにより運用の効率化と負担軽減が実現できます。
まとめ
本記事では、Okta WorkflowsでGroup Push関連APIを活用し、「Push now」相当の機能を実現する方法を紹介しました。この応用例以外にも、Okta WorkflowsとGroup Push APIを組み合わせることで、すべてのアプリケーションのGroup Pushに設定されているsourceGroupIdを取得・一覧化し、各OktaグループがどのGroup Pushで使用されているかを簡単に把握することも可能です。