前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Postman之授权(Authorization)

Postman之授权(Authorization)

作者头像
测试小兵
发布2019-11-07 21:17:09
10.1K0
发布2019-11-07 21:17:09
举报
文章被收录于专栏:猪圈子猪圈子

01引言

昨天在项目进行接口实战过程中,接触到了Title提及的关键词Authorization , 基于登录请求之外的任何操作进行想后台发送的请求,在request headers中都带了访问权限认证,

百度了一下这个Authorization含义与作用https://cloud.tencent.com/developer/section/1189908

02 那么它在Postman中起到什么作用呢?

其实同样的也是授权作用;授权过程就是验证我们是否有权限从服务器访问所需的数据。发送请求时,通常必须包含参数以确保请求有权访问并返回所需的数据。Postman提供的授权类型可以让我们轻松处理Postman进行接口测试中的身份验证协议。

03 Authorization类型

在postman中Authorization分为以下几种类型:

注意:应当注意:NTLM和BearerToken仅在Postman本地应用程序中可用。所有其他授权类型都可以在Postman本地应用程序和Chrome应用程序中使用。

1>Inherit auth from parent

向集合或文件夹添加授权。

假设您在集合中添加了一个文件夹。在授权选项卡下,默认的授权类型将被设置为“从父类继承auth”。

“从父”设置的“继承auth”指示默认情况下,该文件夹中的每个请求都使用父类的授权类型。在本例中,该集合使用“No Auth”,因此该文件夹使用“No Auth”,这意味着该文件夹中的所有请求将使用“No Auth”

如果您希望将父集合授权类型保留为“No Auth”,但要更新这个特定的文件夹的授权助手,该怎么办呢?您可以编辑文件夹的详细信息,从类型下拉菜单中选择“基本的Auth”,并输入您的凭证。因此,这个文件夹中的每个请求都依赖于“基本的Auth”,而父集合中的其余请求仍然不使用任何授权

2>No Auth

默认情况下,“No Auth”出现在下拉菜单列表中。当您不需要授权参数发送请求时,使用“No Auth”。

3>Bearer Token

Bearer Token是安全令牌。任何带有Bearer Token的用户都可以使用它来访问数据资源,而无需使用加密密钥。

使用Bearer Token:

第一步:从下拉菜单中选择“Bearer Token”。

第二步:要设置请求的授权参数,请输入令牌的值。

第三步:点击发送按钮。

4>Basic auth

Basic Auth是一种授权类型,需要验证用户名和密码才能访问数据资源。 使用基本身份验证: 第一步:从下拉菜单中选择“Basic Auth”。 第二步:要设置请求的授权参数,请输入您的用户名和密码。

第三步:点击发送按钮。

5>Digest Auth

在“Digest Auth”流程中,客户端向服务器发送请求,服务器返回客户端的nonce和realm值;客户端对用户名、密码、nonce值、HTTP请求方法、被请求资源URI等组合后进行MD5运算,把计算得到的摘要信息发送给服务端。服务器然后发回客户端请求的数据。

通过哈希算法对通信双方身份的认证十分常见,它的好处就是不必把具备密码的信息对外传输,只需将这些密码信息加入一个对方给定的随机值计算哈希值,最后将哈希值传给对方,对方就可以认证你的身份。

Digest思想同样采如此,用了一种nonce随机数字符串,双方约好对哪些信息进行哈希运算即可完成双方身份的验证。Digest模式避免了密码在网络上明文传输,提高了安全性,但它仍然存在缺点,例如认证报文被攻击者拦截到攻击者可以获取到资源。

默认情况下,Postman从响应中提取值对应的值。如果不想提取这些值,有以下两种选择:

在所选字段的高级部分中输入您自己的值

勾选“Yes,disable retrying the request”复选框。

6>OAuth 1.0

OAuth 1.0是一种可以让我们在不公开密码的情况下授权使用其他应用程序的授权模式。

在Postman中按照以下步骤使用OAuth 1.0授权:

在Authorization下来授权标签中选择“OAuth 1.0”授权模式;在“Add authorization data to” 下拉选择框中,选择对应的请求模式。

当选择“Request Body/Request URL”时,Postman将检查请求方法是POST还是PUT,以及请求主体类型是否是x-www-form-urlencoded;如果是这样,Postman将增加授权参数到请求主体。对于所有其他情况,它会向URL添加授权参数。

7>OAuth 2.0

OAuth 2.0作为OAuth 1.0的升级版本。在Postman中按照以下步骤进行使用:

在Authorization下来授权标签中选择“OAuth 2.0”授权模式在“Add authorization data to”下拉选择框中,选择对应的请求模式;

设置请求的授权参数,有以下三个选择:

点击“Get New Access Token”按钮,在弹出的对话框中输入对应的参数;单击“Request Token”按钮获取对应的Token。接下来有了对应的Token后,就可以点击“Send”按钮发送请求了;

在“Access Token”输入框中输入一个Token,或者Token对应的环境变量,然后就可以点击“Send”按钮发送请求了;

在“Available Tokens”下拉框中选择已经存在的Token,然后发送请求。

8>Hawk Authentication

hawk是一个HTTP认证方案,使用MAC(Message Authentication Code,消息认证码算法)算法,它提供了对请求进行部分加密验证的认证HTTP请求的方法,包括HTTP方法、请求URI和主机。

hawk方案要求提供一个共享对称密匙在服务器与客户端之间,通常这个共享的凭证在初始TLS保护阶段建立的,或者是从客户端和服务器都可用的其他一些共享机密信息中获得的

05 操作实例

请求地址:https://yingxiao.xuanwo001.com/#/index

在线登录:用户名,密码.... 成功登录

登录进去,可以看到我们的请求头里生成了Authentication,

此时我准备进行一个购买月会员的接口进行测试,好我们来看看请求哈;

请求地址:

请求头:

入参:

Postman历往获取的Authentication,因为该字段是存在时效性的所以如果我们每次这样的每个请求手动去更新添加很麻烦,所以我在这里将他设置为环境变量

我们来请求一下该过期的的接口,相当于就是没有该值一样的意思;返回请登陆后访该功能,意思就是没有权限

然后我们将今天刚上方登录新生成的Authentication:Bearer 503e9619f2346adf1a269ba44acd47904661abd0 带入到变量里面去进行更新保存

接着 我们做接口测试肯定是多个事件而不是一个事件对吧,我这里还做了一步操作就是将我们的所有的该项目的一连串的接口直接存放在同一个集合中

Postman之集合(collections) 然后编辑该集合的全局Authentication ;

设置--->选择类型为 API key 然后添加key & value

这里的作用就是我们编辑的全局Authentication,我们其它集合就无需再请求头中去手动编辑添加Authentication,,直接执行调用该Authentication环境变量;针对所有的请求需要这个权限认证来说;这样比之前节省时间效率多了;

我们再来执行下接口,可以看到请求头里的Authentication值自动更新为我环境变量的值,同时请求也通过认证;正常返回响应值

成功请求响应

05 总结

好了,到此关于Postman中的Authentication的内容都到此总结完毕。这是针对这类项目请求需要用到这个,一般的类型的都是我们直接从返回里获取登陆的凭证,然后将该值写入变量,下一个请求进行引用;

内容不多,但是比较简单,好理解。总结工具性的内容就有这么个好处,内容不多,理解简单,记忆性的东西多,不比设计、原理性的东西那样需要更多的去理解。最后,希望我的这篇文章对你有帮助~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python测试社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档