SaaS

Azure AD のワークフロー?Azure AD 新機能『Lifecycle Workflows』を試してみた!

はじめに

皆さんこんにちは、すかんくです。
今回は Azure AD から新しくリリースされた機能、Lifecycle Workflows を試してみたブログとなります。

Lifecycle Workflows とは何ぞや

本機能を簡単に言えば、ユーザーのオンボーディングからオフボーディングまでをフロー化することで、作業の正確性を担保したり管理者の作業を省力化できる機能です。
もう少し要点をまとめて記載すると、以下のようなイメージとなります。

  1. Azure AD Identity Governance の新機能
  2. ユーザーのオンボーディングからオフボーディングまでをワークフロー化する
  3. Azure AD の管理機能と組み合わせて、様々な機能・サービスへのアクセス権を自動付与する
  4. Azure Logic Apps と組み合わせて、より複雑なシナリオに対しても対応可能

上記それぞれについて、管理画面も併せてご紹介していきます。

Azure AD Identity Governance の新機能

Lifecycle Workflows は、Azure AD Identity Governance と呼ばれる機能群に内包されています。

Azure AD Identity Governance には、ユーザーが必要とするリソースやアプリケーションに対する権限を動的に管理・棚卸する機能が備わっています。なお、対応するライセンスは Azure AD Premium P2 となります。

Azure AD を管理される方々で身近なところで言えば、Azure AD 上の管理者ロールを有効期限付きで付与する機能(Privileged Identity Management)も Identity Governance に含まれる機能の一部となります。

その他にも、以下のように Azure AD 上でガバナンスを利かせる機能が多数存在しています。

  • ユーザー区分に応じたアクセス権のパッケージ化(Entitlement Management)
  • アプリやグループのメンバーシップを棚卸(Access Review)

これらを適切に組み合わせ・運用いただくことで、Azure AD 上における「必要な時に・必要な分だけの権限を付与」しつつ、「管理者の手間を作業コストを極力削減して、手作業による人的ミスを防ぐ」といった両面を実現することが可能です。

しかし…

上記のような状態を構成していくには、各機能をよく理解して適切に設定する必要があるだけではなく、既存の業務フローを加味した良い塩梅(落としどころ)を検討する必要があるため、実施にはかなりの労力を割く必要が出てくるかと思います。

一方で、ガバナンスへの奔走が情報システムにおける1つの姿でもありますので、目指すこと自体の価値は高いものと考えます。

ユーザーのオンボーディングからオフボーディングまでをワークフロー化する

ここまで紹介した Identity Governance 機能では、「既に存在するユーザーを対象」としたガバナンス機能を提供してきました。

これが Lifecycle Workflows によって入社前のオンボーディングからオフボーディングまでを Azure AD 上で完結できるようになったという点が、今回の嬉しいポイントになります。

機能としては、「トリガー(いつ)」「スコープ(誰が)」「タスク(何を)」の 3 要素を組み合わせることで、ユーザーのオンボーディング・オフボーディングをワークフローとして定義・実行します。

次項で手順を確認していきましょう。

フローを作ってみる

Azure ポータル から、[Azure Active Directory] > [Identity Governance] > [ID ライフサイクル管理] の順に進むと、Lifecycle Workflows の画面が表示されます。

[+ワークフローの作成] をクリックするとテンプレートが表示され、どのようなワークフローを作成するかが選択可能です。

現時点では、オンボード・オフボードといった基本的なワークフローが用意されていました。
今回は [採用前の従業員をオンボードする] を選択しました。

[選択] をクリックすることで次の画面に進み、[詳細] をクリックするとそれに対応した Microsoft 公式ドキュメントページに飛びます。
初めて触る方は、[詳細] からドキュメントを確認しつつ作業されるのが良さそうです。

テンプレートの選択が終わると、[基本情報] ページに遷移します。
まずは、ワークフローの [名前] や [説明] を入力します。

次に、[トリガーの詳細] を確認すると 「”employeeHireDate” 属性に定義された日付から X 日前にトリガー」されるといったルールが定義されています。
ワークフローにおける、「いつ」を定義する項目になります。

つまり、”employeeHireDate” 属性が適切に追加されていることが前提条件なりそうです。
Azure AD のユーザー管理画面からプロパティを開いてみると、日本語表記では “従業員入社日” に該当するようです。

公式ドキュメントでは、“employeeHireDate” の変更は GUI 操作に対応しておらず、追加には Graph API による操作が必要ということでしたが、確認した限りでは GUI 上で変更することが可能でした。

[Tips]
  • 日本語表記は分かり易い反面、属性値のマッチには確認の手間が増えるのがデメリット
  • 英表記で問題無い場合はデフォルトの表示言語は英語に設定しておくと吉

一先ず、この機能を利用するにはユーザー作成時に “employeeHireDate” を付与する必要があるというのは重要なポイントかなと思います。
人事主導のユーザープロビジョニングを利用している企業においては、人事 DB から Azure AD に自動的に設定できます。
それ以外でユーザー作成を自動化されているようなケースでは、”employeeHireDate” 属性を含めるような機能改修が必要になるかと思います。

確認が済んだので、[次へ:スコープの構成>] をクリックして次に進みます。

[スコープの構成] では [ルール ビルダー] を使用して、「だれが」の部分を定義します。
ここをどのように定義するかで、シンプルなものにするか・柔軟なパターンに対応するかが決まります。
例えば以下のようなイメージです。

  • “営業部/技術部” 等の部署別で権限を分けている環境では “department” 属性を利用
  • “セールス/エンジニア” 等の職務別で権限を分けている環境では “jobTitle” 属性を利用

または、上記の組み合わせ(AND条件)を設定することで、より細かな条件に基づいてフローを細分化することが可能です。
一方で、フローを細分化しすぎることで管理が大変になっては元も子もないため、基本原則としては「ユーザーオンボーディングはシンプルにすべし」だと感じました。

ただし、環境毎にまとめられないリソースは多々あるかと思うので、これらは後述する 「5. Azure Logic Apps と組み合わせて、より複雑なシナリオに対しても対応可能」で巻き取るのも 1 つの手だと感じました。
この辺りの使い分けが本機能を活用していく中での肝となりそうです。

必要なスコープが設定出来たら、[次へ:タスクの確認>] をクリックします。

[タスクの確認] では、[なにを] オンボードするかを指定します。

既定では [Generate TAP And Send Email] タスクが登録されており、処理の内容は「”manager” 属性に登録されている Email アドレス宛に、初回ログイン用のパスコードを送付する」でした。

Azure AD Temporary Access Pass と呼ばれる管理者が発行したパスを利用することで、配属先で入社者のオンボーディングに対応できることを目的としているようです。

これも大切だとは思うのですが、今回はもっと簡易的な動作確認がしたかったこともあり、上記の既定タスクは削除して以下のタスクを追加しました。

  • Add User To Groups
    • 指定したセキュリティグループにユーザーを追加する
  • Add User To Teams
    • 指定した Teasm 上のチームにユーザーを追加する

どちらも実体としては Azure AD 上のグループですが、セキュリティグループとMicorsoft 365 グループで機能が分かれているようです。
ここは翻訳内容も含め、もう少し分かり易い表記になると優しいかなと感じました。

タスク名をクリックすると追加するグループが選択できるようになっているので、追加したいグループを指定して [保存] をクリックします。

全てのタスク設定が完了したら、[次へ:確認と作成>] をクリックします。

[確認と作成] 画面で、設定した内容を再確認します。
すぐにテストを始める場合は [スケジュールの有効化] にチェックを入れてから [作成] をクリックします。

作成が完了すると、[ワークフロー(プレビュー)] に作成したものが表示されます。
次は動作テストをしてみたいと思います。

動作テスト

テストユーザーを作成したら、今回はすぐに動作テストをしたいのでワークフローを手動で実行したいと思います。
作成したワークフローを開き、[オンデマンドで実行] をクリックします。
なお、既定では3時間毎にワークフローが実行されます。

すると対象ユーザーを選択する画面が表示されるため、テストユーザーを選択して [ワークフローの実行] をクリックします。

ワークフローを実行したら、[ワークフロー履歴(プレビュー)] で実行中のプロセスが確認できます。
今回はタスクが2つのみだったためか、画面を表示してすぐに “Completed” が表示されました。

タスク内で追加したグループのメンバーを見ると、ユーザーとして追加されていることが確認できました。
簡易ではありますが、動作テストとしては以上となります。

Azure AD の管理機能と組み合わせて、様々な機能・サービスへのアクセス権を自動付与する

ここまでの動作確認では、Azure AD 上のグループに対して操作のみ実施してきました。
何故ここを重視しているかと言えば、Azure AD ではグループベースで様々なリソースにアクセス権を割り当てたり、セキュリティポリシーを適用することが可能なためです。

つまり、グループ操作が自動化されるだけでも、様々な管理タスクが自動化されるということになります。

  • ライセンス付与用のグループに追加することで、業務上必要なライセンスが自動適用される
  • アプリケーション用のグループに追加することで、外部サービスにユーザーがプロビジョニングされ、シングルサインオンが可能になる
  • アクセス制御用のグループに追加することで、MFA や Intune 登録がされるまでアクセスをブロックすることが可能になる

これらの機能を上手に組み合わせることで、「ユーザーの入社日には、業務に必要な権限が揃っている」状態を “管理者の作業レス” で作り出すことが可能です。
その上で、ユーザー側での最低限のセットアップ作業が必要となりますが、これらを省力化するための機能(Windows Autopilot や Temporary Access Pass など)も提供されています。

また繰り返しとなりますが、ここで大切なのは様々な機能を複雑に組み合わせて使わせるのではなく、いかにシンプルな構成とするかとなります。

例えば、「”General” グループに対して、標準的なアプリケーションやセキュリティポリシーはすべてここに紐づけておく」等の標準化がこれに該当します。
「絶対にこうすべき」ではありませんが、まずは出来る限りシンプルに作っていくことをご検討いただければと思います。

Azure Logic Apps と組み合わせて、より複雑なシナリオに対しても対応可能

少し脱線してしまいましたが、改めて Lifecycle Workflows 機能の話に戻ります。
ワークフローのタスク一覧に、[カスタム タスク拡張機能を実行する] という項目が存在しています。

これは、予め Azure Logic Apps で作成していたワークフローを呼び出すことにより、より複雑なタスクを実行したり、外部サービスとの連携も可能となる機能です。

[注意]
・Azure Logic Apps は従量課金制のワークフローサービスであり、Azure AD Premium P2 には含まれていません

例えば、オンボーディングで割り当てたい外部サービスが Azure AD でのユーザープロビジョニングに対応していない場合、「Lifecycle Workflows から Azure Logic Apps のフローを呼び出し、外部サービス API を実行、ユーザーを作成」といった処理が可能になります。

利用するにあたっての注意点としては、Azure Logic Apps は出来ることが多い分、どこまでをワークフロー化するか、風呂敷を広げすぎないことが大切そうだと考えます。

なお、[カスタム タスク拡張機能] を利用するには、予め Azure Logic Apps と連携させておく必要があるので、設定手順を確認していきます。
まずは Lifecycle Workflows 管理画面から [カスタム拡張機能(プレビュー)] を選択し、[+カスタム拡張機能の追加] をクリックします。

[基本] ページでは、呼び出す Azure Logic Apps が持つ機能の [名前/説明] を記載します。
記載したら [Next: Task behavior](翻訳漏れ?)をクリックします。

[タスクの動作] ページでは、呼び出した Azure Logic Apps からの応答を待つか設定します。
Azure Logic Apps で実行するタスクが、後続のタスクに影響を及ぼす場合には応答を待つよう設定しておく必要があります。
動作を決定したら、[次へ:詳細] をクリックします。

[詳細] ページでは、カスタム拡張機能と紐づける Azure Logic Apps を指定します。

  • [ロジック アプリの作成:いいえ] に指定した場合は、既に作成済みの Azure Logic Apps を選択可能です。
  • [ロジック アプリの作成:はい] に指定した場合には、新たに Azure Logic Apps を作成することが可能ですが、本画面で Azure Logic Apps 内のフローを編集することは出来ないため、使うシーンは少なそうです。

設定が完了したら、[次へ:確認および作成] をクリックします。

最後に設定内容を再確認し、[作成] をクリックします。

[カスタム拡張機能(プレビュー)] を確認すると、作成した項目が追加されています。
これで、タスクから Logic Apps を呼び出すことが可能となります。

まとめ

いかがだったでしょうか? 今回は Azure AD の新機能である Lifecycle Workflows について紹介してみました。

試して感想としては、IDaaS に欲しいワークフローの機能をしっかり押さえているなと思いました。
癖がない分使いやすいですが、少し凝ったタスクを実行したい場合には Azure Logic Apps との組み合わせが必要になるため、そこの学習コストは念頭に入れておく必要がありそうです。

また、用意されたテンプレートにユーザーの部署移動等に対応する Update の項目が存在しないことが気になりました。
これは人事主導のプロビジョニングが前提となっており、外部サービスから自動更新されることが背景にありそうです。

可能であれば Azure AD をマスターとするシナリオもサポートして欲しいと思いました。
例えば、Webhook 等の外部トリガーに対応するといった機能拡充に期待です。

冒頭でも触れたとおり Azure AD Premium P2 ライセンスが必要となるため、すべての Azure AD 管理者が恩恵を得れる機能ではないですが、「ガバナンスに奔走する現状に疲れたな」みたいなきっかけ次第では、プランの引き上げを検討する価値があるのではないかと感じました。

今回は以上となります、ではまた!

すかんく

2022/1 入社、Identity チームのすかんくと申します。
ブログでは IdP 関連の機能紹介を中心に記載していこうと思います。
好きな漫画はアイシールド21・ハイキュー・ベイビーステップです。