【閲覧注意】Azure Active Directory B2B の ID 重複問題と怖い話
この記事の内容
- Azure AD B2B(外部ユーザー招待機能)の概要と基本的な仕組み
- 組織アカウントと Microsoft アカウントで同じメールアドレスが重複するケースとその影響
- UPN(User Principal Name)とメールアドレスが異なる場合に起きる問題
- セルフサインアップテナントが招待トラブルを引き起こすメカニズム
- 現時点でできる対処策と、根本解決が難しい理由
Azure AD B2B とは
Azure Active Directory(Azure AD)B2B とは、外部のユーザーを自組織の Azure AD に招待できる機能です。招待したユーザーに対してロールやアプリケーションを割り当てることができます。たとえば Microsoft Teams のチームに外部ユーザーを招待して、会話やファイル共有を行うといった用途に使われます。
招待できる外部ユーザーの種類としては、以下のものがあります。
- 外部の Azure AD 上のユーザー
- Microsoft アカウント(個人アカウント、MSA とも呼ばれます)
- Google アカウント、Facebook アカウントなど(構成により利用可)
この記事では特に Azure AD アカウントと Microsoft アカウントにまつわる問題を中心に解説します。
ID 重複問題とは
2 種類のアカウント
Microsoft のサービスには大きく 2 種類のアカウントがあります。
- 組織アカウント(職場・学校アカウント):Azure AD 上で管理される組織のアカウント
- Microsoft アカウント(個人アカウント/MSA):個人で作成する Microsoft アカウント
この 2 種類のアカウントが、同じメールアドレスを ID として持っているケースがあります。これが「ID 重複問題」です。
なぜ重複が起きるのか
以前は、Microsoft アカウントの ID として任意のメールアドレスを使用できました。そのため、職場のメールアドレスで Microsoft アカウントを作成することも可能でした。
現在は、Azure AD にドメイン登録されているメールアドレス(つまり組織が Microsoft 365 などで使用しているドメイン)を使って Microsoft アカウントを新規作成することはできなくなっています。新規登録時にドメインを判定し、Azure AD に登録済みであれば登録を拒否する処置が取られています。
しかし、この制限が設けられる以前に作成した Microsoft アカウントはそのまま残っており、組織アカウントと同じ ID を持つ状態が続いているケースが存在します。
重複している場合に何が起きるか
同じメールアドレスで 2 種類のアカウントが存在している場合、サインイン時に「どちらのアカウントを使いますか?」という選択画面が表示されることがありました。ただし、この挙動はバックエンドサービスの変更により随時変わっており、現在は表示されなくなっているケースもあります。
招待側の混乱
外部ユーザーを招待する際、招待した相手が 2 種類のアカウントを持っている場合、どちらのアカウントを招待しているのかが分かりにくくなります。
よくある問題のパターンは以下のとおりです。
- 正しいメールアドレスで招待したはずなのにアクセスできない
- アクセス権を付与したつもりが、別種類の ID 側に付与されていた
- 招待メールは届くがリンクをクリックしても何も起きない
UPN とメールアドレスの違い
問題をさらに複雑にするのが、UPN(User Principal Name)とメールアドレスが異なる場合があるという点です。
Azure AD 上のユーザー ID は「ユーザー プリンシパル名(UPN)」が正式な識別子です。UPN はメールアドレスと異なる値を持つことがあります。
たとえば以下のような状態がありえます。
| 属性 | 値の例 |
|---|---|
| ユーザー プリンシパル名(UPN) | m.ebisuda@jbsxxx.onmicrosoft.com |
| 電子メールアドレス | masahiko.ebisuda@jbs.com |
電子メールアドレスは結婚による姓の変更などで変わることがありますが、UPN は ID の本体として変更されにくい(変更できないわけではないですが)傾向があります。
どちらの ID でサインインできるのか
UPN とメールアドレスが同じ場合は問題ありませんが、異なる場合は招待時に使用する ID の種類によって挙動が変わります。
- UPN で招待した場合:その UPN を持つ組織アカウントが紐づく。メールの受信が UPN 宛てに設定されていれば招待メールも届く
- メールアドレスで招待した場合:ID が重複していると Microsoft アカウント側に紐づいてしまうケースがある
実際の検証では、メールアドレスで招待したところ招待メールは届くが Teams への参加ができないという結果になりました。一方、UPN で招待した場合は組織アカウントとして正常に招待できました。
対処のポイント
UPN とメールアドレスが異なるユーザーについては、UPN に対応するメールの受信設定を行っておくことが重要です。UPN の値宛てにメールを受け取れる状態(セカンダリ SMTP アドレスとして登録するなど)にしておかないと、招待メールが届かないといったトラブルにつながります。
セルフサインアップテナント問題
勝手に Azure AD が作られるケース
ID 重複問題をさらに難しくするのが「セルフサインアップテナント問題」です。
Microsoft のサービスの中には、利用開始に組織アカウントが必要なものがあります。たとえば Power BI のレポートを共有されたユーザーが、そのリンクからアクセスしようとしたとき、当該ユーザーのドメインを持つ Azure AD が存在しない場合、Azure AD テナントが自動的に作成されてしまうことがあります。
この状態では以下のような問題が発生します。
- 管理者が存在しない Azure AD テナントが作成される
- 当該ドメインが見知らぬテナントに紐づいてしまう
- そのドメインのユーザーを招待しようとすると、この自動作成されたテナントの組織アカウントとして認識されてしまう
- 意図していた Microsoft アカウントを招待できなくなる
解決策はあるか
この問題の解消には以下のアプローチがあります。
- セルフサインアップで作られたテナントの管理者になる:そのテナントを引き取り、正式に管理する
- 既存の Azure AD テナントにドメインを取り込む:DNS レコードによるドメイン所有証明を行い、セルフサインアップで作られたユーザーを正式な Azure AD に移行する
ただし、どちらの方法も DNS レコードの操作権限(ドメイン所有者であることの証明)が必要であり、また組織として Azure AD の運用体制が整っていることが前提となります。外部からの招待をきっかけにこの作業を要求することは、現実的にはほぼ不可能なケースも多くあります。
実際に、この問題が原因で 4 か月の対処期間を要したケースもあります。
現時点でできる対処策
根本的な「これをやれば解決」という対処法がないのが現実ですが、以下の点を意識することで状況を改善できます。
確認・把握すべき事項
- 組織アカウントと Microsoft アカウント(個人アカウント)の 2 種類があることを認識する
- UPN とメールアドレスが同じか異なるかを把握する
- 招待後に Azure AD のユーザー一覧を確認し、意図したアカウントが登録されているかチェックする
招待時のアプローチ
- メールアドレスで招待してうまくいかない場合は UPN で招待してみる
- 両方を試し、どちらで正常にアクセスできるか確認する
- 不要になった古いゲストアカウントが Azure AD に残っている場合は削除を検討する(ただしアクセス権が消えるリスクに注意)
根本解決の選択肢
- Microsoft アカウントの ID を変更して重複状態を解消する(副作用のリスクあり)
- 重複していない別のメールアドレスで招待してもらう
- 新しい Microsoft アカウントを重複しない ID で作成し直す
挙動は変わり続けることに注意
この問題に関するバックエンドの動作は、過去も頻繁に変わってきましたし、今後も変わり続けることが予想されます。
- 以前はメールアドレスでも UPN でもサインインできる時代が続いていた
- 現在は UPN による認証に統一される方向で変更が入っている
- 「以前はできた招待が今はできない」という逆転現象も発生している
この動画で解説されている内容も、最新の挙動とは異なる可能性があります。現在の動作を自環境で必ず確認することが最も重要です。
まとめ
Azure AD B2B の ID 重複問題は、以下の 3 つの要因が絡み合って発生する複雑な問題です。
- 2 種類のアカウントの混在:組織アカウントと Microsoft アカウントが同じメールアドレスを ID として持つ状態が過去の運用により残存している
- UPN とメールアドレスの乖離:Azure AD 上の正式な ID である UPN と、電子メールアドレスが異なるユーザーが存在する
- セルフサインアップテナント:誰も管理していない Azure AD テナントが自動作成され、ドメインが意図せず紐づいてしまう
「これで解決」という銀の弾丸はなく、状況に応じて対処を模索するしかないのが現実です。招待がうまくいかない場合は、どの種類の ID が Azure AD に登録されているかを確認することを出発点にしてください。また、バックエンドの挙動は常に変化するため、過去の経験や情報を鵜呑みにせず、現在の動作を都度確認することを強くお勧めします。