Azure AD B2B 組織アカウント招待の裏側

#概要
　[Azure AD B2B](https://blogs.technet.microsoft.com/jpazureid/2017/12/12/about-azure-ad-b2b/) では、外部のユーザーを自分の管理する Azure AD テナントへゲスト招待してリソースへのアクセス権限を割り当てる事が可能です。この時、法人のメールアドレスを指定して招待をすると招待されたメールアドレスは暗黙的に組織アカウントとして登録されます。本記事では、一見わかりづらい、この組織アカウントの作成プロセスについて解説します。

#組織アカウントと Microsoft アカウント
　Azure AD B2B で招待できるアカウントは、[「組織アカウント」と 「Microsoft アカウント」](https://docs.microsoft.com/ja-jp/azure/active-directory/sign-up-organization)の2種類があります。Microsoft アカウントは、代表例として @hotmail.com, @outlook.com, @gmail.com, @yahoo.co.jp など広く世に知られているコンシューマー向けメールアドレスを元に作成されます。これに対して一般的なメールアドレスを元に作成されたアカウントは組織アカウントと呼ばれます。どちらもメールアドレスを ID として Azure AD で利用できるアカウントとなります。

#B2B 招待による組織アカウントの作成ステップ

1. Azure AD テナントに法人ユーザーのメールアドレスを指定して招待します。以下は Azure AD へのゲストユーザーの招待画面ですが、この段階で tarou@sony.co.jp は、ただのメールアドレスであり、組織アカウントの ID とはなっていません。![image.png](https://qiita-image-store.s3.amazonaws.com/0/166732/a6f6c471-849d-fe79-f482-d14499e6a3cf.png)
　

2. 招待されたゲストユーザー tarou@sony.co.jp さんは、次のような招待メールを受け取ります。![image.png](https://qiita-image-store.s3.amazonaws.com/0/166732/f2a64b56-c6d4-ed26-0a6e-9a0002c9648a.png)
　

3. 招待メールに従ってサインアップします。ここで指定したパスワードが組織アカウントのパスワードとなります。![image.png](https://qiita-image-store.s3.amazonaws.com/0/166732/caaf4401-52da-5ec1-fe8a-7fa1bfbd3246.png)
　

4. 本人確認の Verification code がメールアドレスに届きます。これを入力してアカウント作成が完了します。![image.png](https://qiita-image-store.s3.amazonaws.com/0/166732/88b540bf-cb81-65b3-a492-0773eeaab3f1.png)
　

5. 招待元の Azure AD によって該当アカウントに割り当てられた AAD アプリケーションがあれば、アクセスパネルに表示されます。![image.png](https://qiita-image-store.s3.amazonaws.com/0/166732/44ad5280-5a74-70a8-f0f7-a93f28c5dd20.png)

#組織アカウントでのログイン
　上記の手順によってメールアドレスを ID とする組織アカウントが作成されました。以下は組織アカウントによるログイン画面となり、マイクロソフトが提供する各種サービスに Azure AD の認証機能を利用してログインが出来るようになります。

　例えば、この組織アカウントに Azure のサブスクリプションへのアクセス権限が [RBAC](https://docs.microsoft.com/ja-jp/azure/role-based-access-control/overview) などで割り当てられていれば、[Azure ポータル](https://portal.azure.com)にログオンする事で各種リソースへのアクセスも可能となります。
　
![image.png](https://qiita-image-store.s3.amazonaws.com/0/166732/a4a3b5ce-2c34-5435-a2ae-1feffef1a6d8.png)

#組織アカウント作成の裏側
　ここでは組織アカウントの作成に際し、裏側で起きている事象について解説します。実際にはこの部分の情報が少ない為、利用者が混乱を生じるケースがあります。

##裏で起こっている事
1. ユーザーのメールドメインに基づく Azure AD テナントが暗黙的に作成されます。（管理者不在テナント）
2. 上記 1 で暗黙的に作成された Azure AD テナント上にユーザーの組織アカウントが作成されます。
3. 上記 2 で作成された組織アカウントがゲストとして招待元の Azure AD テナントへ招待されます。

##1. 管理者不在テナントの自動生成
　先の例では tarou@sony.co.jp というメールアドレスを招待していますが、ここでは「株式会社アイダ開発」のメールアドレスである tarou@aida-develop.com を招待した際の裏側の流れについて解説します。表で行われている招待操作は tarou@sony.co.jp の時と一緒です。

 
　下記画像のように裏では新規に aida-develop.com の Azure AD テナントが作成されます。テナント名（ディレクトリ名）は aidadevelop.onmicrosoft.com で、ここにカスタムドメインとして aida-develop.com が設定されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/166732/d083fd1d-aac0-1c13-b8b0-0bb8ff9ed5e8.png)

##2. 組織アカウントの自動作成
　次に 1 で作成された管理者不在テナント aida-develop.com (aidadevelo.onmicrosoft.com) 上に招待されたユーザーのアカウントが自動作成されます。もし2人目のゲストとして hanako@aida-develp.com というユーザーが B2B 招待された場合、既に暗黙的に作成されたこのテナントに hanako が2人目のユーザーとして自動追加されます。（下記画像参照）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/166732/92de8979-1a5d-d9a8-22e9-49e8629354de.png)

##3. 組織アカウントのゲスト招待
　最後に 2 で作成された組織アカウントが、B2B 招待した招待元のテナントへ割り当てられます。これは、すなわちゲストのアカウント自体は、招待元のテナントでなく 1 で暗黙的に作成された管理者不在のテナントにあるという事を意味しています。

#管理者不在テナントを管理するには
　管理者不在テナントという名前からもわかるように、テナントに管理者がいない事で不便を生じる事があります。この管理者不在テナントを管理するには、その組織（カスタムドメイン）の DNS レコードを編集できる権限が必要となり、一般的には組織（会社）の IT 部門の管理者の方が該当してきます。

　ドメインの所有者である事を証明するために、所有する DNS に TXT レコードを追加する作業が必要となりますが、具体的な作業は下記の参考資料を参照してください。

**参考資料**
・ [Azure Active Directory の非管理対象ディレクトリを管理者として引き継ぐ](https://docs.microsoft.com/ja-jp/azure/active-directory/domains-admin-takeover)
・ [セルフサービス サインアップで登録されたドメインの対処方法](https://blogs.technet.microsoft.com/exchangeteamjp/2017/09/27/domain-registered-by-self-service-sign-up/)