使用Postman访问OAuth2保护的WebAPI

Posted WesChan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Postman访问OAuth2保护的WebAPI相关的知识,希望对你有一定的参考价值。

需要使用Postman访问WebAPI时,需要使用三个步骤

1.创建Azure AD应用

2.生成Token

3.Postman根据生成的Token调用WebAPI

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

一、创建Azure AD应用

进入至Azure控制台页面,选择“Azure Active Directory”

技术分享

选择“应用注册”

技术分享

选择新应用“程序注册”

技术分享

在创建的窗口输入应用的“名称”及“登陆URL”,这里面的地址是预先输入的,使用的是3006端口,这个3006端口后面会用到

技术分享

创建的应用程序中,基本的属性

技术分享

创建了一个应用,但是这个应用却没有任何权限,需要加入访问后台API的权限

选择“所需权限”后,点击“添加”,出现了“选择API”后,输入后台的API的关键字,并点击下方的“选择”按钮

我们这里选择的是“Designer Workbench (DEV) - Backend”

技术分享

选择了API后,需要选择权限,当出现的权限列表后,勾选权限,确定即可

技术分享

除了“所需权限”外,我在此演示的是通过创建一个密钥,然后就不需要登陆,直接可以获取到Token

点击“密钥”,输入“描述”,并选择“到期”为“永不过期”,点击“保存”

技术分享

保存过后,生成的密钥请复制至电脑并保存,后面会需要用到

g+IisbGtjKqwQCz6GxO9Tw01ca59MxI8YLFE3WEudwY=

技术分享

二、生成Token

在电脑中新建文件夹“token-test”

技术分享

在文件夹运行命令“npm install -g express”,全局安装express

技术分享

使用"express token-test"生成一个nodejs的项目,完成后,会在空文件夹下面再生成一个token-test文件夹,

进入至token-test中,使用命令“npm install”安装所有的依赖包

并使用命令"npm install --save adal-node"安装adal依赖包

并使用visual studio code打开项目

技术分享

在“/bin/www”文件中修改端口号为之前项目的3006端口

技术分享

在修改代码之前,需要查询到后台API的URI地址

技术分享

查询到后台API的URI后,复制待用

技术分享

修改"routes/index.js"代码为

这里解析一下各个参数的意思

tenant: ‘esquel.onmicrosoft.com‘ :意思是接入Azure服务的域名

authorityHostUrl: ‘https://login.windows.net‘,:这个登陆地址是固定的

clientId: ‘7e3fbc01-eda8-41de-bd80-a5a208fa12a2‘,:是新加入的AzureAD应用的应用ID

clientSecret: ‘g+IisbGtjKqwQCz6GxO9Tw01ca59MxI8YLFE3WEudwY=‘:新加入的AzureAD应用的密钥

var resource = ‘https://esquel.onmicrosoft.com/705cadd7-d8b2-44f7-9c28-3841c112f04b‘;:后台API应用的URI

技术分享

另外修改“views/index.jade”代码为

技术分享

运行命令“npm start”运行项目,并打开浏览器,输入地址“http://localhost:3006”

技术分享

 

 

三、Postman调用WebAPI

如chrome浏览器还没有安装postman的,先安装postman

https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?utm_source=chrome-ntp-icon

安装postman后

技术分享

正常未使用token时,是无法访问的

技术分享

如在header的Authorization设置为"Bearer"+空格+token,即可访问到API

技术分享

以上是关于使用Postman访问OAuth2保护的WebAPI的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Postman 的 Oauth2 中使用 id_token 而不是 access_token?

如何在 Postman 集合中保留 OAuth2 令牌(或使用刷新令牌)?

使用Spring Security登录认证,通过Oauth2.0开发第三方授授权访问资源项目详解

如何保护来自iframe的Oauth2隐式流

在 Postman 中为受 Azure AD B2C 保护的 Azure Function App 请求访问令牌

Spring oauth2 指定受保护和不受保护的资源