从 Dynamics CRM 2013 OData 终结点检索数据时出现“给定 URL 未指向 OData 服务或源”错误

本文可帮助你解决尝试使用基于声明的身份验证将 Power Query for Excel 连接到 Dynamics CRM 2013 Service Pack 1 On Premises 时出现的问题。

适用于:Microsoft Dynamics CRM 2013 Service Pack 1
原始 KB 编号: 3133137

症状

尝试使用基于声明的身份验证 (AD FS) 将 Power Query for Excel 连接到 Dynamics CRM 2013 Service Pack 1 本地时,指定正确的 OData 源 URL 时会出现以下错误:

无法连接
尝试连接时遇到错误。
详细信息:“OData:给定 URL 既不指向 OData 服务,也不指向源:
'https://<adfs FQDN>/adfs/ls/wia?wa=wsignin1.0&wtrealm=https://<CRMaddress>/&wctx=rm=1&id=cf10e7d7-f0c8-4685-b357-e60206c80d44&ru=%252fcontoso%252fXRMServices%252f2011%252fOrganizationData.svc%252f&wct=2015-12-30T11:22:54Z&wauth=urn:federation:authentication:windows'." ..."

原因

这是 excel Power Query的设计行为,在尝试从 Dynamics CRM 本地组织 OData 服务检索数据时,如果数据位于 AD FS 后面,并且尚未在 Dynamics CRM 和 AD FS 部署上配置 OAuth 身份验证方法。

加载项需要通过 CRM 2013 本地部署配置 OAuth2/AD FS 3.0,以允许 组织帐户 身份验证方法允许在 AD FS 上登录,并在检索 OData 服务期间将其添加到 “已批准的 AD FS 身份验证服务 ”列表中。

解决方案

引用的工作方案示例:

  • AD FS 3.0
  • 已启用基于 CRM 2013 SP1 声明
  • 具有 Excel 2013 和 Microsoft Power Query for Excel 2.27.4163.242 的客户端计算机,并已加入 Internet 连接

有关如何配置环境的分步说明:

  1. 在 AD FS 3.0 上启用基于表单的身份验证

    1. 以管理员身份登录到 AD FS 服务器。

    2. 打开 AD FS 管理向导。

    3. 单击“ 身份验证策略>”“主要身份验证>”“全局设置>”“身份验证方法>编辑”。

    4. 在“Intranet”选项卡上单击“ (检查) 基于表单的身份验证”。

    5. 重启 AD FS 服务

  2. 在 Dynamics CRM 部署上配置/允许 OAuth

    1. 以管理员身份登录到 Microsoft Dynamics CRM 服务器。

    2. Windows PowerShell控制台窗口中,运行以下脚本。

      Add-PSSnapin Microsoft.Crm.PowerShell
      
      $fedurl = Get-CrmSetting -SettingType ClaimsSettings
      
      $fedurl.FederationProviderType = 1
      
      Set-CrmSetting $fedurl
      
    3. 运行 IISReset 命令

  3. 将客户端应用程序 (Excel 注册到Power Query加载项载入)

    1. 以管理员身份登录到 AD FS 服务器。

    2. PowerShell 窗口中,执行以下命令。

      Add-AdfsClient -ClientId "a672d62c-fc7b-4e81-a576-e60dc46e951d" -Name "Microsoft Power BI" -RedirectUri @("https://de-users-preview.sqlazurelabs.com/account/reply/", "https://preview.powerbi.com/views/oauthredirect.html") -Description "ADFS OAuth 2.0 client for Microsoft Power BI"
      
  4. 为 Excel 配置Power Query

    1. 在客户端计算机上,打开 Excel 并打开/创建工作簿。

    2. 单击Power Query,然后在功能区的“获取外部数据”部分中,单击“从其他源”,然后选择“从 OData 源”。

    3. 指定 Dynamics CRM 组织 OData URL,然后单击“ 确定”。 根据方案) (内部或外部 URL

    4. 单击“基于 组织帐户 ”作为身份验证方法,然后单击“ 登录”。

    5. 出现提示时,单击“ 允许 ”以确认你信任 AD FS 作为 OData 源的标识提供者。

      注意

      在此阶段,具有 Excel 和Power Query的客户端计算机需要 Internet 连接才能访问 Azure @ ("https://de-users-preview.sqlazurelabs.com/account/reply/", "https://preview.powerbi.com/views/oauthredirect.html") 中托管的 PowerBI 身份验证终结点。
      AD FS 终结点将添加到“已批准的 AD FS 身份验证服务”列表中,若要访问该列表,请单击“Power Query”,然后在功能区的“设置”部分中,单击“选项”,然后单击“安全性”。

    6. 单击“连接”,将照常显示实体列表,以开始使用Power Query。