Microsoft ソーシャル認証の Publisher Verification が通らない -- カスタムドメイン・Partner Center・テナントとドメインの罠まで全部やった記録

Microsoft ソーシャル認証の Publisher Verification が通らない -- カスタムドメイン・Partner Center・テナントとドメインの罠まで全部やった記録

はじめに

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つの要素を整理する。

graph TB
    subgraph "Azure AD テナント(Entra ID)"
        TENANT["テナント<br/>= 組織のアカウント基盤<br/>ユーザー・アプリ・ドメインを管理"]
        APP["アプリ登録<br/>= OAuth のクライアント ID を発行<br/>Publisher Domain を持つ"]
        DOMAIN["検証済みカスタムドメイン<br/>= DNS で所有権を証明したドメイン"]
    end

    subgraph "Microsoft Partner Center"
        MPN["MPN(パートナーネットワーク)<br/>= 法人としての Microsoft パートナー登録<br/>MPN ID を発行"]
        CONTACT["Primary Contact<br/>= 登録時のメールアドレス<br/>ドメインが審査に使われる"]
    end

    TENANT --> APP
    TENANT --> DOMAIN
    MPN --> CONTACT

この3つはそれぞれ独立した設定だが、Publisher Verification の実行時に ドメインの一致チェック が走る。

通るパターン・通らないパターン

以下の3つが すべて同じカスタムドメイン でないと通らない。

graph TB
    subgraph OK["通る"]
        direction LR
        A1["テナントのドメイン<br/>example.com"] ---|一致| B1["アプリの Publisher Domain<br/>example.com"]
        B1 ---|一致| C1["Partner Center の連絡先<br/>admin@example.com"]
    end

    subgraph NG["通らない"]
        direction LR
        A2["テナントのドメイン<br/>todoonada.co.jp"] -.-|不一致| B2["アプリの Publisher Domain<br/>example.app"]
        B2 -.-|不一致| C2["Partner Center の連絡先<br/>admin@todoonada.co.jp"]
    end

    style OK fill:#e8f5e9,stroke:#4caf50
    style NG fill:#ffebee,stroke:#f44336
確認ポイント設定場所揃えるドメイン
テナントの検証済みドメインEntra ID > Domain namesexample.com
アプリの Publisher DomainEntra ID > App registrations > Brandingexample.com
Partner Center の Primary contactPartner Center > Account settingsadmin@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時間
2Partner Center(MPN)に登録1〜2時間
3Account Verification(審査通過)3〜7営業日
4Publisher 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 でカスタムドメインを追加

  1. Azure Portal にサインイン
  2. Microsoft Entra ID > Custom domain names > Add custom domain
  3. 自社ドメイン(例: 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 を変更

  1. App registrations > 対象アプリ > Branding & properties
  2. Publisher domain をカスタムドメインに変更

Phase 2: Microsoft Partner Center に登録する

Publisher Verification には Microsoft Partner Network(MPN)ID が必要。これは Partner Center に登録すると取得できる。

ユーザーの準備

Partner Center の登録には、カスタムドメインのメールアドレスが必要。onmicrosoft.com アカウントで登録しようとしたら、リスク審査でブロックされた。

  1. Entra ID でカスタムドメインのユーザーを作成(例: admin@example.com
  2. Global Administrator ロールを付与

Partner Center 登録

  1. partner.microsoft.com にカスタムドメインのアカウントでサインイン
  2. 会社情報を入力して登録
入力項目内容
会社名法人の正式名称
住所登記住所(英語表記)
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 アプリ(スマホ)を使って行う。流れは以下の通り。

  1. Partner Center の画面に QR コードが表示される
  2. スマホの Microsoft Authenticator アプリで QR コードを読み取る
  3. 運転免許証(またはパスポート等の身分証)を撮影してアップロード
  4. 顔認証(セルフィー)を撮影して送信
  5. 身分証の写真と顔認証が一致するか自動判定される

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 を設定する。

  1. Azure Portal > App registrations > 対象アプリ
  2. Branding & properties > Add MPN ID to verify publisher(または同等のリンク)
  3. Partner Center で取得した PartnerGlobal の MPN ID を入力
  4. Verify and save

成功すると、同意画面に青い「Verified」バッジが表示される。

MPN ID 入力時のエラーと対処

「ドメインが一致しません」エラー

パートナーセンターでメールによる確認を行うために使用するドメインが、
アプリケーションの発行元ドメインまたはテナント上のいずれの
検証済みドメインとも一致しません。

原因: Partner Center に登録したドメインと、アプリの Publisher Domain が異なる。

対処: 以下のすべてが同じドメインである必要がある。

確認ポイント設定場所
アプリの Publisher DomainEntra 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 も登録する」と決めてから進めてほしい。


この記事に関連するサービス

TodoONada株式会社では、認証基盤・ID管理の設計から開発・移行までを支援しています。

導入・開発のご相談はお問い合わせからお気軽にどうぞ。検討段階のご相談も歓迎です。

技術ブログ一覧へ戻る