首頁 >後端開發 >C++ >如何在 ASP.NET Core 中支援多個 JWT 令牌頒發者?

如何在 ASP.NET Core 中支援多個 JWT 令牌頒發者?

DDD
DDD原創
2025-01-12 07:03:43808瀏覽

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

ASP.NET Core 中的多頒發者 JWT 驗證

本指南示範如何透過定義單獨的驗證方案來設定 ASP.NET Core 以使用多個 JWT 令牌頒發者進行驗證。

配置多位發行者

建立自訂 JWT 承載方案:

<code class="language-csharp">services.AddAuthentication("Custom")
    .AddJwtBearer("Custom", options =>
    {
        // Custom issuer configuration...
    });</code>

調整授權政策

若要使用 Firebase 和您的自訂方案啟用驗證,請修改預設授權策略:

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

JWT 承載選項配置

為每個驗證方案指定 JWT 承載選項:

<code class="language-csharp">services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .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
        };
    });</code>

重要注意事項

  • ASP.NET Core 6 :預設驗證方案是強制性的。
  • 驗證失敗:在使用多個方案時適當處理IDX10501錯誤(例如,忽略它們)。
  • 細粒度授權:實作自訂策略,以實現更精確的授權控制。

以上是如何在 ASP.NET Core 中支援多個 JWT 令牌頒發者?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn