首次尝试使用新连接器连接到数据源时,系统可能会要求选择访问数据时要使用的身份验证方法。 选择身份验证方法后,不会要求你再次使用指定的连接参数为连接器选择身份验证方法。 但是,如果需要稍后更改身份验证方法,可以执行此操作。
选择身份验证方法
不同的连接器显示不同的身份验证方法。 例如,Power BI Desktop 和 Excel 中的 OData 源连接器显示以下身份验证方法对话框。
如果使用联机应用中的连接器(例如Power BI 服务或Power Apps),Power Query将显示 OData 源连接器的身份验证方法对话框,如下图所示。
正如您所见,由一个在线应用程序呈现了一系列不同的身份验证方法。 此外,在联机应用中,某些连接器可能要求输入本地数据网关的名称,以便能够连接到数据。 有关 Power Query Online 中的身份验证的详细信息,请转到 Power Query Online 中的 Connections 和身份验证。
设置身份验证方法的级别
在需要输入 URL 的连接器中,系统会要求你选择应用身份验证方法的级别。 例如,如果选择 URL 为 https://contoso.com/2020data/List_of_countries_and_capitals的 Web 连接器,则身份验证方法的默认级别设置 https://contoso.com。
您为此连接器选择的身份验证方法的级别决定了身份验证方法应用于 URL 中哪个部分。 如果选择顶级 Web 地址,则为此连接器选择的身份验证方法将用于该 URL 地址或该地址中的任何子地址。
但是,你可能不希望将顶级地址设置为特定的身份验证方法,因为不同的子地址可能需要不同的身份验证方法。 例如,您可以尝试访问同一个SharePoint站点的两个不同文件夹,并且希望每一个都使用不同的Microsoft帐户进行访问。
为连接器的特定地址设置身份验证方法后,无需再次使用该 URL 地址或任何子地址为该连接器选择身份验证方法。 例如,假设你选择 https://contoso.com/ 地址作为希望 Web 连接器 URL 设置应用到的级别。 每当使用 Web 连接器 访问以此地址开头的任何网页时,就不需要再次选择身份验证方法。
更改身份验证方法
通常,当Power Query识别一组连接设置时,它会尝试在其各自的凭据存储中查找,以查看是否存在与这些设置匹配的连接,如果是,则会自动选择该连接。 但是,在某些情况下,可能需要更改连接器中用于访问特定数据源的身份验证方法。
若要在 Power BI Desktop 或 Excel 中编辑身份验证方法,请执行以下操作:
执行下列操作之一:
在 数据源设置 对话框中,选择 全局权限,选择要更改权限设置的数据源,然后选择 编辑权限。
在“编辑权限”对话框中,在“凭据”下选择“编辑”。
将凭据更改为数据源所需的类型,选择 保存,然后选择 确定。
还可以通过为所选数据源选择 清除权限,或为列出的所有数据源选择 清除所有权限 来删除步骤 3 中特定数据源的凭据。
使用 Web 和 OData 连接器连接到Microsoft Entra ID
当连接到需要通过 OAuth 进行身份验证或基于Microsoft Entra ID身份验证的数据源和服务时,在某些情况下,可以使用内置 Web 或 OData Feed 连接器进行身份验证并连接到数据,而无需特定于服务或自定义连接器。
本部分概述了服务未正确配置时的连接症状。 它还提供有关正确配置服务时Power Query如何与服务交互的信息。
服务未正确配置时出现症状
你可能会遇到错误 :无法连接,因为此资源不支持此凭据类型。请选择其他凭据类型。 此错误意味着服务不支持身份验证类型。
可能出现此错误的一个示例是在 Northwind OData 服务中。
使用 OData 连接器在“获取数据”界面中输入 Northwind 终结点。
选择“确定”以进入身份验证体验。 通常,由于 Northwind 不是经过身份验证的服务,因此只需使用 Anonymous。 若要演示对Microsoft Entra ID缺乏支持,请选择 组织帐户,然后选择 登录。
遇到错误,指示服务不支持 OAuth 或Microsoft Entra ID身份验证。
支持的工作流
支持的服务在 OAuth 中正常工作的一个示例是 CRM,例如,https://contoso.crm.dynamics.com/api/data/v8.2。
在上述步骤 2 中选择 Sign-in时,Power Query使用具有空持有者令牌的授权标头向提供的 URL 终结点发送请求。
GET https://contoso.crm.dynamics.com/api/data/v8.2 HTTP/1.1
Authorization: Bearer
User-Agent: Microsoft.Data.Mashup (https://go.microsoft.com/fwlink/?LinkID=304225)
Host: pbi.crm.dynamics.com
Connection: Keep-Alive
然后,该服务应返回带有 WWW-Authenticate 标头的 401 响应,其中指明要使用的 Microsoft Entra ID 授权 URI。 此响应应包括要登录的租户;如果资源未与特定租户关联,则为 /common/ 。
HTTP/1.1 401 Unauthorized
Cache-Control: private
Content-Type: text/html
Server:
WWW-Authenticate: Bearer authorization_uri=https://login.microsoftonline.com/3df2eaf6-33d0-4a10-8ce8-7e596000ebe7/oauth2/authorize
Date: Wed, 15 Aug 2018 15:02:04 GMT
Content-Length: 49
然后,Power Query可以针对 authorization_uri 启动 OAuth 流。 Power Query请求与所请求的 URL 域相等的Microsoft Entra ID资源或受众值。 此值是您在 API/服务注册中用于 Azure 应用程序 ID URL 的值。 例如,如果访问 https://api.myservice.com/path/to/data/api,Power Query 期望您的应用程序 ID URL 值等于 https://api.myservice.com。
如果需要对 OAuth 流进行更多控制(例如,如果服务必须响应 302 而不是 401),或者应用程序的应用程序 ID URL 或Microsoft Entra ID资源值与服务的 URL 不匹配,则需要使用自定义连接器。 有关使用我们内置的 Microsoft Entra ID 身份验证流程的详细信息,请转到 Microsoft Entra ID 身份验证。
Microsoft Entra ID客户端 ID
Power Query使用以下Microsoft Entra ID客户端 ID。 可能需要根据整体 Microsoft Entra ID 的设置显式允许这些客户端 ID 访问您的服务和 API。 有关更多详细信息,请前往步骤 6:添加范围。
| 客户 ID | 标题 | 描述 |
|---|---|---|
| a672d62c-fc7b-4e81-a576-e60dc46e951d | Excel 中的 Power Query | Power BI Desktop 和网关中使用的公共客户端。 |
| b52893c8-bc2e-47fc-918b-77022b299bbc | Power BI数据刷新 | 机密客户端,用于 Power BI 服务。 |
| 7ab7862c-4c57-491e-8a45-d52a7e023983 | Power Apps和Power Automate | 机密客户端,用于Power Apps和Power Automate。 |