ホームページ > バックエンド開発 > C++ > ASP.NET Core で複数の JWT 発行者をサポートするにはどうすればよいですか?

ASP.NET Core で複数の JWT 発行者をサポートするにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-12 06:23:44
オリジナル
252 人が閲覧しました

How to Support Multiple JWT Issuers in ASP.NET Core?

ASP.NET Core 2 での複数の JWT 発行者の処理

このガイドでは、外部 API やカスタム認証システムなど、さまざまなソースからの JWT を使用してリクエストを認証するように ASP.NET Core 2 を構成する方法を説明します。 標準の ASP.NET Core JWT Bearer 認証は通常、単一の機関をサポートしますが、この制限はマルチスキームのアプローチで克服できます。

構成手順

複数の JWT 発行者のサポートを実装するには、次の重要な手順が必要です。

  1. デフォルトのスキームを指定せずに AddAuthentication ミドルウェアを追加します。
  2. AddJwtBearer を使用して各認証スキームを定義し、それぞれに一意の名前を割り当てます。各スキームの AuthorityTokenValidationParameters を個別に設定します。
  3. 設定されているすべての認証スキームを受け入れるようにデフォルトの認可ポリシーを変更します。

この構成を示すコード例は次のとおりです。

<code class="language-csharp">services
    .AddAuthentication()
    .AddJwtBearer("Firebase", options =>
    {
        options.Authority = "https://securetoken.google.com/my-firebase-project";
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuer = true,
            ValidIssuer = "my-firebase-project",
            ValidateAudience = true,
            ValidAudience = "my-firebase-project",
            ValidateLifetime = true
        };
    })
    .AddJwtBearer("Custom", options =>
    {
        // Custom JWT token configuration
    });

services
    .AddAuthorization(options =>
    {
        options.DefaultPolicy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .AddAuthenticationSchemes("Firebase", "Custom")
            .Build();
    });</code>
ログイン後にコピー

高度な考慮事項とトラブルシューティング

  • 複雑な認可が必要な場合は、ポリシーベースの認可を活用します。
  • .NET Core 6 以降では、デフォルトの認証スキームを明示的に設定することを忘れないでください。
  • IDX10501 エラーは、多くの場合、システムのポリシー評価順序によって発生します。 ポリシー構成を注意深く確認することが重要です。

この方法を使用すると、ASP.NET Core 2 アプリケーション内で複数の JWT 発行者からの認証と承認をシームレスに統合できます。

以上がASP.NET Core で複数の JWT 発行者をサポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート