Or *_*r B 4 single-sign-on odata asp.net-web-api azure-active-directory powerquery
我创建了一个带有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中我可以看到令牌被传递.
我怎样才能实现这种行为?我错过了什么?
谢谢!
小智 6
以下是验证期间PowerQuery和OData服务之间的预期流程:
当您单击登录时,PowerQuery将向您的服务发送质询请求,这是您看到的空载者.原因是,我们不知道您的身份提供者是什么或我们应该在哪里登录,请求期望401/403响应具有认证端点URL的WWW-Authenticate头.
这是预期的标题格式:WWW-Authenticate authorization_uri ="token service uri"引号是可选的.如果我们找不到该标头,则会收到错误消息"无法连接".不支持此凭证类型'.
有关AAD中的应用程序对象有两个重要的事情可以使其工作:
| 归档时间: | 
 | 
| 查看次数: | 2685 次 | 
| 最近记录: |