如何使用.net-standard配置多个JWT承载令牌授权

时间:2019-05-15 13:07:59

标签: c# asp.net-mvc asp.net-core owin-middleware

我有一个为.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")),
        });
    }

0 个答案:

没有答案