我的Azure Active Directory应用程序URI包含一个星号,类似于https://*.mywebapp.com"
。
AAD可以成功获取此应用的https://test.mywebapp.com
资源的令牌。
在服务方面,我正在使用OWIN和WindowsAzureActiveDirectoryBearerAuthenticationOptions
来验证令牌。
问题是不支持使用星号指定受众。
使用以下代码,对于具有受众https://test.mywebapp.com
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = c_azureActiveDirectoryTenant,
TokenValidationParameters = new TokenValidationParameters
{
ValidAudiences = new[] { "https://*.mywebapp.com" },
SaveSigninToken = true,
},
});
查看GitHub上的AudienceValidator
和IssuerValidator
代码,我可以很容易地理解原因 - 代码比较完全字符串。我希望代码尊重通配符,这是设计还是只是一个bug?任何解决方法?
答案 0 :(得分:3)
您可以通过设置TokenValidationParameters.AudienceValidator委托来控制AudienceValidation。然后,您可以做任何您需要做的事情。