ホームページ >バックエンド開発 >C++ >ASP.NET Core 2 で複数の JWT ベアラー認証スキームを実装するにはどうすればよいですか?

ASP.NET Core 2 で複数の JWT ベアラー認証スキームを実装するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-12 06:52:43869ブラウズ

How Can I Implement Multiple JWT Bearer Authentication Schemes in ASP.NET Core 2?

ASP.NET Core 2 での複数の JWT ベアラー認証の実装

課題: ASP.NET Core 2 内の異なる JWT トークン発行者を使用して、複数の外部サービスからの API アクセスを有効にするにはどうすればよいでしょうか? 具体的には、Firebase とカスタム JWT プロバイダーの両方からの認証をサポートする必要があります。

解決策: ASP.NET Core の柔軟性により、複数の認証スキームを構成できるため、さまざまな JWT ソースからの認証が可能になります。 その方法は次のとおりです:

AddAuthentication を正しく使用する

よくある間違いは、パラメーターを指定せずに AddAuthentication を呼び出すことです。 複数の認証スキームの場合は、スキーム名を表す文字列パラメーターを受け入れるオーバーロードを使用する必要があります。

複数の JWT ベアラー スキームの構成

AddJwtBearer を各認証スキーム (「Firebase」や「カスタム」など) ごとに 1 回ずつ、複数回使用します。 各呼び出し内で、各 JWT 発行者に固有の AuthorityTokenValidationParameters を指定します。

デフォルトの認可ポリシーの変更

複数のスキームに対応するには、デフォルトの認証ポリシーを更新する必要があります。 AddAuthorization を含むポリシーを構成するには、DefaultPolicy を使用します。 「Firebase」スキームと「Custom」スキームの両方が DefaultPolicy.

に含まれていることを確認してください。

コード例

この例は、適切な構成を示しています。

<code class="language-csharp">services
    .AddAuthentication()
    .AddJwtBearer("Firebase", options =>
    {
        // Configure Firebase JWT authentication settings here
    })
    .AddJwtBearer("Custom", options =>
    {
        // Configure Custom JWT authentication settings here
    });

services
    .AddAuthorization(options =>
    {
        options.DefaultPolicy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .AddAuthenticationSchemes("Firebase", "Custom")
            .Build();
    });</code>

高度な認可シナリオ

複雑な承認ニーズには、ポリシーベースの承認を活用します。これにより、認証スキームと要求要件を指定するポリシーを作成できます。

.NET Core 6 以降

新しい .NET Core バージョンでは、AddAuthentication でデフォルトの認証スキームを指定する必要があります。

以上がASP.NET Core 2 で複数の JWT ベアラー認証スキームを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。