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

Postman授权与Cookie设置

作者头像
清风穆云
发布2021-08-09 11:18:52
2.5K0
发布2021-08-09 11:18:52
举报
文章被收录于专栏:QA一隅

很多时候,出于安全考虑我们的接口并不希望对外公开。这个时候就需要使用授权(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]

这里主要介绍以上加粗的授权协议的使用。

Basic auth

基本身份验证是一种比较简单的授权类型,需要经过验证的用户名和密码才能访问数据资源。这就需要我们输入用户名和对应的密码。

案例:请求URL如下,授权账号为:

  • 用户名: postman
  • 密码: password
  • 授权协议为:Basic auth
代码语言:javascript
复制
https://postman-echo.com/basic-auth
  • 如果不输入用户名密码,直接使用GET请求,则会返回提示:Unauthorized
  • 输入用户名密码,选择Basic auth授权类型,则返回如下结果:
代码语言:javascript
复制
{
    "authenticated": true
}

Digest Auth

Digest auth 是一个简单的认证机制,最初是为HTTP协议开发的,因此也常叫做HTTP摘要。其身份验证机制非常简单,它采用哈希加密方法,以避免用明文传输用户的口令。摘要认证就是要核实參与通信的两方都知道双方共享的一个口令。

当server想要查证用户的身份,它产生一个摘要盘问(digest challenge),并发送给用户。典型的摘要盘问例如以下:

代码语言:javascript
复制
Digest realm="iptel.org", qop="auth,auth-int",
nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="", algorithm=MD5

这里包含了一组参数,也要发送给用户。用户使用这些參数,来产生正确的摘要回答,并发送给server。摘要盘问中的各个參数,其意义例如以下:

realm(领域):领域參数是强制的,在全部的盘问中都必须有。它是目的是鉴别SIP消息中的机密。在SIP实际应用中,它通常设置为SIP代理server所负责的域名。

nonce(现时):这是由server规定的数据字符串,在server每次产生一个摘要盘问时,这个參数都是不一样的(与前面所产生的不会雷同)。“现时”一般是由一些数据通过md5杂凑运算构造的。这种数据通常包含时间标识和server的机密短语。这确保每一个“现时”都有一个有限的生命期(也就是过了一些时间后会失效,并且以后再也不会使用),并且是独一无二的 (即不论什么其他的server都不能产生一个同样的“现时”)。

algorithm(算法):这是用来计算的算法。当前仅仅支持MD5算法。

qop(保护的质量)。这个參数规定server支持哪种保护方案。client能够从列表中选择一个。值 auth表示仅仅进行身份查验, auth-int表示进行查验外,另一些完整性保护。需要看更具体的描写叙述,请參阅RFC2617。

案例

请求URL如下

代码语言:javascript
复制
https://postman-echo.com/digest-auth

摘牌配置信息如下:用户名密码和上面basic auth一样

代码语言:javascript
复制
Digest username="postman", realm="Users", nonce="ni1LiL0O37PRRhofWdCLmwFsnEtH1lew", uri="/digest-auth", response="254679099562cf07df9b6f5d8d15db44", opaque=""

执行请求结果如下:

代码语言:javascript
复制
{
    "authenticated": true
}

Hawk Auth

Hawk Auth是一个HTTP认证方案,使用MAC(Message Authentication Code,消息认证码算法)算法,它提供了对请求进行部分加密验证的认证HTTP请求的方法。hawk方案要求提供一个共享对称密匙在服务器与客户端之间,通常这个共享的凭证在初始TLS(安全传输层协议)保护阶段建立的,或者是从客户端和服务器都可用的其他一些共享机密信息中获得的。

案例

请求URL如下:

代码语言:javascript
复制
https://postman-echo.com/auth/hawk

密钥信息如下:

  • Hawk Auth ID: dh37fgj492je
  • Hawk Auth Key: werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn
  • Algorithm: sha256

执行结果:

代码语言:javascript
复制
{
    "message": "Hawk Authentication Successful"
}

如果将key改为其他任意的字符则返回如下结果:

代码语言:javascript
复制
{
    "statusCode": 401,
    "error": "Unauthorized",
    "message": "Bad mac",
    "attributes": {
        "error": "Bad mac"
    }
}

OAuth 1.0

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

扩展资料:

  • OAuth那些事儿
  • OAuth的改变
案例

请求URL如下:请求方式为GET,Add authorization data to设置为:Request Headers

代码语言:javascript
复制
https://postman-echo.com/oauth1

参数配置为:

  • Consumer Key: RKCGzna7bv9YD57c
  • Consumer Secret: D+EdQ-gs$-%@2Nu7

发送请求结果如下:

代码语言:javascript
复制
{
    "status": "pass",
    "message": "OAuth-1.0a signature verification was successful"
}

如果Consumer Secret错误则返回如下结果:

代码语言:javascript
复制
{
    "status": "fail",
    "message": "HMAC-SHA1 verification failed",
    "base_uri": "https://postman-echo.com/oauth1",
    "normalized_param_string": "oauth_consumer_key=51zxw&oauth_nonce=pxSgzUivsBi&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1531299384&oauth_version=1.0",
    "base_string": "GET&https%3A%2F%2Fpostman-echo.com%2Foauth1&oauth_consumer_key%3D51zxw%26oauth_nonce%3DpxSgzUivsBi%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1531299384%26oauth_version%3D1.0",
    "signing_key": "D%2BEdQ-gs%24-%25%402Nu7&"
}

扩展资料:各个授权协议文档

Cookie设置

cookie是存储在浏览器中的小片段信息,每次请求后都将其发送回服务器,以便在请求之间存储有用的信息。比如很多网站登录界面都有保留账号密码,以便下次登录。

由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。

Cookie是由服务端生成,存储在响应头中,返回给客户端,客户端会将cookie存储下来,在客户端发送请求时,user-agent会自动获取本地存储的cookie,将cookie信息存储在请求头中,并发送给服务端。postman也可以设置、获取、删除Cookie。

Set Cookies

在Send按钮下方点击Cookies文字菜单,弹出如下界面,然后可以设置Cookie。

请求URL如下:请求方式为GET,添加Cookie值为username:51zxw

代码语言:javascript
复制
http://www.baidu.com/

打开Console找到Request Header可以看到自定义设置的Cookie内容。

Get Cookies

Cookie获取比较简单,直接获取Response Headers里面的set-cookie值即可,或者在主界面下方Cookie菜单栏里面也可以查看。

Delete Cookies

点击Cookies文字菜单,然后可以根据需求去清除对应的Cookie。

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

本文分享自 QA一隅 微信公众号,前往查看

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

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

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