こんにちは。今回は、Microsoft Entra ID(以下、Entra ID)のガバナンス機能の一つである「ライフサイクルワークフロー」について仕様を確認していきます。また、「新入社員をオンボードする」のテンプレート使用して、実際に動作を試してみたいと思います。
Entra ID Governanceとは
まず、Entra ID のガバナンス機能について簡単ですが記載します。以下画像の通り、Entra 製品グループの「IDおよびアクセス管理」に含まれており、IDとアクセスに関する生産性の向上とセキュリティ強化を実現し、コンプライアンスと規制の要件をより簡単に満たすことを可能にするソリューションになります。
具体的には、組織に所属する従業員やビジネスパートナー、ベンダーに対して次のシナリオを実装することができます。
シナリオ | 説明 |
---|---|
IDライフサイクルの管理 | 従業員が組織に加わった時、従業員の雇用形態が変更した時などに、必要なリソースへのアクセス権の付与・はく奪を自動化する。 |
アクセスのライフサイクルの管理 | アプリケーションやリソースが追加・削除された時などに、アクセスポリシーの管理を継続的に見直しや拡張する。 |
管理に使用される特権アクセスのセキュリティ保護 | 特権アクセスについて、Just-In-Timeアクセスや定期的な再認定を構成する。 |
参考:Microsoft Entra ID Governance とは
ライセンス要件
Entra ID ガバナンス機能は、保有するライセンスによって使用できる機能が異なります。Entra ID P1やEntra ID P2ライセンスで使用できる機能もありますが、すべての機能を使用するにはEntra ID Governanceライセンスが必要になります。
詳細は、以下のMicrosoft 公式ドキュメントをご参照ください。
参考:Microsoft Entra ID ガバナンス ライセンスの基礎
注意 本記事で紹介する「ライフサイクルワークフロー」を使用するためには、Entra ID Governanceライセンスが必要になります。
ライフサイクルワークフローとは
ライフサイクルワークフローは、2023年6月7日に一般提供が開始されたEntra ID ガバナンスの機能です。組織に所属する従業員(ID)の入社・異動・離職といったイベント時に発生するタスクを自動化し、IT管理者の工数削減、作業ミスや遅延における問題の改善、従業員の生産性向上を実現するための機能です。
例えば、組織に新しい従業員が入社する場合、組織で利用しているグループウェアや人事システム等のアカウント作成やグループへのメンバー登録、アプリケーションに対する適切なアクセス権限の付与など、IT管理者は入社日に向けて準備が必要になります。
また、従業員が様々な理由(退職、休職、引退)で会社から離れる場合も、迅速なアクセス権限の剥奪などのタスクが発生すると思います。
上記のようなタスクを手動で実施する場合、様々な管理コンソール画面を切り替えて作業するケースも多く、工数がかかったり作業ミスのリスクも多く潜んでいる可能性が考えられます。
また、万が一問題が生じた場合のトラブルシューティングは複雑性が高いかもしれません。
ライフサイクルワークフローは、そのような課題を抱えるIT管理者を支援するための機能です。従業員が入社・異動・退職する際に発生するタスク(ユーザーアカウントの有効化やグループ登録など)を予めワークフローとして登録しておくことで、タスクの簡素化および自動化を行い、従業員がより迅速に生産性を発揮できる環境を実現します。
具体的なシナリオは以下の参考1サイトに詳しく記載されていますので、そちらをご参照ください。
参考1:ライフサイクル ワークフローが一般提供 (GA) されました
参考2:ライフサイクル ワークフローとは
ワークフロー
ライフサイクルワークフローを実装する場合、Entra 管理センターより入社・異動・退職などのシナリオ毎にワークフローを作成し、ユーザーに対して実行する特定のタスクやトリガーを指定します。
ワークフローの管理項目は、「プロパティ」「タスク」「実行条件」「バージョン」で構成されています。
プロパティ
ワークフローの基本情報やスケジュール設定を編集できます。
タスク
ワークフローがトリガーされた時に自動的に実行する特定のタスクを定義します。
「+タスクの追加」より、事前定義済みのタスクを簡単に追加することが可能になっています。以下は、2024年4月時点で「新入社員をオンボードする」のワークフローで利用できる事前定義済みタスクの一覧を表示した画像です。
例えば「ユーザー アクセス パッケージの割り当ての要求」を使用すれば、エンタイトルメント管理と組み合わせてリソースへのアクセス権限を割り当てることも可能です。
エンタイトルメント管理について気になる方は、以下の記事を宜しければご参照ください。
最新のサポートされているタスクについては、以下のMicrosoft 公式ドキュメントをご参照ください。
参考:サポートされているタスク
実行条件
いつワークフローを実行するかのトリガーと誰が影響を受けるのかのスコープをそれぞれ定義します。
例えば、以下のように指定することができます。
- トリガー(いつ):新しい従業員の雇用日(employeeHireDate属性で指定した日付)
- スコープ(誰が):部署がDemoに所属する従業員(department属性がDemo)
バージョン
ワークフローはバージョン管理されており、過去バージョンの設定内容を参照することができます。
テンプレート
ワークフローを新規で作成する際は、予め用意されているワークフローテンプレートを使用することができます。テンプレートは2024年4月時点において以下の10件が登録されており、大きく分けて「新しい従業員が入社するシナリオ」「従業員が異動するシナリオ」「従業員が退職するシナリオ」の3パターンで構成されています。
名前 | 説明 |
---|---|
雇用前の従業員をオンボードする | 従業員の入社日前に完了する必要があるタスクを構成できるように設計されています。 |
新入社員をオンボードする | 従業員の入社日に完了するタスクを構成できるように設計されています。 |
従業員のオンボーディング後 | 従業員の入社日または作成日の後に完了するタスクを構成できるように設計されています。 |
リアルタイム従業員異動 | 従業員が役割を変更したときにすぐに完了するタスクを構成できるように設計されています。 |
従業員グループメンバーシップ変更 | 従業員のグループ メンバーシップに変更があるときに実行するタスクを構成するために設計されています。 |
従業員のジョブプロファイルの変更 | 従業員の役職に変更があるときに実行するタスクを構成するために設計されています。 |
リアルタイムの従業員の退職 | 従業員が退職したときにすぐに完了するタスクを構成できるように設計されています。 |
従業員のオフボーディング前 | 従業員の最終勤務日前に完了するタスクを構成できるように設計されています。 |
従業員をオフボードする | 従業員の最終勤務日に完了するタスクを構成できるように設計されています。 |
従業員のオフボーディング後 | 従業員の最終勤務日の後に完了するタスクを構成できるように設計されています。 |
カスタム タスク拡張機能
ライフサイクルワークフローでは、Azure Logic Appsを使用したカスタム タスク拡張機能があります。こちらを使用すれば、事前定義済みタスクに存在しないような処理を定義することが可能です。
例えば、ワークフロー処理の一部でMicrosoft Graph APIや外部システムのAPIを呼び出すといったタスクも実現することができます。
制限事項
ライフサイクルワークフローの制限事項は以下のとおりです。
また、使用するためにはMicrosoft Entra ID Governanceライセンスが必要になります。
カテゴリ | 制限 |
---|---|
ワークフローの数 | テナントあたり50 |
タスクの数 | ワークフローあたり25 |
カスタム タスク拡張機能の数 | テナントあたり100 |
triggerAndScopeBasedConditions executionConditions の offsetInDays 範囲 | 180日 |
ワークフロー スケジュールのサイクル間隔 (時間) | 1から24時間 |
オンデマンド選択あたりのユーザー数 | 10 |
カスタム タスク機能拡張の durationBeforeTimeout 範囲 | 5分から3時間 |
動作検証
今回は、動作検証を行うために以下の環境を用意していきます。
赤枠部分がライフサイクルワークフローで制御する範囲です。
今回検証するシナリオは、特定の部署「demo」へ新しい従業員が配属された場合に以下のタスクを自動化したいと思います。
- Microsoft 365(今回はEntra ID P1とMicrosoft Power Automate Freeが対象)のライセンス付与
- 条件付きアクセスポリシーで定義しているセキュリティグループへメンバー追加
- Google Workspace(以下、GWS)へアカウント登録(※SCIM連携しているセキュリティグループへメンバー追加)
環境準備
以下の手順で環境準備を実施していきます。
※条件付きアクセスポリシーやGoogle WorkspaceとのSAMLおよびSCIM連携の設定は、本ブログの趣旨から逸れるため割愛しております。
- Microsoft Entra Connect(以下、Entra Connect)からライフサイクルワークフロー属性を同期するためのカスタム同期ルール作成
- 「新入社員をオンボードする」のテンプレートを使用してワークフロー作成
1. Microsoft Entra Connect(以下、Entra Connect)からライフサイクルワークフロー属性を同期するためのカスタム同期ルール作成
Entra Connect サーバへサインインします。PowerShellを起動し、「Set-ADSyncScheduler -SyncCycleEnabled $false」を実行してスケジューラを無効にします。
同期ルールエディターを起動します。
「EmployHireDate」属性を同期するためのInboundのルールを追加します。
追加できましたら、同期ルールエディターを閉じます。
PowerShellを起動し、「Set-ADSyncScheduler -SyncCycleEnabled $true」を実行してスケジューラを再度有効にします。
参考:Microsoft Entra Connect で EmployeeHireDate 用のカスタム同期ルールを作成する方法
2. 「新入社員をオンボードする」のテンプレートを使用してワークフロー作成
Microsoft Entra 管理センター へアクセスし、[Identity Governance > ライフサイクルワークフロー]画面を表示します。「+ ワークフローの作成」をクリックします。
まずはテンプレートを選択します。今回は「新入社員をオンボードする」を選択します。
次に基本情報を設定します。今回は「名前」と「説明」をdemo部が対象であることが分かるように修正しました。
次にスコープの構成を設定します。ユーザーアカウントのdepartmentプロパティが「demo」と等しければ対象となる様に設定しています。
次にタスクを設定します。今回は「ユーザーライセンスを割り当てる(プレビュー)」「ユーザーをグループに追加する」のタスクを使用して以下3つのタスクを構成しています。
注意 ユーザーをグループに追加する場合、メールが有効なセキュリティグループやオンプレミスADから同期したグループは指定することができません。
最後に確認と作成の画面でスケジュールの有効化にチェックを入れて「作成」をクリックします。
ワークフローのメイン画面に新しく追加されれば設定完了です。
スケジュールの有効化にチェックを入れた場合、標準では3時間間隔でワークフローが自動実行されます。実行の間隔を変更したい場合は、「ワークフロー設定」メニューより変更することが可能です。最短で1時間を指定することが可能です。
以上で、環境準備は完了です。
動作確認
ここからは、オンプレミスADへ新しい従業員を想定したユーザーアカウント(テスト 新入社員A)を作成し、ライフサイクルワークフローによって自動設定されることを確認していきます。
まずは、オンプレミスADにて以下のとおりユーザーアカウントを新規作成します。
msDS-cloudExtensionAttribute1の書式は「yyyyMMddHHmmss.fZ」で指定します。最後のZはUTCを意味しているため、日本時間の9時間前の値を設定します。
Entra Connectで同期が完了後、Entra 管理センターにて新しく作成されたユーザーアカウントのプロパティを参照し、「部署」と「従業員入社日」が想定通りの値であることを確認します。
注意 ライセンスを割り当てる場合は「利用場所」も設定済みである必要があります。
ワークフローが実行されるまで待機します。ワークフローの実行履歴は、「ワークフロー履歴」より確認することが可能です。
ワークフローの実行後、ユーザーアカウントのライセンスおよびグループを確認します。以下の通り、設定が追加されていることを確認できました。
GWSの管理コンソール画面より、こちらもユーザーアカウントが新しく作成されていることを確認できました。
最後に、ユーザーアカウントを使用してサインインを行います。まずは、Microsoft 365のホーム画面にアクセスできることを確認できました。
※初回のサインイン時に条件付きアクセスポリシーによりMFAメソッドの登録が求められました。
次に、GWSのマイアカウント画面にもサインインできることを確認できました。
さいごに
いかがだったでしょうか?今回は、Entra IDのガバナンス機能であるライフサイクルワークフローについて仕様を確認し、実際に動作検証を行いました。
今回の検証で設定したタスクは動的グループを使用しても実現できる範囲でしたが、ライフサイクルワークフローの動作や設定イメージを掴んで頂ければ幸いです。引き続き、カスタム拡張機能を組み合わせたタスクの実行についても検証していきたいと思います。