接口测试

[PPJ_05] Postman接口授权设置 & Coo

2018-10-04  本文已影响410人  Fighting_001

目录结构

一、授权设置
二、授权协议主要类型
    1. Basic Auth
    2. Digest Auth
    3. Hawk Auth
    4. OAuth 1.0
三、Cookie设置

一、授权设置

出于安全考虑,有的接口并不希望对外公开,此时需要使用授权(Authorization)机制,通过授权验证是否具有访问服务器响应数据的权限。

为确保请求具有访问和返回所需数据的权限,当发送请求时通常需要包含参数,而Postman提供了授权的类型,可在Postman本地应用程序中处理身份验证协议。

Postman支持的授权协议类型:

二、授权协议主要类型

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&param2=123456)为例,对其设置完成Cookie之后,点击【Send】发送请求,然后Postman界面上的Cookies区域即可查看到所设置的cookie信息

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

上一篇 下一篇

猜你喜欢

热点阅读