在 ASP.NET Core 2 中处理多个 JWT 颁发者
本指南演示如何配置 ASP.NET Core 2 以使用来自各种来源(例如外部 API 或自定义身份验证系统)的 JWT 对请求进行身份验证。 虽然标准 ASP.NET Core JWT 承载身份验证通常支持单个权限,但可以通过多方案方法克服此限制。
配置步骤
实现对多个 JWT 发行者的支持涉及以下关键步骤:
AddAuthentication
中间件而不指定默认方案。AddJwtBearer
定义每个身份验证方案,为每个方案分配一个唯一的名称。分别为每个方案配置 Authority
和 TokenValidationParameters
。这是说明此配置的代码示例:
<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 => { // Custom JWT token configuration }); services .AddAuthorization(options => { options.DefaultPolicy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .AddAuthenticationSchemes("Firebase", "Custom") .Build(); });</code>
高级注意事项和故障排除
IDX10501
错误通常是由系统的策略评估顺序引起的。 仔细检查您的策略配置至关重要。此方法允许您在 ASP.NET Core 2 应用程序中无缝集成来自多个 JWT 颁发者的身份验证和授权。
以上是如何在 ASP.NET Core 中支持多个 JWT 颁发者?的详细内容。更多信息请关注PHP中文网其他相关文章!