Important
2025 年 5 月 1 日より、Azure AD B2C は新規顧客向けに購入できなくなります。 詳細については、FAQ を参照してください。
構築するアプリケーションの種類とその基になるプラットフォームに応じて、MSAL.NET、Microsoft Identity Web、またはその両方を使用できます。
Microsoft Identity Web は、Microsoft ID プラットフォームと統合する Web アプリと Web API への認証と承認のサポートの追加を簡略化する一連の ASP.NET Core ライブラリです。 これは、ASP.NET Core、その認証ミドルウェア、および.NETのMicrosoft Authentication Library (MSAL) を結び付けた単一サーフェス API の便利なレイヤーを提供します。
次のデシジョン ツリーに従って、シナリオで MSAL.NET、Microsoft Identity Web、またはその両方が必要かどうかを判断します。
MSAL.NET を使用するタイミング
デスクトップまたはモバイル アプリを構築している。 MSAL.NET を直接使用し、パブリック クライアント アプリケーションのトークンの取得を開始します。 詳細については、次のページを参照してください。
Microsoft Identity Web を使用する
ASP.NET Core、ASP.NET OWIN、または .NET フレームワーク/.NET Core で実行されている機密クライアント アプリケーション (Web アプリ、Web API、デーモン/サービス アプリ) を構築しています。 Identity Web が提供するMicrosoftを確認します。
- Microsoft Entra ID、Azure AD B2C、および Microsoft Entra 外部 ID アプリケーションで Web アプリ経由でユーザーをサインインする
- 個人アカウントMicrosoftサポートする
- ゲスト ユーザーのサポート
- Web アプリでの増分同意と条件付きアクセス
- SameSite の処理
- "App Services 認証" と統合されます
- 機密クライアント アプリケーションの PKCE をサポート
- 分散を含む、パフォーマンスの高いトークン キャッシュ シリアライザーを提供します
- Web API を保護する (Microsoft Entra ID、Azure AD B2C、またはMicrosoft Entra 外部 IDを使用)
- 発行者 (マルチテナント 内アプリ、任意のクラウドを含む) を検証します。
- では、Web API のトークン暗号化解除証明書がサポートされます
- Web API のスコープとアプリロールを検証します
- API (CA、CAE) で
WWW-authenticateヘッダーを生成します - gRPC サービスとAzure関数を保護する
- ダウンストリーム API を呼び出す Web アプリ/API (B2C を除くグラフを含む)
- 認証とトークンを自分で管理することなく、ダウンストリーム API を呼び出します。
- graph SDK と統合され、Azure SDK
- クライアント資格情報とMicrosoftについて説明します。Identity.Web はそれらを自動的にフェッチします (たとえば、Key Vaultからの証明書や、Azure Kubernetes Service (AKS)とマネージド ID とのワークロード ID フェデレーションなど)
- ASP.NET Coreで複数の認証スキームをサポート
- 所有証明プロトコルをサポート
- 回復性 (トークン バックアップ システムのリージョントークン取得とルーティング ヒントをサポート)
新しいアプリケーションをビルドする
Project テンプレートとmsidentity-app-sync ツールを使用します。 Web MVC、Razor、Blazor サーバー、Blazorwasm 用の Web アプリ テンプレートがホストされ、ホストされていません。 すべて Microsoft Entra ID または Azure AD B2C 用。
gRPC とAzure Functions用の Web API テンプレートがあります。
ここでは、msidentity-app-sync-tool を実行する方法について説明します。これは、テナント (Microsoft Entra ID または Azure AD B2C) にMicrosoft ID プラットフォーム アプリケーションを作成し、ASP.NET Core アプリケーションの構成コードを更新するコマンド ライン ツールです。 このツールを使用して、既存のMicrosoft Entra アプリケーションまたは AD B2C アプリケーションAzureコードを更新することもできます。
NuGet で使用できます。
既存のアプリに認証を追加しているか、ADAL から移行しています
アプリを更新するために必要なコードMicrosoft Identity Web から取得するだけです。 次に例を示します。
ハイブリッド モデル (MSAL.NET と Microsoft Identity Web) を使用するタイミング
機密クライアント アプリケーション用の SDK を構築しており、低レベルの API MSAL.NET 使用したいと考えています。 MSAL.NET では、メモリ内トークン キャッシュが既定で提供されますが、Web アプリまたは Web API の場合、キャッシュは、正しくパーティション分割する必要があるため、パブリック クライアント アプリケーション (デスクトップまたはモバイル アプリ) の場合とは異なる方法で管理する必要があります。 分散キャッシュ、(Redis、Cosmos、SQL Server、メモリ キャッシュに分散など)、メモリ キャッシュに正しくパーティション分割されたトークン キャッシュ シリアライザーを利用することを強くお勧めします。
トークン キャッシュ シリアライザーを使用すると、キャッシュがストレージと MSAL のメモリ間でスワップされるため、使用されるキャッシュ キーに応じてトークン キャッシュをパーティション分割します。 このキャッシュ キーは、使用するフローの関数として MSAL.NET によって計算されます
Microsoftが必要な理由。Identity.Web.TokenCache?
Microsoft。Identity.Web.TokenCache では、トークン キャッシュのシリアル化が提供されます。 詳細については、 トークン キャッシュのシリアル化 に関するページを参照してください。
Web アプリと Web API にトークン キャッシュを使用する方法の例については、フェーズ 2-2 トークン キャッシュの ASP.NET Core Web アプリのチュートリアルを参照してください。 実装については、Microsoftの TokenCacheProviders フォルダーを参照してください。Identity.Web リポジトリ。
Microsoft Identity Web は、証明書の読み込みにも役立ちます。