Microsoft。Identity.Web は、Microsoft Entra IDなど、Microsoft ID プラットフォームと統合されるアプリケーションへの認証と承認の追加を簡略化するライブラリのセットです。 以下がサポートされています。
- .NET Aspire 分散アプリケーション
- ASP.NET Core Web アプリケーションと Web API
- .NET Framework 上の OWIN アプリケーション
- .NET デーモン アプリケーションとバックグラウンド サービス
ユーザーをサインインする Web アプリ、トークンを検証する Web API、保護された API を呼び出すバックグラウンド サービスのいずれを構築する場合でも、Microsoft。Identity.Web は、認証の複雑さを自動的に処理します。
Microsoft Identity Web を使用する理由
Microsoft。Identity.Web は定型コードを減らし、一般的な ID シナリオに対して組み込みのベスト プラクティスを提供します。 主な機能は次のとおりです。
- 簡素化された認証 - ユーザーのサインインとトークンの検証のための最小限の構成
-
Downstream API 呼び出し - 自動トークン管理を使用して、Microsoft Graph、Azure SDK、または独自の保護された API を呼び出します
- トークンの取得 - ユーザーまたはアプリケーションに代わってトークンを取得する
- トークン キャッシュ管理 - Redis、SQL Server、Cosmos DB、PostgreSQL での分散キャッシュのサポート
- 複数の資格情報の種類 - 証明書、マネージド ID、および証明書レス認証のサポート
- 自動承認ヘッダー - API を呼び出すときに認証が透過的に処理される
使用可能なすべてのパッケージの概要と使用するタイミングについては、 NuGet パッケージを参照してください。
自動認証を使用して API を呼び出す
トークンを手動で管理しなくても、保護された API を呼び出すことができます。 Microsoft。Identity.Web では、次の統合パターンがサポートされています。
-
Microsoft Graph - トークンの自動取得で
GraphServiceClientを使用する -
Azure SDK - Microsoft.Identity.Webと統合された
TokenCredential実装を使用します。 -
独自の API - シームレスな API 呼び出しに
IDownstreamApiまたはIAuthorizationHeaderProviderを使用する - エージェント ID - 自動資格情報処理を使用してマネージド ID またはサービス プリンシパルに代わって API を呼び出す
認証ヘッダーは要求に自動的に追加され、トークンは透過的に取得およびキャッシュされます。 詳細については、ダウンストリーム API、デーモン アプリケーション、およびエージェント ID ガイドの呼び出しを参照してください。
構成方法
Microsoft.Identity.Web は設定ファイルを通じて、またはプログラムによって構成できます。 どちらの方法でも、すべての認証シナリオがサポートされます。
ファイル別の構成 (推奨)
appsettings.jsonで認証を構成します。
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "your-tenant-id",
"ClientId": "your-client-id"
}
}
Important
デーモン アプリとコンソール アプリケーションの場合は、 appsettings.json ファイルが出力ディレクトリにコピーされていることを確認します。 Visual Studioで、出力ディレクトリにコピー プロパティを 最新の場合はコピー または 常にコピー に設定するか、次の内容を .csproj に追加します。
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
コードによる構成
または、アプリケーションのスタートアップ コードで認証を直接構成します。
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(options =>
{
options.Instance = "https://login.microsoftonline.com/";
options.TenantId = "your-tenant-id";
options.ClientId = "your-client-id";
});
次の手順
アプリケーションに一致するシナリオを選択します。
- Web アプリ - ユーザーのサインイン - ASP.NET Core Web アプリケーションに認証を追加する
- Web API - API の保護 - ベアラー トークンを使用して ASP.NET Core Web API をセキュリティで保護する
- デーモン アプリ - API を呼び出す - 保護された API を呼び出すバックグラウンド サービスを構築する