我创建了一个带有 OWIN 中间件的 WebAPI OData 3.0 Web 服务,该中间件配置为使用 Windows Azure Active Directory 进行身份验证。ODataControllers 用[Authorize]
属性标记,IAppBuilder 配置如下:
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = ConfigurationManager.AppSettings["ida:Tenant"],
TokenValidationParameters = new TokenValidationParameters {
ValidAudience = ConfigurationManager.AppSettings["ida:Audience"]
},
});
ida:Tenant
是我的 Windows Azure 租户,ida:Audience
是 App ID Uri。
现在我想使用 Excel PowerQuery 使用此服务,使用 AzureAD 中的帐户进行身份验证。但是,当我选择“组织帐户”并尝试“登录”时,我收到以下错误:
无法连接。此资源不支持此凭据类型。
在 Fiddler 中,我可以看到请求是使用 Bearer 标头发出的,但它是空的。
我想实现类似于查询 AzureAD Graph 时的行为。
例如,如果我尝试使用https://graph.windows.net/.onmicrosoft.com/users?api-version=2013-04-05,则会打开一个单点登录窗口,在 Fiddler 中我可以看到一个令牌被传递。
我怎样才能实现这种行为?我错过了什么?
谢谢!