我有一个为.net标准2.0框架(不是.net核心)构建的Web API应用程序,该应用程序为单个颁发者配置了oAuth2安全性。我需要添加对其他发行者的支持,以便该API可以处理两种JWT令牌格式,并将单个API方法限制为仅一个发行者
我发现这篇出色的文章Use multiple JWT Bearer Authentication适用于.net核心,但是由于我的应用程序依赖于不支持.net核心的第三方SDK,因此无法升级我的应用程序以使用它。
我希望有一种方法可以使用.net标准做到这一点,但是到目前为止,我还没有找到任何东西(尽管有大量.net核心文章)。
示例代码:
public void ConfigureAuth(IAppBuilder app)
{
//configuration
var url = ConfigurationManager.AppSettings["url"];
var authorizationServerId = ConfigurationManager.AppSettings["authorizationServerId"];
var clientID = ConfigurationManager.AppSettings["clientId"];
var oauthIssuer = $"{url}{authorizationServerId}";
var tvps = new System.IdentityModel.Tokens.TokenValidationParameters
{
ValidAudience = clientID,
ValidateAudience = true,
ValidIssuer = oauthIssuer,
ValidateIssuer = true,
};
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
AccessTokenFormat = new JwtFormat(tvps,
new OpenIdConnectCachingSecurityTokenProvider(oauthIssuer + "/.well-known/openid-configuration")),
});
}