はじめに
Microsoft アカウントでのソーシャル認証(OAuth)をアプリに組み込んだ。
これには Azure AD(Entra ID)でアプリを登録して、OAuth のクライアント ID を発行する必要がある。
ところが、ユーザーに同意画面を出すと「未確認の発行元」と表示される。これを消すには Azure AD 側で Publisher Verification(発行元の確認)を完了させる必要がある。
「MPN ID 入れるだけでしょ」と思っていたら、1週間以上かかった。ドメイン問題、Partner Center の審査、そしてテナントと MPN のドメイン不一致という罠。同じ道を歩む人のために、全工程を記録しておく。
最初に知っておくべきこと: テナントと MPN のドメインは一致させろ
先に結論を書く。Publisher Verification で一番ハマるのは Azure AD テナントのドメインと Partner Center(MPN)のドメインが一致していない パターン。
登場人物の整理
まず、Publisher Verification に関わる3つの要素を整理する。
この3つはそれぞれ独立した設定だが、Publisher Verification の実行時に ドメインの一致チェック が走る。
通るパターン・通らないパターン
以下の3つが すべて同じカスタムドメイン でないと通らない。
| 確認ポイント | 設定場所 | 揃えるドメイン |
|---|---|---|
| テナントの検証済みドメイン | Entra ID > Domain names | example.com |
| アプリの Publisher Domain | Entra ID > App registrations > Branding | example.com |
| Partner Center の Primary contact | Partner Center > Account settings | admin@example.com |
テナントに todoonada.co.jp を登録して Partner Center も todoonada.co.jp のアカウントで登録したのに、アプリの Publisher Domain が example.app だと通らない。逆もまた然り。
最初からカスタムドメインベースでテナントを作り、同じドメインのアカウントで Partner Center に登録する。 これが遠回りに見えて一番の近道。
Publisher Verification とは
「Microsoft でログイン」を実装すると、ユーザーに OAuth の同意画面が表示される。Publisher Verification は、この同意画面に表示されるアプリの発行元(組織)が本物であることを Microsoft が確認する仕組み。完了すると青いバッジが表示され、ユーザーが安心してログインできるようになる。
| 項目 | 未確認の状態 | 確認済みの状態 |
|---|---|---|
| 同意画面の表示 | 「未確認の発行元」と警告 | 青いバッジ + 組織名 |
| マルチテナントアプリ | 管理者の同意が必要な場合あり | 同意フローがスムーズ |
| ユーザーの信頼度 | 低い | 高い |
前提条件
- Microsoft ソーシャル認証(OAuth)用に Azure AD(Entra ID)でアプリ登録済み
- 独自ドメインを持っている
- Microsoft Partner Center に登録可能な法人
全体の流れ
やることは多い。先に全体像を把握しておく。
| Phase | 作業内容 | 所要時間の目安 |
|---|---|---|
| 1 | カスタムドメインを Azure AD に登録 | 30分〜1時間 |
| 2 | Partner Center(MPN)に登録 | 1〜2時間 |
| 3 | Account Verification(審査通過) | 3〜7営業日 |
| 4 | Publisher Verification 実行 | 10分 |
審査待ちの時間が大半。手を動かす作業自体はそこまで多くない。
Phase 1: カスタムドメインを Azure AD に登録する
なぜ必要か
Publisher Verification は onmicrosoft.com ドメインでは実行できない。
The application publisher domain is set to xxxx.onmicrosoft.com,
but onmicrosoft.com publisher domains are not allowed.
Please use a custom domain in order to proceed.
このエラーが出たら、まずカスタムドメインの追加から始める。
手順
1. Entra ID でカスタムドメインを追加
- Azure Portal にサインイン
- Microsoft Entra ID > Custom domain names > Add custom domain
- 自社ドメイン(例:
example.com)を入力
2. DNS に TXT レコードを追加
Azure が検証用の TXT レコードを表示する。DNS プロバイダ(Cloudflare、Route 53 など)に追加。
Type: TXT
Name: @
Value: MS=msXXXXXXXX (Azure が指定する値)
TTL: Auto(または 3600)
3. ドメインを確認・プライマリに設定
DNS が浸透したら Azure 側で Verify をクリック。確認後、Make primary でプライマリドメインに設定する。
4. アプリの Publisher Domain を変更
- App registrations > 対象アプリ > Branding & properties
- Publisher domain をカスタムドメインに変更
Phase 2: Microsoft Partner Center に登録する
Publisher Verification には Microsoft Partner Network(MPN)ID が必要。これは Partner Center に登録すると取得できる。
ユーザーの準備
Partner Center の登録には、カスタムドメインのメールアドレスが必要。onmicrosoft.com アカウントで登録しようとしたら、リスク審査でブロックされた。
- Entra ID でカスタムドメインのユーザーを作成(例:
admin@example.com) - Global Administrator ロールを付与
Partner Center 登録
- partner.microsoft.com にカスタムドメインのアカウントでサインイン
- 会社情報を入力して登録
| 入力項目 | 内容 |
|---|---|
| 会社名 | 法人の正式名称 |
| 住所 | 登記住所(英語表記) |
| Primary contact | カスタムドメインのメールアドレス |
| 電話番号 | 法人の電話番号 |
MPN ID の確認
登録完了後、Account settings > Identifiers で Partner ID を確認する。
Partner ID(PartnerGlobal): 70XXXXX ← Publisher Verification にはこちらを使う
Partner ID(PartnerLocation): 70XXXXX
PartnerGlobal の方の ID を控えておく。
Phase 3: Account Verification(審査)を通過する
Partner Center 登録後、Microsoft による審査が始まる。ここが一番時間がかかる。
審査の3ステップ
| ステップ | 内容 | 所要時間 |
|---|---|---|
| Email Verification | 確認メールのリンクをクリック | 即日 |
| Identity Verification | 本人確認(身分証 + 顔認証) | 即日〜7営業日 |
| Employment Verification | 在籍確認・書類提出 | 即日〜7営業日 |
Email Verification
Microsoft から確認メールが届く。リンクをクリックするだけ。
注意: リンクは Partner Center にサインイン中のブラウザで開くこと。有効期限が短い。
Identity Verification(本人確認)
Action Center > Complete identity verification > Take action で進める。
本人確認は Microsoft Authenticator アプリ(スマホ)を使って行う。流れは以下の通り。
- Partner Center の画面に QR コードが表示される
- スマホの Microsoft Authenticator アプリで QR コードを読み取る
- 運転免許証(またはパスポート等の身分証)を撮影してアップロード
- 顔認証(セルフィー)を撮影して送信
- 身分証の写真と顔認証が一致するか自動判定される
Authenticator アプリを事前にインストールしておくとスムーズ。自分の場合は即日で通った。
Employment Verification(在籍確認)
ここが最大の関門。Microsoft から追加書類を求められることがある。
要求例: ドメイン登録の領収書
必要情報:
- ドメイン名
- 所有者名(法人名)
- 登録日
- 登録期間
- レジストラ名
- 有効期限(2ヶ月以上先であること)
ドメインのレジストラ(Google Domains、お名前.com、Cloudflare Registrar など)から請求書や登録確認書をダウンロードして提出する。
提出タイプは Domain purchase invoices or registry confirmation records を選択。
審査が却下された場合
1回で通らないこともある。その場合:
- Primary contact のメールアドレスがカスタムドメインになっているか確認
- 書類の情報と Partner Center の登録情報が一致しているか確認
- 修正して再申請
Phase 4: Publisher Verification を実行する
審査が通ったら、いよいよ Publisher Verification を設定する。
- Azure Portal > App registrations > 対象アプリ
- Branding & properties > Add MPN ID to verify publisher(または同等のリンク)
- Partner Center で取得した PartnerGlobal の MPN ID を入力
- Verify and save
成功すると、同意画面に青い「Verified」バッジが表示される。
MPN ID 入力時のエラーと対処
「ドメインが一致しません」エラー
パートナーセンターでメールによる確認を行うために使用するドメインが、
アプリケーションの発行元ドメインまたはテナント上のいずれの
検証済みドメインとも一致しません。
原因: Partner Center に登録したドメインと、アプリの Publisher Domain が異なる。
対処: 以下のすべてが同じドメインである必要がある。
| 確認ポイント | 設定場所 |
|---|---|
| アプリの Publisher Domain | Entra ID > App registrations > Branding |
| Partner Center の Primary contact メール | Partner Center > Account settings |
| Entra ID の検証済みドメイン | Entra ID > Domain names |
3つのドメインが揃わない場合、新テナントを作成してやり直すのが最も確実。
「MPN ID does not exist」エラー
Partner Center のアカウントと Azure AD テナントが紐づいていない可能性がある。Partner Center にサインインしているアカウントが、対象アプリと同じテナントに属しているか確認する。
ハマりポイントまとめ
| 事象 | 原因 | 対応 |
|---|---|---|
onmicrosoft.com で Publisher Verification 不可 |
Microsoft の仕様。カスタムドメイン必須 | Entra ID にカスタムドメインを追加 |
| Partner Center 登録がブロックされる |
onmicrosoft.com アカウントだとリスク審査で引っかかる |
カスタムドメインのアカウントで登録 |
| Employment Verification で却下 | Primary contact のドメインが不一致 | カスタムドメインのメールに変更して再申請 |
| MPN ID 入力で「ドメイン不一致」 | Partner Center と Publisher Domain のドメインが違う | テナント・Partner Center・アプリのドメインを統一 |
| MPN ID が "does not exist" | テナント間の不一致 | 同一テナントのアカウントで Partner Center に登録 |
まとめ
Publisher Verification は「MPN ID を入れるだけ」のはずが、実際にはカスタムドメイン、Partner Center 審査、ドメイン一致の3つの壁がある。
冒頭にも書いたが、一番大事なのは テナント・Partner Center・アプリのドメインを最初から揃えておくこと。ここがズレていると、審査を通過した後に「ドメインが一致しません」で振り出しに戻る。
これから Publisher Verification をやる人は、Phase 1 のカスタムドメイン追加の時点で「このドメインで Partner Center も登録する」と決めてから進めてほしい。
