과제: ASP.NET Core 2 내에서 다양한 JWT 토큰 발급자를 사용하여 여러 외부 서비스에서 API 액세스를 활성화하려면 어떻게 해야 합니까? 특히 Firebase와 맞춤 JWT 공급자 모두의 인증을 지원해야 합니다.
해결책: ASP.NET Core의 유연성 덕분에 여러 인증 체계를 구성할 수 있으므로 다양한 JWT 소스에서 인증이 가능해집니다. 방법은 다음과 같습니다.
일반적인 실수는 매개변수 없이 AddAuthentication
을 호출하는 것입니다. 여러 인증 체계의 경우 체계 이름을 나타내는 문자열 매개변수를 허용하는 오버로드를 사용해야 합니다.
AddJwtBearer
을 각 인증 체계(예: 'Firebase' 및 'Custom')에 대해 한 번씩 여러 번 활용하세요. 각 호출 내에서 각 JWT 발급자에 특정한 Authority
및 TokenValidationParameters
를 지정합니다.
다양한 체계를 수용하려면 기본 인증 정책을 업데이트해야 합니다. AddAuthorization
을 포함한 정책을 구성하려면 DefaultPolicy
을 사용하세요. DefaultPolicy
에 "Firebase" 및 "Custom" 구성표가 모두 포함되어 있는지 확인하세요.
이 예는 올바른 구성을 보여줍니다.
<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 버전에서는 AddAuthentication
에 기본 인증 체계를 지정해야 합니다.
위 내용은 ASP.NET Core 2에서 여러 JWT 전달자 인증 체계를 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!