コンテンツまでスキップ

【Okta】Oktaグループルールの依存関係をOkta Workflowsで可視化にチャレンジしてみた!

はじめに

こんにちは、 ネクストモード株式会社 テクニカルサポート担当です。

前回の記事「【Okta】複雑化するOktaグループの管理を考えてみた」では、グループを条件として指定する際は、グループルールによる管理を受けていないものを選択することを推奨しました。しかし、これは現実的には難しい場合があります。また、多数のグループとグループルールがすでに存在する環境では、まず現状を把握したいというニーズがあることも理解しています。

そこで今回は、Okta Workflowsを活用してグループルールを解析し、Oktaグループの依存関係を可視化するというチャレンジを行いましたので、その内容をご紹介します。

チャレンジ結果

最初にチャレンジ結果をお伝えすると以下のようにMermaid記法を用いて依存関係を視覚化することに成功しました。

Mermaid記法でグループルールの依存関係を図にした画像です。

 

次に、Mermaid記法のコードを示します。

Mermaid記法のコードのスクリーンショットです。

 

Okta Workflowsの概要

今回作成したOkta Workflowsは4つです。各フローの詳細な説明は省略し、概要のみ紹介します。

    1. Read Group Rule
    1. Create Mermaid node
    1. Analyze group conditions
    1. Analyze Assignments

 

01. Read Group Rule

Okta Workflowsの一つ目のflow 01. Read Group Rule のフローチャートです。

このFlowでは、出力先のGoogleドキュメントに最初の「graph TD」を記載し、Okta Search Group Rulesカードを使用して02. Create Mermaid nodeへストリーミングを行っています。

02. Create Mermaid node

Okta Workflowsの二つ目のflow 02. Create Mermaid node のフローチャートです。

01から受け取ったグループルールの条件部分を取り出し、03. Analyze group conditionsへ渡します。同様に、01から受け取ったグループルールのアサイン部分(リスト形式)を取り出し、04. Analyze Assignmentsへ渡します。

03と04からの処理結果を受け取り、それぞれ条件ノード部分とルールの適用部分としてまとめ、Googleドキュメントに書き出します。

03. Analyze group conditions

Okta Workflowsの三つ目のflow 03. Analyze group conditions のフローチャートです。

02から受け取ったグループルールの条件からグループが条件として設定されている場合を解析し、条件ノード部分を作成します。条件に複数のグループが指定されている場合は再帰的に処理を繰り返します。すべての処理が完了したら02に結果を戻します。

04. Analyze Assignments

Okta Workflowsのよっつ目のflow 04. Analyze Assignments のフローチャートです。

02から受け取ったグループルールのアサイン部分から必要な要素を抽出してルールの適用部分を生成し、02へ結果を返します。

このコードをGoogleドキュメントからMermaid Live EditorやNotionに貼り付けると、冒頭のようなフローチャートを生成できます。

 

まとめ

Okta Workflowsを活用することで、グループルールを視覚的に分かりやすく表現でき、特にグループを条件とした基本的な可視化については十分な機能を実現できました。

一方で、ユーザープロファイルの属性とグループを組み合わせた複雑な条件パターンでは属性部分は考慮されずグループ部分のみが解析されるという課題があり、現段階の実装ではすべての条件パターンには対応できていません。複雑なルールの解析には改良の余地が残されていますが、基本的な目標は達成することができたので一定の成果を得ることができました。Okta Workflowsは実現したいことを形にしやすくていいですね!

Okta Workflowsについてご興味がございましたら、お気軽にお問い合わせください。