如何在创建JWTBearerAuthenticationOptions时添加受众?

时间:2017-04-26 11:43:34

标签: c# asp.net-web-api oauth-2.0 jwt

我正在使用oauth2和jwt令牌保护我的公共API。我有auth服务器配置为发出jwt令牌,但我正在努力实现'ConfigureOAuthTokenConsumption'方法。

此代码与我目前使用的代码非常相似,仅供参考:

private static void ConfigureOAuthTokenConsumption(IAppBuilder app)
{
    var issuer = _baseUrl; // The URL of the service issuing the JWT Token. 
    var audienceRepo = ActiveKernel.Get<IAudienceRepo>();
    var validAudiences = audienceRepo.Get();

    List<string> allowedAudienceIds = new List<string>();
    List<IIssuerSecurityTokenProvider> providers = new List<IIssuerSecurityTokenProvider>();

    // Build the list of valid audiences and keys
    foreach (var validAudience in validAudiences)
    {
        allowedAudienceIds.Add(validAudience.ClientId.ToString().ToUpper());
        providers.Add(new SymmetricKeyIssuerSecurityTokenProvider(issuer, TextEncodings.Base64Url.Decode(validAudience.ClientSecret)));
    }



    // Api controllers with an[Authorize] attribute will be validated with JWT
    app.UseJwtBearerAuthentication(
        new JwtBearerAuthenticationOptions
        {
            AuthenticationMode = AuthenticationMode.Active,
            AllowedAudiences = allowedAudienceIds.ToArray(),
            IssuerSecurityTokenProviders = providers.ToArray()
        });
}

在这种方法中,我正在加载所有观众,这对于已有的观众来说非常有用。如果在我的服务器上注册了新的受众,则在重新启动应用程序之前,他们将无法访问。

如何在创建JWTBearerAuthenticationOptions时添加受众群体?

0 个答案:

没有答案