2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【External ID テナント編】 Azure AD B2C から Entra External ID へ ― SPA 認証の設定差分まとめ

2
Last updated at Posted at 2026-02-26

本投稿は2026年2月時点の情報に基づいています。
最新情報は、Microsoft公式サイトをご確認ください。

はじめに

本投稿では、 SPA + Entra External ID で構成する認証アプリにおける、 Entra External ID テナントの設定について説明します。

本投稿は、Azure AD B2C と Entra External ID の設定差分を扱う 記事シリーズの一部 として位置づけています。

SPA(Vue.js) やバックエンドアプリ (.NET / Java) の実装については、以下のトップページにまとめていますのでご確認ください。

背景

AlesInfiny Maia/Maris1 では、Azure AD B2C を使用した認証サンプルを公開しています。
しかし、Azure AD B2C2025 年 5 月に新規購入が終了し、 既存利用のサポート継続は少なくとも 2030 年 5 月まで と Microsoft から発表されているため2、後継の Entra External ID を利用した認証サンプルを公開しました。
Entra External ID サンプルは Azure AD B2C サンプルと同等の機能(サインアップ、サインイン)を持つよう構成されているのに加え、サインアウト機能を実装しています。
詳しい設定内容については、サンプルの README をご参照ください。

本投稿では、Entra External ID を利用する際のテナントの設定について、 Azure AD B2C との共通点や相違点について説明します。

要点

  • Entra External ID 利用時の作業の大枠は Azure AD B2C と共通
  • ユーザーフローの登録、アクセス許可の付与については設定手順に差あり

Entra External ID とは

Entra External ID は、外部ユーザー(コンシューマー、他の Entra ID テナントに登録されたユーザー等)を自組織のアプリに安全に招待・認証するための仕組みです。

Entra External ID では「従業員テナント(workforce tenant)」「外部テナント(external tenant)」を作成できます。Azure AD B2C に相当する機能(ユーザー自らのサインアップ等)を利用するには Entra External ID の 「外部テナント(external tenant)」 を利用します。

従業員テナントと外部テナントの違いについては以下をご覧ください。

想定するアプリケーションの動作

本投稿で想定しているアプリケーションの動作概要です。
フロントエンドでサインアップ・サインインした上で、認証が必要なバックエンドのリソースにアクセスします。このようなアプリケーションを動作させる前提で、本投稿ではサインアップ・サインインを行うためのテナントを作成・設定する手順を説明します。

image.png

※実際は Microsoft 認証ライブラリ (MSAL) の使用によって、 OAuth 2.0 承認コードフロー with PKCE を実現しています。

Azure AD B2C との共通点

認証アプリを Azure AD B2C / Entra External ID で利用する際の作業の流れはほとんど共通しており、以下の手順を踏みます。

1. テナント作成

2. アプリケーションの登録

作成したテナントにフロントエンドアプリとバックエンドアプリを登録します。

3. スコープの作成

バックエンドアプリにスコープを定義します。

スコープ はアクセス権限を表します。アクセストークンに適切なスコープが設定されていることを確認することで、バックエンド側のリソースにアクセス可能かどうかを判定します。

4. スコープへのアクセス許可を追加

フロントエンドアプリにスコープへのアクセス許可を追加します。

5. ユーザーフローの作成

ユーザーフロー とは、サインアップやサインインの手順を定義したものです。
具体的には、サインアップする際のユーザー情報や、サインインの方法(メールアドレス+パスワードのみか、他のIdPを利用するか)等を定義できます。

作業の流れは共通していますが、細かな設定方法に差があるため次項で説明します。

Azure AD B2C との相違点

1. テナント作成方法

Entra External ID でテナントを作成するには、 Azure Portal ではなく、 Entra 管理センターからの操作が必要となります。
テナントを作成するユーザーにはテナント作成者以上の権限が必要です。
なお、 Azure AD B2C と同様に不特定多数のユーザーが自らサインアップできるようにするには、「外部テナント(external tenant)」 を選択してテナントを作成する必要があります。

2. ユーザーごとにアクセス許可を付与する

Entra External ID ではユーザーごとにバックエンドのリソースへのアクセス許可をフロントエンドアプリに付与することが可能になりました。

スコープ作成時にアクセス許可を付与できる主体として「管理者のみ」または「管理者とユーザー」を選択できます。(※「同意」=「アクセス許可の付与」に相当します)

image.png

認証済みユーザーがフロントエンドアプリ経由でバックエンドアプリにアクセスするには Azure AD B2C との共通点 で示したアプリ登録、スコープの作成やスコープへのアクセス許可を追加する必要があります。ログイン後は以下の流れでバックエンドのリソースにアクセスします。

  • フロントエンドが必要なスコープを指定してアクセストークンを要求
  • (ユーザー同意可のスコープの場合)ユーザーは同意画面でスコープ単位でバックエンドのリソースへのアクセス許可をフロントエンドに付与
  • 発行されたアクセストークンを付与してバックエンドへリクエスト送信
  • バックエンドがトークンを検証し、リソースへアクセス

image.png

Azure AD B2C では、管理者の同意を前提とするスコープとなっており、ユーザーがスコープ単位で同意可否を選択できませんでした。そのため、管理者がユーザーに代わって Azure Portal 上でフロントエンドに一律でアクセス許可を付与する必要がありました。

一方、 Entra External ID では、スコープごとに同意主体を設定できます。
ユーザーが同意可能なスコープを定義している場合、初回ログイン時にユーザー自身がフロントエンドアプリへバックエンドアプリのリソースへのアクセス許可を付与するかどうかを選択できます。
これにより、ユーザー単位で明示的な個人の同意を取得でき、以下のような場合に活用できます。

  • 外部 API 連携等で個人データにアクセスする場合
  • スコープ単位で機能を分離する場合

3. ユーザーフローへのアプリケーションの登録

Entra External ID では、ユーザーフローとアプリケーションを Entra 管理センター 上で紐付ける操作が必要です。

Azure AD B2C ではユーザーフローを作成後、フロントエンド・バックエンドアプリでアプリケーション起動時にどのユーザーフローを利用するか指定する必要がありました。

一方、Entra External ID では、アプリケーション起動時にサインアップやサインインに利用するユーザーフローの指定は不要となります。代わりに、ユーザーフローをアプリケーションに紐づけるよう Entra 管理センター 上で設定が必要となります。
1 つのユーザーフローを複数のアプリケーションに紐づけることは可能ですが、1 つのアプリケーションに複数のユーザーフローを指定することはできません。

ユーザーフローをアプリケーションに紐づける方法は以下の通りです。

Azure AD B2C と Entra External ID 利用時の実装内容の差分については、アプリケーションの実装についての記事をご参照ください。

おわりに

本投稿では SPA + Entra External ID で構成する認証アプリにおける、 Entra External ID テナントの設定について整理しました。

Azure AD B2C と大枠の流れが共通しているため、Azure AD B2Cのテナント設定に触れたことがあれば、それほど戸惑わずに作業できる印象でした。また、ユーザーフローとアプリケーションを Entra 管理センターで明示的に紐づける構成になったことで、設定ミスを防ぎやすくなっています。

ぜひ SPA 編やバックエンド実装編と併せて、 Entra External ID の導入の参考にしていただければ幸いです。

We Are Hiring!

  1. AlesInfiny Maia/Maris は、 Java/.NET アプリケーションの標準的なアーキテクチャを提供します。
    以下 Web サイトにて、ドキュメントおよびサンプルアプリケーションを公開しています。
    https://maia.alesinfiny.org/
    https://maris.alesinfiny.org/

  2. Azure AD B2C: よく寄せられる質問 (FAQ)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?