配置Postman通过OAuth 2 implicit grant获取Dynamics 365 CE Online实例的Access Token
微软动态CRM专家罗勇 ,回复335或者20190516可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me.
对于测试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 ,我这里只提不一样的。
然后再增加API permission,如下:
权限选择如下:
选择完毕后界面如下:
还需要为该App在 Authentication 页面选择Access tokens 并保存。
然后打开Postman,点击右上角的 Management Environments 图标,然后点击【Add】按钮。
我这里添加的参数如下,然后关闭 MANAGE ENVIRONMENTS窗体。
# | VARIABLE | INITIAL VALUE |
1 | resourceurl | https://orgd2aae10d.crm5.dynamics.com |
2 | clientid | 5a7813f0-eb2c-4dc4-9708-022dfae5a8f5 |
3 | version | 9.1 |
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 |
然后记得切换Environment 为前面步骤新建的,认证选择 OAuth 2.0 ,再点击右边的【Get New Access Token】按钮。
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 |
然后会弹出登录页面,请完成登录:
登陆后出现授权界面,当然点击【接受】按钮
然后登录窗口就会关闭,在 【MANAGE ACCESS TOKENS】窗口点击 【Use Token】按钮。
获取到的Access Token就会自动填充到Access Token这个文本框,然后我进行测试,选择GET请求类型,URL中输入 {{webapiurl}}WhoAmI ,然后点击 【Send】,会看到返回了数据,测试成功。