首頁 > 後端開發 > C++ > 如何在 ASP.NET Core 2 中實作多個 JWT 承載身份驗證方案?

如何在 ASP.NET Core 2 中實作多個 JWT 承載身份驗證方案?

Mary-Kate Olsen
發布: 2025-01-12 06:52:43
原創
868 人瀏覽過

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」和「自訂」)使用一次。 在每個呼叫中,指定特定於每個 JWT 頒發者的 AuthorityTokenValidationParameters

修改預設授權策略

預設的身份驗證策略需要更新以適應多種方案。 使用AddAuthorization設定策略,包括DefaultPolicy。 確保「Firebase」和「自訂」方案均包含在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板