如何获取WindowsAzureActiveDirectoryBearerAuthenticationOptions以接受带星号的受众

时间:2015-07-09 12:18:22

标签: c# owin katana adal

我的Azure Active Directory应用程序URI包含一个星号,类似于https://*.mywebapp.com"。 AAD可以成功获取此应用的https://test.mywebapp.com资源的令牌。

在服务方面,我正在使用OWIN和WindowsAzureActiveDirectoryBearerAuthenticationOptions来验证令牌。 问题是不支持使用星号指定受众。

使用以下代码,对于具有受众https://test.mywebapp.com

的令牌,令牌验证将返回false
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
                new WindowsAzureActiveDirectoryBearerAuthenticationOptions
                {
                    Tenant = c_azureActiveDirectoryTenant,
                    TokenValidationParameters = new TokenValidationParameters
                    {
                        ValidAudiences = new[] { "https://*.mywebapp.com" },
                        SaveSigninToken = true,
                    },                       
                });

查看GitHub上的AudienceValidatorIssuerValidator代码,我可以很容易地理解原因 - 代码比较完全字符串。我希望代码尊重通配符,这是设计还是只是一个bug?任何解决方法?

1 个答案:

答案 0 :(得分:3)

您可以通过设置TokenValidationParameters.AudienceValidator委托来控制AudienceValidation。然后,您可以做任何您需要做的事情。