在我们使用 Postman 进行 API 的测试与调试的时候,服务器的很多接口都会需要我们测试客户端提供认证的信息才可以返回数据,这时候就需要 Postman 能够提供授权的功能。
简而言之,授权过程就是验证我们是否有权限从服务器访问所需的数据。发送请求时,通常必须按照服务器的要求传递相关的参数,通过服务器的验证之后,才可以确保请求有权访问并返回所需的数据。
Postman授权界面如下图所示:
从上图我们可以看出,Postman提供了以下几种授权方式:
如果想检查 Postman 生成的授权请求头和参数,可以单击预览请求按钮。如下图所示:
假设现在将一个文件夹添加到集合中。在授权选项卡下,默认授权类型就被设置为 “从父继承授权”。如下图所示:
“从父继承授权” 设置表示默认情况下此文件夹中的每个请求都使用来自父级的授权类型。
如果我们想要将父集合授权类型设置为 “No Auth”,而该集合下的文件夹授权类型需要设置成与集合不一样,该怎么办?我们需要编辑文件夹的详细信息,从TYPE下拉列表中选择“Basic Auth”,然后输入对应的凭证。此后,此文件夹中的每个请求都依赖于 “Basic Auth”,而父集合中的其余请求仍不使用任何授权。
默认情况下,在下拉菜单列表中“No Auth”是第一个显示的。如果接口不需要任何授权,则请使用“No Auth”。
“Bearer Token” 是一个安全令牌。任何用户都可以使用它来访问数据资源,而无需使用加密密钥。下面来说说如何在Postman中如何使用“Bearer Token”:
如下图所示:
基本身份验证是一种比较简单的授权类型,需要经过验证的用户名和密码才能访问数据资源。这就需要我们输入用户名和对应的密码。具体操作如下图所示:
由于 “Basic auth” 使用明文传递,目前基本很少使用了。
在 “Digest Auth” 流程中,客户端向服务器发送请求,服务器返回客户端的nonce和realm值,客户端对用户名、密码、nonce值、HTTP请求方法、被请求资源URI等组合后进行MD5运算,把计算得到的摘要信息发送给服务端。服务器然后发回客户端请求的数据。
通过哈希算法对通信双方身份的认证十分常见,它的好处就是不必把具备密码的信息对外传输,只需将这些密码信息加入一个对方给定的随机值计算哈希值,最后将哈希值传给对方,对方就可以认证你的身份。
Digest思想同样采如此,用了一种nonce随机数字符串,双方约好对哪些信息进行哈希运算即可完成双方身份的验证。Digest模式避免了密码在网络上明文传输,提高了安全性,但它仍然存在缺点,例如认证报文被攻击者拦截到攻击者可以获取到资源。
默认情况下,Postman从响应中提取值对应的值。如果不想提取这些值,有以下两种选择:
在 Postman 中使用 “Digest Auth” 如下图所示:
OAuth 1.0 是一种可以让我们在不公开密码的情况下授权使用其他应用程序的授权模式。
在 Postman 中按照以下步骤使用OAuth 1.0授权:
当选择 “Request Body/Request URL” 时,Postman 将检查请求方法是 POST 还是 PUT,以及请求主体类型是否是 x-www-form-urlencoded;如果是这样,Postman 将增加授权参数到请求主体。对于所有其他情况,它会向URL添加授权参数。
OAuth 1.0 授权界面,如下图所示:
OAuth 2.0 作为 OAuth 1.0 的升级版本。在 Postman 中按照以下步骤进行使用:
OAuth 2.0 界面,如下图所示:
hawk 是一个 HTTP 认证方案,使用 MAC(Message Authentication Code,消息认证码算法) 算法,它提供了对请求进行部分加密验证的认证 HTTP 请求的方法,包括 HTTP 方法、请求 URI 和主机。
hawk 方案要求提供一个共享对称密匙在服务器与客户端之间,通常这个共享的凭证在初始 TLS 保护阶段建立的,或者是从客户端和服务器都可用的其他一些共享机密信息中获得的。在 Postman 中具体使用如下图所示:
在我们使用 Postman 进行 API 的测试与调试的时候,服务器的很多接口都会需要我们测试客户端提供认证的信息才可以返回数据,这时候就需要 Postman 能够提供授权的功能。