桌面应用中的身份验证
首次尝试使用新连接器连接到数据源时,系统可能会要求选择访问数据时要使用的身份验证方法。 选择身份验证方法后,不会要求你再次使用指定的连接参数为连接器选择身份验证方法。 但是,如果需要稍后更改身份验证方法,可以执行此操作。
选择身份验证方法
不同的连接器显示不同的身份验证方法。 例如,Power BI Desktop 和 Excel 中的 OData 源连接器将显示以下身份验证方法对话框。
如果使用联机应用中的连接器(如 Power BI 服务或 Power Apps),Power Query 将显示 OData 源连接器的身份验证方法对话框,如下图所示。
正如您所见,由一个在线应用程序呈现了一系列不同的身份验证方法。 此外,在联机应用中,某些连接器可能要求输入本地数据网关的名称,以便能够连接到数据。 有关 Power Query Online 中的身份验证的详细信息,请转到 Power Query Online中的
设置身份验证方法的级别
在需要输入 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 中编辑身份验证方法,请执行以下操作:
执行下列操作之一:
在 Power BI Desktop 的“文件”选项卡上,选择“选项和设置”>数据源设置。
在 Excel 的“数据”选项卡上,选择 “获取数据>数据源设置”。
在 数据源设置 对话框中,选择 全局权限,选择要更改权限设置的数据源,然后选择 编辑权限。
在“编辑权限”对话框中,在“凭据”下选择“编辑”。
将凭据更改为数据源所需的类型,选择 保存,然后选择 确定。
还可以通过为所选数据源选择 清除权限,或为列出的所有数据源选择 清除所有权限 来删除步骤 3 中特定数据源的凭据。
使用 Web 和 OData 连接器通过 Microsoft Entra ID 进行连接
当连接到需要通过 OAuth 或 Microsoft基于 Entra ID 的身份验证进行身份验证的数据源和服务时,在某些情况下,如果服务配置正确,则可以使用内置的 Web 或 OData 连接器进行身份验证和连接到数据,而无需特定于服务或自定义连接器。
本部分概述了服务未正确配置时的连接症状。 它还提供有关在正确配置服务时,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
。
使用 OData 连接器在“获取数据”体验中输入 URL。
选择 组织帐户,然后选择 登录 以继续使用 OAuth 进行连接。
请求成功,OAuth 流继续允许你成功进行身份验证。
在上述步骤 2 中选择“登录”时,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
然后,该服务应返回一个 401 响应,其中包含 WWW-Authenticate 标头,指示要使用的 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 | Power Query for Excel | 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 中使用的机密客户端。 |