コンテンツまでスキップ

【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.readokta.groups.readですが、これらは通常デフォルトで付与されています。もしフローが動作しない場合はスコープ設定を確認しましょう。

OktaカードのCustom API Actionカードです。

 

フローの作成

以下の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で使用されているかを簡単に把握することも可能です。