我正在使用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时添加受众群体?