> 백엔드 개발 > C++ > ASP.NET Core에서 여러 JWT 발급자를 처리하는 방법은 무엇입니까?

ASP.NET Core에서 여러 JWT 발급자를 처리하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-12 06:55:43
원래의
1012명이 탐색했습니다.

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

ASP.NET Core 2에서 여러 JWT 발급자 처리

ASP.NET Core 2는 여러 JWT 토큰 공급자 처리를 지원합니다. 이 기능은 API가 다양한 JWT 토큰 발급 메커니즘을 사용하는 외부 서비스와 통합해야 할 때 중요합니다.

이 기능을 사용하려면 다음 코드를 사용하세요.

<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 =>
    {
        // 在此处配置自定义 JWT 令牌选项
    });

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

이 코드는 여러 가지 주요 측면에서 원래 코드 조각과 다릅니다.

  1. 인증 체계 오버로드: AddJwtBearer 메서드에는 여러 오버로드가 있으며, 그 중 하나는 인증 체계 이름을 지정할 수 있습니다. 여러 시나리오가 있으므로 이 오버로드를 사용해야 합니다.
  2. 기본 인증 체계 없음: AddAuthentication 메서드는 기본 인증 체계 설정을 피하기 위해 매개변수 없이 사용됩니다. 이는 여러 인증 체계를 처리하려면 각 요청이 모든 체계를 통과해야 하기 때문입니다.
  3. 정책 업데이트: DefaultPolicy가 "Firebase" 및 "Custom" 인증 체계를 허용하도록 수정되었습니다. 이렇게 하면 인증 시스템이 두 가지 체계를 모두 사용하여 요청을 인증하려고 시도합니다.
  4. 인증 처리: AuthenticationFailed 이벤트를 처리하는 경우 첫 번째가 아닌 AddJwtBearer 정책의 경우 "IDX10501: 서명 확인 실패" 오류가 발생할 수 있습니다. 이는 시스템이 각 정책의 서명을 차례로 일치시키려고 시도하기 때문입니다.

.NET Core 6 이상에 대한 추가 참고 사항

.NET Core 6 이상에서는 기본 인증 체계를 지정해야 합니다. 따라서 다음 코드를 대신 사용하세요:

<code class="language-csharp">builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer(options =>
        {
            // Firebase 配置
        })
        .AddJwtBearer("AzureAD", options =>
        {
            // Azure AD 配置
        });

builder.Services.AddAuthorization(options =>
{
    var defaultAuthorizationPolicyBuilder = new AuthorizationPolicyBuilder(
        JwtBearerDefaults.AuthenticationScheme,
        "AzureAD");
    defaultAuthorizationPolicyBuilder =
        defaultAuthorizationPolicyBuilder.RequireAuthenticatedUser();
    options.DefaultPolicy = defaultAuthorizationPolicyBuilder.Build();
});</code>
로그인 후 복사

제공된 솔루션을 구현하면 ASP.NET Core 2 애플리케이션에서 여러 JWT 토큰 발급자를 원활하게 관리할 수 있습니다.

위 내용은 ASP.NET Core에서 여러 JWT 발급자를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿