こんにちは。今回は、Microsoft Entra ID(旧Azure AD)の条件付きアクセスポリシーで外部ユーザー(B2B ゲストユーザー、B2B 直接接続ユーザーなど)を制御する方法について記載します。また、実際に外部ユーザーに対して「多要素認証を要求する」ポリシーを作成して動作検証を実施していきたいと思います。
外部ユーザーの種類
条件付きアクセスで外部ユーザー向けのポリシーを構成する場合、割り当てユーザーの対象に「ゲストまたは外部ユーザー」を選択するのですが、外部ユーザーの種類に応じてきめ細かく制御することが可能になっています。具体的には、認証方法(内部または外部)および組織との関係(ゲストまたはメンバー)に基づいて分類されており、以下画像の選択肢がございます。(※2023/11/28時点)
単純に外部ユーザー向けのポリシーを作成するという条件であれば、全項目を選択すれば良いのですが、一つ一つ理解して選択することが大切だと思います。
ということで、外部ユーザーの種類について確認したことを以下の表にまとめます。
名称 | 説明 | 作成例 |
---|---|---|
B2B Collaboration ゲスト ユーザー | 一般的にゲストと見なされるほとんどのユーザーが分類されます。 外部 Microsoft Entra 組織または外部 IDプロバイダー(Google、Facebook等のソーシャルID)にアカウントを持ちます。 Microsoft Entra ディレクトリに作成されるユーザーオブジェクトのUserType属性値は「ゲスト」です。 | 外部ユーザーの招待、セルフサービス サインアップ |
B2B Collaboration メンバー ユーザー | 外部 Microsoft Entra 組織または外部 IDプロバイダー(Google、Facebook等のソーシャルID)にアカウントを持ちますが、組織内のリソースに対してメンバーレベルのアクセス権があります。 複数のテナントで構成されるような大規模な組織において、組織で保有する他テナント内のリソースへアクセスしたい場合などに用いられます。 Microsoft Entra ディレクトリに作成されるユーザーオブジェクトのUserType属性値は「メンバー」です。 | テナント間同期、外部ユーザーの招待後にUserType属性値(ゲスト⇒メンバー)変更 |
B2B 直接接続ユーザー | 特定のMicrosoft アプリケーション(2023/11/28時点において、Teamsの共有チャネルのみ)へのシングルサインオンアクセスを許可する場合に用いられます。Microsoft Entra ディレクトリ内にユーザーは作成されません。 | Teamsの共有チャネルにて外部ユーザーをメンバー招待 |
ローカル ゲスト ユーザー | 組織内にアカウントを持ちますが、組織内のリソースに対してゲストレベルのアクセス権しかありません。 Microsoft Entra ディレクトリに作成されるユーザーオブジェクトのUserType属性値は「ゲスト」です。 Microsoft Entra B2B コラボレーションが利用できるようになる前は、販売代理店、仕入先、製造元、およびその他のユーザーと共同作業を行うには、これらのユーザーを内部資格情報として登録し、ユーザー オブジェクトの UserType を “ゲスト” に設定することで、ゲストとして指定するのが一般的でした。 | 組織内でユーザー作成後にUserType属性値(メンバー⇒ゲスト)変更 |
サービス プロバイダー ユーザー | クラウド サービス プロバイダーとして機能する組織のユーザー。(Microsoft Graph パートナー固有の構成の isServiceProvider プロパティは true です) | – |
その他の外部ユーザー | 上記カテゴリに該当せず、組織内のメンバーと見なされないユーザー。(Microsoft Entra ID を介して内部的に認証されず、Microsoft Entra ディレクトリに作成されるユーザー オブジェクトの UserType属性値が「メンバー」ではないユーザー) | – |
参考: 外部ユーザーの種類への条件付きアクセス ポリシーの割り当て
次の章から、実際に外部ユーザーの種類ごとに条件付きアクセスポリシーを作成して動作を確認していきます。今回は以下3パターンを実施します。
- テナント間同期で外部ユーザーを作成し、「B2B Collaboration メンバーユーザーを割り当てたポリシー」で制御できることを確認する
- Teamsの共有チャネルで外部ユーザーを招待し、「B2B 直接接続ユーザーを割り当てたポリシー」で制御できることを確認する
- 組織内でユーザー作成後にUserType属性値(メンバー⇒ゲスト)を変更し、「ローカルゲストユーザーを割り当てたポリシー」で制御できることを確認する
動作検証
今回の検証環境の構成イメージは以下画像の通りです。各検証パターンの環境を準備して条件付きアクセスポリシーを作成し、対象ユーザー(検証1:UserB1、検証2:UserC1、検証3:UserA1)でアクセス確認を行います。
1. B2B Collaboration メンバーユーザーのアクセス制御
テナント間同期とは
B2B Collaboration メンバーユーザーの動作検証を実施するためにテナント間同期を構成します。
テナント間同期とは、他テナントに存在する外部ユーザーをB2B Collaboration ユーザーとして作成、更新、削除する工程を自動化することができる機能です。本機能を利用するには Microsoft Entra ID P1 ライセンスが必要です。
代表的なシナリオは、複数のMicrosoft Entra テナントを所有し、組織内でテナント間のアプリケーションアクセスを効率化したい場合が想定されます。(※2023/11/28時点で組織の境界を越えた使用には適しておりません。)
テナント間同期についてより詳細に知りたい方は、以下のMicrosoft 公式ドキュメントをご参照ください。
参考:テナント間同期とは?
環境準備
以下の手順で環境準備を進めていきます。
- クロステナントアクセス設定にて外部組織を追加(ターゲットテナント)
- 追加した外部組織の受信アクセス設定を変更(ターゲットテナント)
- クロステナントアクセス設定にて外部組織を追加(ソーステナント)
- 追加した外部組織の送信アクセス設定を変更(ソーステナント)
- テナント間同期の構成(ソーステナント)
- プロビジョニング対象ユーザーの定義(ソーステナント)
- プロビジョニングを開始する(ソーステナント)
- 追加されたユーザーの確認(ターゲットテナント)
- 外部ユーザー向け条件付きアクセスポリシー作成(ターゲットテナント)
参考:テナント間同期を構成する | Microsoft Learn
まずは、ターゲットテナント(構成イメージ内のテナントA)で作業を行います。
1. クロステナントアクセス設定にて外部組織を追加(ターゲットテナント)
Microsoft Entra 管理センター へアクセスし、[ID > Enternal Identities > クロステナントアクセス設定]画面より「組織の追加」をクリックしてテナントIDまたはドメイン名を入力します。
2. 追加した外部組織の受信アクセス設定を変更(ターゲットテナント)
追加した外部組織にて受信アクセスの「既定値から編集」を選択します。「テナント間同期」タブを表示して、「ユーザーにこのテナントへの同期を許可する」をオンに変更して保存します。
続けて「信頼の設定」タブを表示して、「テナントで招待を自動的に引き換える」をオンに変更して保存します。
参考 本画面の以下部分を編集することで、条件付きアクセスポリシーのチェックにおいて外部組織の認証情報を信頼することが可能になります。(※例えば、外部ユーザーに多要素認証を要求するポリシーを設定している場合に、外部ユーザーが自組織で多要素認証を既に実施していれば追加の認証が不要になります。)
次に、ソーステナント(構成イメージ内のテナントB)で作業を行います。
3. クロステナントアクセス設定にて外部組織を追加(ソーステナント)
Microsoft Entra 管理センター へアクセスし、[ID > Enternal Identities > クロステナントアクセス設定]画面より「組織の追加」をクリックしてテナントIDまたはドメイン名を入力します。
4. 追加した外部組織の送信アクセス設定を変更(ソーステナント)
追加した外部組織にて送信アクセスの「既定値から編集」を選択します。「信頼の設定」タブを表示して、「テナントで招待を自動的に引き換える」をオンに変更して保存します。
5. テナント間同期の構成(ソーステナント)
[ID > Enternal Identities > テナント間同期 > 構成]画面より「新しい構成」をクリックします。任意の名前を入力して「作成」をクリックします。
作成されたテナントを選択して「作業の開始」をクリックします。
プロビジョニングモードを「自動」に変更し、ターゲットテナントのテナントIDを入力して「テスト接続」をクリックします。承認のメッセージが表示されたら「保存」をクリックします。
6. プロビジョニング対象ユーザーの定義(ソーステナント)
「プロビジョニング」画面の設定セクション内にある範囲を「割り当てられたユーザーとグループのみを同期する」に変更して保存をクリックします。
「ユーザーとグループ」画面より「ユーザーまたはグループの追加」をクリックして、同期したいオブジェクトを指定します。今回は、予め用意しておいたセキュリティグループ「テナント間同期グループ」を指定しました。
テナント間同期グループには、2名の検証ユーザーがメンバー追加されています。
7. プロビジョニングを開始する(ソーステナント)
「概要」画面より「プロビジョニングの開始」をクリックしてプロビジョニングジョブを実行します。
以下画像のように「増分サイクルが完了しました。」と表示されれば同期完了です。
ここからは、再度ターゲットテナント(構成イメージ内のテナントA)で作業を行います。
8. 追加されたユーザーの確認(ターゲットテナント)
[ID > ユーザー > すべてのユーザー]画面にてテナント同期対象のユーザーが存在することを確認します。以下画像は、同期を実行した日付でフィルタリングしています。
テナント間同期グループに追加した2ユーザーが「メンバー」として作成されていることを確認できました。
9. 外部ユーザー向け条件付きアクセスポリシー作成(ターゲットテナント)
B2B Collaboration メンバーユーザー向けの条件付きアクセスポリシーを作成します。
[ID > 保護 > 条件付きアクセス]画面にて「新しいポリシーを作成する」をクリックします。今回は以下画像のように、B2B Collaboration メンバーユーザーに対して多要素認証を要求するポリシーを作成しました。
以上で環境準備は完了です。
動作確認
B2B Collaboration メンバーユーザーでターゲットテナントへサインインを行い、条件付きアクセスポリシーが適用されることを確認していきます。
1. ソーステナントに所属するユーザー(構成イメージ内のUserB1)でマイアカウントページへサインインします。画面右上の組織アイコンをクリックし、所属している他の組織よりターゲットテナントを選択します。
2. ターゲットテナント側のマイアカウントページへアクセスできることを確認します。(※初回アクセスする際に、ターゲットテナント側で多要素認証メソッドの登録が求められました。)
3. ターゲットテナント側でMicrosoft Entra 管理センターへアクセスしてサインインログを確認します。以下画像のように、今回作成したB2B Collaboration メンバーユーザー向けのポリシーが適用されていることを確認できました。
2. B2B 直接接続ユーザーのアクセス制御
Teamsの共有チャネルとは
B2B 直接接続ユーザーの動作検証を実施するためにTeamsの共有チャネルを作成します。
Teamsの共有チャネルとは、チームのメンバーに追加されていないユーザーを招待することができるチャネルです。組織内に追加されたゲストユーザーは共有チャネルに招待することができません。代わりに、B2B直接接続が許可されている外部組織のユーザーを招待することが可能です。
Teamsの共有チャネルについてより詳細に知りたい方は、以下のMicrosoft 公式ドキュメントをご参照ください。
参考:Microsoft Teams の共有チャネル
参考:チャネル機能の比較
環境準備
以下の手順で環境準備を進めていきます。
- クロステナントアクセス設定にて外部組織を追加(共有チャネル作成テナント)
- 追加した外部組織の受信アクセス設定を変更(共有チャネル作成テナント)
- クロステナントアクセス設定にて外部組織を追加(組織外テナント)
- 追加した外部組織の送信アクセス設定を変更(組織外テナント)
- Teams ポリシーの設定(共有チャネル作成テナント)
- 共有チャネル作成および外部ユーザー招待(共有チャネル作成テナント)
- 外部ユーザー向け条件付きアクセスポリシー作成(共有チャネル作成テナント)
参考:B2B 直接接続のためにクロステナント アクセス設定を構成する
参考:Microsoft Teams で共有チャネルを作成する
参考:共有チャネル (IT 管理者) で外部参加者と共同作業する
まずは、共有チャネル作成テナント(構成イメージ内のテナントA)で作業を行います。
1. クロステナントアクセス設定にて外部組織を追加(共有チャネル作成テナント)
Microsoft Entra 管理センター へアクセスし、[ID > Enternal Identities > クロステナントアクセス設定]画面より「組織の追加」をクリックしてテナントIDまたはドメイン名を入力します。
2. 追加した外部組織の受信アクセス設定を変更(共有チャネル作成テナント)
追加した外部組織にて受信アクセスの「既定値から編集」を選択します。「B2B 直接接続」タブを表示して、「設定のカスタマイズ」を選択し、アクセス状態を「アクセスを許可」に変更して保存します。
続けて、「信頼の設定」タブを表示します。「既定のカスタマイズ」を選択して、「Microsoft Entra テナントからの多要素認証を信頼する」にチェックを入れて「保存」をクリックします。
重要 本設定をしなければ、B2B 直接接続ユーザーがTeamsの共有チャネルへアクセスする際に多要素認証を要求する場合、AADSTS90071 エラーが発生します。組織のMicrosoft Entra ディレクトリ内にB2B 直接接続ユーザーは存在しないため、ユーザーが所属するテナント側で多要素認証を実施しておく必要があります。
参考:B2B 直接接続ユーザーが共有チャネルにアクセスできない (エラー AADSTS90071)
次に、組織外テナント(構成イメージ内のテナントC)で作業を行います。
3. クロステナントアクセス設定にて外部組織を追加(組織外テナント)
Microsoft Entra 管理センター へアクセスし、[ID > Enternal Identities > クロステナントアクセス設定]画面より「組織の追加」をクリックしてテナントIDまたはドメイン名を入力します。
4. 追加した外部組織の送信アクセス設定を変更(組織外テナント)
追加した外部組織にて送信アクセスの「既定値から編集」を選択します。「B2B 直接接続」タブを表示して、「設定のカスタマイズ」を選択し、アクセス状態を「アクセスを許可」に変更して保存します。
ここからは、再度共有チャネル作成テナント(構成イメージ内のテナントA)で作業を行います。
5. Teams ポリシーの設定(共有チャネル作成テナント)
Microsoft Teams 管理センター へアクセスし、[チーム > Teams ポリシー]を表示します。対象のポリシーを選択し、「共有チャネルを作成」「外部ユーザーを共有チャネルに招待する」が有効になっていることを確認します。(※既定で有効になっています)
6. 共有チャネル作成および外部ユーザー招待(共有チャネル作成テナント)
共有チャネルを追加するチームの所有者でTeams アプリへサインインします。
対象のチームを選択して、「チャネルを追加」をクリックします。
チャネル名を入力し、チャネルの種類を選択するで「共有 – 組織内または組織外の人またはチームがアクセスできます」を指定して「作成」をクリックします。
外部ユーザー(構成イメージ内のUserC1)を追加して「共有」をクリックします。
以下画像のように共有チャネルが追加されたことを確認します。(※チャネル名の右側に共有チャネルを示すアイコンが表示されます)
7. 外部ユーザー向け条件付きアクセスポリシー作成(共有チャネル作成テナント)
B2B 直接接続ユーザー向けの条件付きアクセスポリシーを作成します。
[ID > 保護 > 条件付きアクセス]画面にて「新しいポリシーを作成する」をクリックします。今回は以下画像のように、B2B 直接接続ユーザーに対して多要素認証を要求するポリシーを作成しました。
以上で環境準備は完了です。
動作確認
B2B 直接接続ユーザーでTeamsの共有チャネルへサインインを行い、条件付きアクセスポリシーが適用されることを確認していきます。
1. 組織外テナントに所属するユーザー(構成イメージ内のUserC1)でTeams アプリへサインインします。
2. 共有チャネルへアクセスします。(※初回アクセス時は追加の認証が求められ、B2B直接接続ユーザー自身の組織側で多要素認証メソッドを登録していない場合は登録画面へ遷移しました。)
3. 共有チャネルで操作できることを確認します。
4. 共有チャネル作成テナント側でMicrosoft Entra 管理センターへアクセスしてサインインログを確認します。以下画像のように、今回作成したB2B 直接接続ユーザー向けのポリシーが適用されていることを確認できました。
3. ローカルゲストユーザーのアクセス制御
環境準備
ローカルゲストユーザーを作成します。以下の手順で環境準備を進めていきます。
- 組織内ユーザーの「ユーザーの種類」の値をメンバーからゲストに変更
- 外部ユーザー向け条件付きアクセスポリシー作成
1. 組織内ユーザーの「ユーザーの種類」の値をメンバーからゲストに変更
Microsoft Entra 管理センター へアクセスし、[ID > ユーザー > すべてのユーザー]画面より対象のユーザーを選択します。プロパティの編集を選択して、「ユーザーの種類」をメンバーからゲストへ変更して保存をクリックします。
2. 外部ユーザー向け条件付きアクセスポリシー作成
ローカルゲストユーザー向けの条件付きアクセスポリシーを作成します。
[ID > 保護 > 条件付きアクセス]画面にて「新しいポリシーを作成する」をクリックします。今回は以下画像のように、ローカルゲストユーザーに対して多要素認証を要求するポリシーを作成しました。
以上で環境準備は完了です。
動作確認
ローカルゲストユーザーでMicrosoft 365 ホーム画面へサインインを行い、条件付きアクセスポリシーが適用されることを確認していきます。
1. ローカルゲストユーザー(構成イメージ内のUserA1)でMicrosoft 365 ホーム画面へサインインします。(※サインイン時に多要素認証を要求されました。)
2. Microsoft Entra 管理センターへアクセスしてサインインログを確認します。以下画像のように、今回作成したローカルゲストユーザー向けのポリシーが適用されていることを確認できました。
さいごに
いかがだったでしょうか?Microsoft Entra IDの外部ユーザーは、B2B Collaboration ユーザーやB2B 直接接続ユーザー、ローカルゲストユーザーなど、複数の種類が存在します。そして、種類ごとにきめ細かく条件付きアクセスポリシーで制御することが可能です。今回は、テナント間同期やTeamsの共有チャネルなど複数のパターンで外部ユーザーを招待し、外部ユーザーの種類ごとに条件付きアクセスポリシーで制御できることを実際に確認しました。
Microsoft Entra IDで外部ユーザーに対して社内リソースへのアクセス許可を実施および検討されている方々へ、少しでも参考になれば幸いです。