前言

平时习惯使用 Postman、Apifox 等 API 测试工具来测试 Web 服务,这样方便调试接口,Dynamics 365 也提供有许多标准的接口,今天我来试试使用 Apifox 连接到 Dynamics 365,尝试使用标准的接口。

先决条件:

  1. 你是 “管理员” 用户,否则无法访问 Azure Active Directory 门户
  2. 安装有 API 测试工具,如 Postman、Apifox 等

详细步骤

1. 获取 ClientId 和 ClientSecret

Step 1. 注册应用

(1)访问并登录 Azure Portal.

(2)在顶部的搜索框,搜索 “ 应用注册 ” 并点击它
注册应用-01

注册应用-01

(3)点击 “新注册”
注册应用-02

注册应用-02

(4)在弹出的页面输入一个有意义的应用程序名称(例如:D365-GetClientSecret) –> 勾选受支持的账号类型 –> 点击 “注册” 按钮
注册应用-03

注册应用-03

Step 2. 获取 ClientId

[!TIP]
ClientSecret 是一个密码性质的秘钥,可以有效防止未经授权的访问。相比使用用户名和密码,ClientSecret 可以提供更加安全的身份验证方式,降低数据泄露的风险。

完成 Step 1. 之后,我们可以从 “概览” 找到 应用程序 ID (ClientId) , 把它拷贝到记事本,等会用到。

获取 ClientId

获取 ClientId

2. 为应用设置 ①身份验证、②配置文件、③API权限

Step 1. 添加 身份验证

身份验证 –> “ + 添加平台 ” –> 选择 Web
添加身份验证-01

添加身份验证-01

填写 http://localhost –> 勾选 “ 访问令牌(用于隐式流) ”
添加身份验证-02

添加身份验证-02

Step 2. 修改 “清单” 配置文件

将如下 2 个属性,设置为 true 并保存。

  1. AllowPublicClient
  2. oauth2AllowImplicitFlow

修改 “清单” 配置文件

修改 “清单” 配置文件

Step 3. 添加 API权限

(1)API 权限设置 –> “ + 添加权限 ”
添加 API权限 - 01

添加 API权限 - 01

(2)“ 我的组织使用的 API ” –> 搜索 Dataverse –> 选择 Dataverse
添加 API权限 - 02

添加 API权限 - 02

[!TIP]
如果你在 Microsoft API 中能搜索到 Dynamics CRM ,则 选择 Dynamics CRM ,如果没有的话就按照上面的步骤,选择 Dataverse
添加 API权限 - 03
添加 API权限 - 03

(3)选择 委托的权限 –> 勾选权限 –> 添加权限
添加 API权限 - 04

添加 API权限 - 04

3. Postman 连接测试

(1)新建 Collection,并为 Collection 取一个有意义的名称,例如:using-postman-call-crm

Postman 新建 Collection

Postman 新建 Collection

(2)新建 Environment

Postman 新建 Environment

Postman 新建 Environment

(3)为 Environment 添加环境变量:

  1. url :你的 CRM 环境 URL
  2. clientid :你的应用程序的 ClientId,即上面步骤的 “Step 2. 获取 ClientId
  3. version9.0
  4. webapiurl{{url}}/api/data/v{{version}}/
  5. callbackhttp://localhost
  6. authurlhttps://login.partner.microsoftonline.cn/common/oauth2/authorize?resource={{url}}
如果你是 Global 版,authurl 变量的值请使用 https://login.microsoftonline.com/common/oauth2/authorize?resource={{url}}

Postman 添加环境变量

Postman 添加环境变量

(4)新建请求

Postman 新建请求

Postman 新建请求

(6)为“请求” 配置获取Token信息

  • Auth Type 选择 Oauth 2.0
  • Add authorization data to 选择 Request Head
  • Token Name 取个有意义的名称
  • Grant Type 选择 Implicit
  • Callback URL 填写 {{callback}}
  • Auth URL 填写 {{authurl}}
  • Client ID 填写 {{clientid}}
  • Client Authentication 选择 Send as Basic Auth header

Postman 为 请求配置获取 Token 信息

Postman 为 请求配置获取 Token 信息

点击 Get New Access Token 后会弹出登录框,填写自己的账号、密码后就可以获取到 Token 信息了。

Postman 获取Token

Postman 获取Token