很多时候,出于安全考虑我们的接口并不希望对外公开。这个时候就需要使用授权(Authorization)机制 授权过程验证您是否具有访
问服务器所需数据的权限。 当您发送请求时,您通常必须包含参数,以确保请求具有访问和返回所需数据的权限。 Postman 提供
授权类型,可以轻松地在 Postman 本地应用程序中处理身份验证协议。
Postman 支持的授权协议类型如下:
No Auth
Bearer Token
Basic Auth
Digest Auth
OAuth 1.0
OAuth 2.0
Hawk Authentication
AWS Signature
NTLM Authentication[Beta]
1、Basic Auth:
基本身份验证是一种比较简单的授权类型,需要经过验证的用户名和密码才能访问数据资源。这就需要我们输入用户名和对应的密码
举例:
请求的URL如下,授权账号为:
用户名:postman
密码:password
授权协议为:Basic Auth
https://postman-echo.com/basic-auth
如果不输入用户名密码,直接使用 GET 请求,则会返回提示:Unauthorized
输入用户名密码,选择 Basic auth 授权类型,则返回如下结果:
{
"authenticated": true
}
2、Digest Auth:
Digest auth 是一个简单的认证机制,最初是为 HTTP 协议开发的,因此也常叫做 HTTP 摘要。其身份验证机制非常简单,
它采用哈希加密方法,以避免用明文传输用户的口令。摘要认证就是要核实參与通信的两方都知道双方共享的一个口令。
当 server 想要查证用户的身份,它产生一个摘要盘问(digest challenge),并发送给用户。典型的摘要盘问例如:
Digest realm="iptel.org", qop="auth,auth-int",nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="", algorithm=MD5
其中各参数含义如下:
realm(领域):领域參数是强制的,在全部的盘问中都必须有。它是目的是鉴别 SIP 消息中的机密。在 SIP 实际应用中,它通常
设置为 SIP 代理 server 所负责的域名。
nonce(现时):这是由 server 规定的数据字符串,在 server 每次产生一个摘要盘问时,这个參数都是不一样的。实际一般是由
一些数据通过 md5 杂凑运算构造的。
algorithm(算法):这是用来计算的算法。当前仅仅支持 MD5 算法。
qop(保护的质量):这个參数规定 server 支持哪种保护方案。client 能够从列表中选择一个。值 auth 表示仅仅进行身份查验。
3、Hawk Authentication:
Hawk Auth 是一个 HTTP 认证方案,使用 MAC(Message Authentication Code,消息认证码算法)算法,它提供了对请求进行部分
加密验证的认证 HTTP 请求的方法。hawk 方案要求提供一个共享对称密匙在服务器与客户端之间,通常这个共享的凭证在初始
TLS(安全传输层协议)保护阶段建立的,或者是从客户端和服务器都可用的其他一些共享机密信息中获得的。
https://postman-echo.com/auth/hawk
秘钥信息如下:
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(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人
列表),而无需将用户名和密码提供给第三方应用。
如:https://postman-echo.com/oauth1
请求 URL 如下:请求方式为 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"
}
如果 Consumer Secret 错误则返回如下结果:
{
"status": "fail",
"message": "HMAC-SHA1 verification failed",
"base_uri": "https://postman-echo.com/oauth1",
"normalized_param_string": "oauth_consumer_key=RKCGzna7bv9YD57c&oauth_nonce=89lBcNaSh5H&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1562600198&oauth_version=1.0",
"base_string": "GET&https%3A%2F%2Fpostman-echo.com%2Foauth1&oauth_consumer_key%3DRKCGzna7bv9YD57c%26oauth_nonce%3D89lBcNaSh5H%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1562600198%26oauth_version%3D1.0",
"signing_key": "D%2BEdQ-gs%24-%25%402Nu7&"
}

postman-basic-auth.png

postman-digest-auth.png

postman-Hawk-auth.png

postman-OAauth1.0.png