[PPJ_05] Postman接口授权设置 & Coo
目录结构
一、授权设置
二、授权协议主要类型
1. Basic Auth
2. Digest Auth
3. Hawk Auth
4. OAuth 1.0
三、Cookie设置
一、授权设置
出于安全考虑,有的接口并不希望对外公开,此时需要使用授权(Authorization)机制,通过授权验证是否具有访问服务器响应数据的权限。
为确保请求具有访问和返回所需数据的权限,当发送请求时通常需要包含参数,而Postman提供了授权的类型,可在Postman本地应用程序中处理身份验证协议。
Postman支持的授权协议类型:
- No Auth
- Bearer Token
- Basic Auth
- Digest Auth
- OAuth 1.0
- OAuth2.0
- Hawk Authentication
- AWS Signature
- NTLM Authentication[Beta]
二、授权协议主要类型
1. Basic Auth
基本身份验证:是一种比较简单的授权类型,需要经过验证用户名和密码才能访问数据资源。
案例:
请求URL:https://postman-echo.com/basic-auth
请求方式:GET
授权账号:用户名=postman,密码=password
授权协议:Basic auth
1)未经授权,直接请求
如果不输入用户名密码,直接使用GET请求,则会返回提示:
Unauthorized

对应Response Status Code:401

2)正确授权,再作请求
输入用户名和密码,选择Basic auth授权类型,则返回如下结果:
{
"authenticated": true
}

2. Digest Auth
摘要认证:是一种简单的认证机制,最初是为HTTP协议开发的,也称HTTP摘要。其身份验证机制采用哈希加密方法来避免用明文传输用户的口令,摘要认证需要核实参与通信两方都知道的双方共享口令。
当服务器需要查证用户身份时,会产生一个摘要盘问(digest challenge)并发送给用户。典型的摘要盘问,如:
Digest realm="iptel.org",qop="auth,auth-int",nonce="dcd98b7182dd2fee8b11def608bfb8c093",opaque="",algorithm=MD5
以上包含了一组参数,需要发送给用户。用户使用此参数来产生正确的摘要回答,并发送给服务器。
摘要盘问中的各个参数,意义如下:
参数名 | 含义 |
---|---|
realm | 领域。该参数是强制的,在全部的盘问中都必须有,目的是鉴别SIP(Session Initiation Protocol,会话初始协议)消息中的机密。在SIP实际应用中,它通常设置为SIP代理服务器所负责的域名 |
nonce | 现时。这是由服务器规定的数据字符串,在服务器每次产生一个摘要盘问时,这个参数都是不一样的。"现时"一般是由一些数据通过MD5杂凑运算(Hash函数,把任意长度的输入消息串变化成固定长度的输出串的一种函数)构造的。 这种数据通常包含时间标识和服务器的机密短语。从而确保每一个"现时"都有一个有限的生命期(过了设置的时间后会失效,且以后再也不会使用失效值) |
algorithm | 算法。用来计算杂算的算法,当前仅支持MD5算法 |
qop | 保护的质量。该参数规定服务器支持哪种保护方案。客户端能够从列表中选择一个值 auth表示仅进行身份查验 auth-int表示除了进行查验外,还有一些完整性保护 |
opaque | 不透明体。此参数是一个不透明的(不让外人知道其意义)数据字符串,在盘问中发送给用户。 在摘要响应中,用户会将这个数据字符串发送回给服务器,使得服务器能够是无状态的。若需要在盘问和响应之间维持一些状态,用该參数传送状态给客户端,此后当摘要响应回来时,再读取这个状态 |
案例:
请求URL:https://postman-echo.com/digest-auth
请求方式:GET
摘要配置信息如下:
用户名/密码:同上basic auth(用户名=postman,密码=password)
Digest username="postman",real="Users",nonce="nilLiL0037PRthofMdCLmuFsnEtHlleu",uri="/digest-auth",response="254679099562cf07df9b6f5d8d15db44",opaque=""
将以上配置信息中的对应必填参数填写到Digest Auth认证输入界面,然后点击【Send】即可


3. Hawk Auth
Hawk Auth是一个HTTP认证方案,使用MAC(Message Authentication Code,消息认证码)算法,它提供了对请求进行部分加密验证来认证HTTP请求的方法,hawk方案要求在服务器与客户端之间提供一个共享对称密匙,通常这个共享的凭证在初始TLS(安全传输层协议)保护阶段建立的,or从客户端和服务器都可用的其他一些共享机密信息中获得。
案例:
请求URL:https://postman-echo.com/auth/hawk
请求方式:GET
密钥信息如下:
Hawk Auth ID:dh37fgj492je
Hawk Auth Key:werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn
Algorithm:sha256
执行结果:
{
"message": "Hawk Authentication Successful"
}

若key值不正确,则返回结果:
{
"statusCode": 401,
"error": "Unauthorized",
"message": "Bad mac",
"attributes": {
"error": "Bad mac"
}
}

4. OAuth 1.0
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如:照片、视频、联系人列表),而无需将用户名和密码提供给第三方应用。
案例:
请求URL:https://postman-echo.com/oauth1
请求方式:GET
Add authorization data to:Request Headers
参数配置为:
Consumer Key:RKCGzna7bv9YD57c
Consumer Secret:D+EdQ-gs$-%@2Nu7
执行结果:
{
"status": "pass",
"message": "OAuth-1.0a signature verification was successful"
}

三、Cookie设置
Cookie是存储在浏览器客户端中的小片段信息,每次请求后都将其发送回服务器,以便在请求之间存储有用的信息。比如很多网站登录界面都有保留账号和密码,以便下次登录。
HTTP协议是一种无状态的,服务器单从网络连接上没法确定用户的身份。因此需要给客户端颁发一个通行证,无论谁访问都必须携带自己的通行证,使得服务器能以通行证上确认客户身份。
Cookie是由服务端生成,存储在响应头中返回给客户端,客户端会将Cookie存储起来,在客户端发送请求时,user-agent会自动获取本地存储的Cookie,然后将Cookie信息存储在请求头中,并发送给服务端。
Postman设置、获取、删除Cookie
在【Send】按钮下方点击【Cookies】文字菜单,弹出如下界面,即可对Cookie进行设置

以URL(https://postman-echo.com/get?param1=test00001¶m2=123456)为例,对其设置完成Cookie之后,点击【Send】发送请求,然后Postman界面上的Cookies区域即可查看到所设置的cookie信息

在点击【Send】发送请求之前,可先点击左下角的图标(快捷键:Ctrl+Alt+C)调出Postman Console控制台,然后发送请求完成之后,即可在控制台监控到Request Headers中显示其前所设置的cookie信息
