こんにちは。今回はMicrosoft Entra IDのエンタイトルメント管理を使用して、外部ユーザーを「招待する」&「適切なリソースへのアクセス割り当てを行う」方法について確認していきます。また、エンタイトルメント管理におけるカスタム拡張機能を利用して、外部ユーザーへのアクセス割り当てが完了した際に「プロパティを更新する」方法について動作検証しながら確認していきたいと思います。
エンタイトルメント管理とは
Microsoft Entra IDのエンタイトルメント管理とは、ID ガバナンス機能の一つであり組織内のリソースへのユーザーアクセスを効率的に管理するための機能です。
具体的に、組織内のリソースとは「グループ」「アプリケーション」「Share Point Online サイト」が対象です。ユーザーが業務を行うために必要となるすべてのリソースとそのアクセス権をパッケージとして構成し、対象となるユーザーへ割り当てることで、組織内外問わず各ユーザーのリソースへのアクセスを効率的に管理することが可能になります。
エンタイトルメント管理の制御イメージは以下画像の通りです。(参考:エンタイトルメント管理とは)
簡単ですが、上図を基にエンタイトルメント管理の用語を解説します。
①カタログ(上図のカタログA)とは、関連するリソースとアクセスパッケージを含むコンテナーです。アクセスパッケージを作成する際に必ずどのカタログに含むのか指定する必要があります。
②アクセスパッケージ(上図のアクセスパッケージA-1とA-2)とは、ユーザーへ割り当てたいリソースのロールとアクセス権を要求するポリシーをバンドルしたものです。
③リソースロールとは、リソースに関連付けられ、リソースによって定義されている一連のアクセス許可のことです。グループの場合は「所有者」と「メンバー」の2つがあります。
④ポリシーとは、アクセス パッケージにユーザーを割り当てるうえでの規則やガイドラインを定義したものです。 アクセスパッケージに複数のポリシーを定義することも可能です。
⑤接続されている組織とは、外部の Microsoft Entra ディレクトリまたはドメインのことを指してます。登録しておくことで、アクセス権の要求を許可されたユーザーとしてポリシーで指定できます。
⑥マイ アクセス ポータルとは、アクセスパッケージごとに生成されるアクセスパッケージを表示するためのリンクです。本画面よりアクセス要求を行います。
上図における制御イメージの一例は以下の通りです。
リソースディレクトリ組織に所属するユーザー1 と ユーザー2 は、内部向けポリシー1 によって アクセスパッケージA-1 のアクセス権を要求できるユーザーとして設定されております。
ユーザー1 が アクセスパッケージA-1 のアクセス権を要求し、管理者 がアクセス要求を承認すれば、ユーザー1 は アクセスパッケージA-1 に割り当てられている グループ1 と アプリ1 に対してアクセスすることが可能になります。
ライセンスの要件
組織のユーザーが、エンタイトルメント管理を使用するには「Microsoft Entra ID Governance」ライセンスが必要になります。また、「Microsoft Entra ID P2」ライセンスをお持ちの場合でも一部機能を利用することが可能になっています。
詳細は以下のMicrosoft 公式ドキュメントをご参照ください。
参考:Microsoft Entra ID ガバナンス ライセンスの基礎_ライセンス別の機能
動作検証
今回は、動作検証を行うために以下の環境を用意します。
対象リソースおよびユーザーオブジェクト等は事前に作成済みであることを前提としています。
具体的に、以下2つの動作確認を行います。
- 外部ユーザーがマイ アクセス ポータルからアクセス要求を行い、リソースディレクトリにゲストユーザーとして追加され、対象リソース「社外用グループ」「社外用アプリ」「社外用サイト」にアクセスできること
- 外部ユーザーにアクセスが割り当てられた際に、ユーザープロパティ(所属部署)に対して値「External」が設定されること
今回の検証では、エンタイトルメント管理におけるカスタム拡張機能を使用しますので、「Microsoft Entra ID Governance」ライセンスが必要です。
環境準備
以下の手順で環境準備を実施していきます。
- 接続されている組織に「外部ディレクトリ」を追加
- 「社外用カタログ」の作成
- 対象リソースとして「社外用グループ」「社外用アプリ」「社外用サイト」を割り当て
- カスタム拡張機能の追加
- 「社外用アクセスパッケージ」の作成
注意 カスタム拡張機能は、Azureのロジックアプリを実行する仕組みになっています。そのため、事前にAzureのサブスクリプションとリソースグループの作成が必要です。
1. 接続されている組織に「外部ディレクトリ」を追加
Microsoft Entra 管理センター へアクセスし、[Identity Governance > エンタイトルメント管理]画面を表示して「接続されている組織」をクリックします。
画面上部の「接続されている組織の追加」をクリックして、外部ディレクトリを追加します。以下は設定時の画面イメージです。
以下画像のように、接続されている組織が追加されたことを確認します。
2. 「社外用カタログ」の作成
「カタログ」画面を表示して、「新しいカタログ」をクリックします。
名前と説明を入力し、有効および外部ユーザーに有効は「はい」を選択して「作成」をクリックします。
作成したカタログが表示されることを確認します。
3. 対象リソースとして「社外用グループ」「社外用アプリ」「社外用サイト」を割り当て
作成したカタログを選択して「リソース」画面を表示します。「リソースを追加します」をクリックします。
以下画像のように、対象のリソースを追加します。
※社外用アプリは、「yyExpressApp01」という名称のアプリ(App Serviceにデプロイしているデモアプリ)を採用しています。
4. カスタム拡張機能の追加
カスタム拡張機能の追加は、以下のサイトを参考に実施します。
参考:エンタイトルメント管理におけるカスタム拡張機能の利用方法
作成したカタログを選択して「カスタム拡張機能」画面を表示します。「カスタム拡張機能の追加」をクリックします。
以下画像は、カスタム拡張機能の作成の確認画面です。本操作中にロジックアプリの作成も合わせて行います。今回は、外部ユーザーに対してアクセスパッケージが付与された際にロジックアプリを実行し、ロジックアプリ実行中は処理を一時停止するための設定値を選択しています。
カスタム拡張機能が追加されたことを確認します。
続けて、作成したロジックアプリの各種設定を行います。こちらの設定方法は、上記でご紹介した参考サイトの方で分かりすく解説されておりますので、詳細はそちらをご参照ください。
本ブログでは、各種設定後の画面イメージのみ添付しておきます。
以下画像はロジックアプリに紐づいているマネージドIDのGraph APIの権限設定です。ユーザープロパティを更新するため、「Directory.ReadWrite.All」を付与しています。
以下画像はEntra IDのユーザー管理者ロールの設定です。ロジックアプリに紐づいているマネージドIDに対してアクティブな割り当てを追加しています。
以下画像はロジックアプリの処理設定です。アクセスパッケージから取得した情報から外部ユーザーのプロパティを取得して更新する設定を指定しています。
5. 「社外用アクセスパッケージ」の作成
最後にアクセスパッケージを作成します。作成したカタログを選択して「アクセスパッケージ」画面を表示します。「新しいアクセスパッケージ」をクリックします。
以下画像は、アクセスパッケージ作成の確認画面です。リソースロール、アクセス権を要求できるユーザー、アクセス要求時の承認者、アクセス要求時の質問、アクセスの有効期限、定期的なアクセスレビュー、カスタム拡張機能といった設定値をそれぞれ指定します。
アクセスパッケージの作成が完了したら、概要画面が表示されます。このタイミングで、マイ アクセス ポータルのリンクが生成されます。
以上で、環境準備は完了です。
動作確認
ここからは、外部ディレクトリのユーザー(外部ユーザー1)でMicrosoft 365へサインインを行い、今回作成したアクセスパッケージのマイ アクセス ポータルからアクセス要求を実施していきます。
まずは、外部ユーザー1でマイ アクセス ポータルへアクセスします。アクションの「要求」をクリックします。
質問事項を入力して「続行」をクリックします。
同意フォームが表示されたら、チェックを入れて「要求を送信する」をクリックします。
以上でアクセス要求は完了です。
続いて、アクセスパッケージの承認者である管理者でOutlookへサインインします。以下画像のようなアクセス要求の承認依頼メールが届いていることを確認し、「要求の承認または拒否」をクリックします。
以下画像のような承認画面にアクセスしたら、対象ユーザーを選択して「承認する」をクリックします。
要求の詳細を確認し、「承認する」を選択して理由を記載します。問題なければ「送信」をクリックします。
以上でアクセス要求の承認は完了です。
再び、外部ユーザー1でマイ アクセス ポータルへアクセスします。
アクセスパッケージがアクティブに表示されていることを確認します。
社外用アクセスパッケージを選択したら、割り当てられているリソース一覧が表示されます。順番にアクセス確認を実施していきます。
社外用グループへアクセスします。
社外用アプリ(yyExpressApp01)へアクセスします。
社外用サイトへアクセスします。
すべてのリソースへ問題なくアクセスできることを確認できました。
最後に、リソースディレクトリのEntra 管理センターへアクセスして外部ユーザー1が作成されていることを確認します。
以下画像の通り、外部ユーザー1(検証ユーザー001)が新規で作成されており、部署に対して「External」が設定されていることを確認できました。
さいごに
今回は、エンタイトルメント管理の仕様を確認し、実際にエンタイトルメント管理を使用して外部ユーザーを招待する方法について動作検証を実施しました。なお、「Microsoft Entra ID Governance」の機能には、エンタイトルメント管理以外にもPrivileged Identity Management、アクセスレビュー、ライフサイクルワークフローといった機能がございます。他の機能についても、機会があればブログを書きたいと思います。