这是我的第335篇原创文章,写于20190516。

对于测试Web API, Get 类型,不需要设定特别request header的还好,登录系统后直接在浏览器中即可测试。

但是对于其他请求就不是很好做,本文就是要解决这些问题,环境设置请参考官方文档: Set up a Postman environment ,本文还参考了官方文档: Microsoft identity platform and Implicit grant flow

首先需要注册一个Azure Active Directory的App,可以参考我前面的博文:Dynamics 365 Online通过OAuth 2 Client Credential授权(Server-to-Server Authentication)后调用Web API ,我这里只提不一样的。

配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365


然后再增加API permission,如下:

配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_02


权限选择如下:

配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_03


配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_04


选择完毕后界面如下:

配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_05


还需要为该App在 Authentication 页面选择Access tokens 并保存。

配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_06


然后打开Postman,点击右上角的 Management Environments 图标,然后点击【Add】按钮。

配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_07


我这里添加的参数如下,然后关闭 MANAGE ENVIRONMENTS窗体。

#

VARIABLE

INITIAL VALUE

1

resourceurl

https://orgd2aae10d.crm5.dynamics.com

2

clientid

5a7813f0-eb2c-4dc4-9708-022dfae5a8f5

3

version

9.2

4

webapiurl

{{resourceurl}}/api/data/v{{version}}/

5

callback

https://localhost

6

tenantid


7a789d88-dad0-4a6c-aa55-11046610ad54

7

authurl

https://login.microsoftonline.com/{{tenantid}}/oauth2/v2.0/authorize

如果是中国大陆版本,请使用:

https://login.partner.microsoftonline.cn/{{tenantid}}/oauth2/v2.0/authorize


配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_08


 然后记得切换Environment 为前面步骤新建的,认证选择 OAuth 2.0 ,再点击右边的【Get New Access Token】按钮。

配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_09


Token Name 取有意义的名字即可,Grant Type选择Implict,Callback URL, Auth URL和Client ID的值设置为前面步骤的变量名如下,然后点击【Request Token】按钮。

# 

Field Name

Field Value

1

Token Name

cdstoken ,此字段值有意义即可

2

Grant Type

Implicit

3

Callback URL

{{callback}}

4

Auth URL

{{authurl}}

5

Client ID

{{clientid}}

6

Scope

{{resourceurl}}/user_impersonation

7

State

为空不变

8

Client Authentication

Send as Basic Auth Header


配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_10


然后会弹出登录页面,请完成登录:

配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_11


登陆后出现授权界面,当然点击【接受】按钮

配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_12


然后登录窗口就会关闭,在 【MANAGE ACCESS TOKENS】窗口点击 【Use Token】按钮。


配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_13


获取到的Access Token就会自动填充到Access Token这个文本框,然后我进行测试,选择GET请求类型,URL中输入 {{webapiurl}}WhoAmI ,然后点击 【Send】,会看到返回了数据,测试成功。

配置Postman通过OAuth 2 implicit grant获取D365数据_Dynamics 365_14

 这个Access Token是可以解密查看其中内容的,请使用网址 https://jwt.ms/ 进行查看解密后的内容。

不同区域的Azure AD认证终结点不一样,具体请参考官方文档:National clouds