我目前正在使用UseWindowsAzureActiveDirectoryBearerAuthentication来保护Web API。这在测试环境使用Azure AD身份时是很好的。
但是,生产环境将使用不同的Auth提供者(OAuth 2兼容)。
我要找的是转换以下Azure AD特定代码:
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = ConfigurationManager.AppSettings["ida:Audience"],
Tenant = ConfigurationManager.AppSettings["ida:Tenant"]
});
到更通用的东西,目前仍将与Azure AD一起工作,但将来很容易为不同的认证提供商配置。例如:
app.UseOAuthBearerAuthentication
(
new OAuthBearerAuthenticationOptions()
{
//...
}
);
后者如何实现与Azure AD一起工作,并且对于其他OAuth 2兼容的提供商来说也足够"通用"?
Oauth2没有定义访问令牌的格式。Azure AD使用JWT,并通过各种元数据文档发布其坐标,但不能保证其他提供程序也会这样做(事实上,它们大多数时候都不会这样做)。规范还不够详细,不能允许这样的通用组件。