我正在使用webapi并尝试设置应用配置以进行正确的签名验证 的 WindowsAzureActiveDirectoryBearerAuthenticationOptions
我注意到 MetadataAddress 字段未在网上和AAD身份验证示例中的几个示例中使用:https://github.com/AzureADSamples/NativeClient-WebAPI-MultiTenant-WindowsStore/blob/master/TodoListServiceMT/App_Start/Startup.Auth.cs
当我启动应用时,我注意到即使未设置字段,也会在应用启动时向https://login.windows.net/common/federationmetadata/2007-06/federationmetadata.xml发出请求。这是MetadataAddress的默认值吗?
答案 0 :(得分:0)
选项中传递的租户参数足以让中间件确定相应Azure AD租户的元数据文档的位置。在多租户应用程序的情况下,正如您所观察到的那样,价值很常见。在多租户样本中,您可以看到有自定义逻辑接管发行者的验证(您称之为“sts地址” - 这更像是一个标识符)。正如您在链接的文件中看到的那样,这些选项会通过开关ValidateIssuer = false
关闭颁发者验证。如果您查看https://github.com/AzureADSamples/NativeClient-WebAPI-MultiTenant-WindowsStore/blob/master/TodoListServiceMT/AuthorizationFilters/MTAuthorizeAttribute.cs,您将看到它执行的逻辑意味着将传入令牌中的颁发者与受信任颁发者列表进行比较。您自己的应用程序可能具有不同的业务逻辑,用于确定是否应该信任传入令牌的颁发者。