postman 认证使用篇(五)

Authorization

尽管请求编辑器已经足够强大去构造各种各样的请求,但是有的时候你的请求可能是需要认证,那么就可以尝试使用下面的认证功能了(由于认证的参数信息属于敏感数据,为了保证在协作环境中工作时数据的安全,建议使用变量)

下面分别说明下拉选项中的认证方式:

No Auth

不需要认证,这是默认选中的

Bearer Auth

填写Token进行验证,JWT中有使用

Basic Auth 基础身份验证

输入用户名和密码,直接发送明文数据,在点击Preview Request按钮就会自动在Headers中生成authorization header.

或者直接发送请求,也会自动把authorizationheader 添加到 Headers

Digest Auth 摘要认证

消息摘要式身份认证是在基本身份认证上面扩展了安全性,服务器为每一个连接生成一个唯一的随机数,客户端用这个随机数对密码进行MD5加密,然后返回服务器,服务器也用这个随机数对密码进行加密,然后和客户端传送过来的加密数据进行比较,如果一致就返回结果
客户端请求资源->服务器返回认证标示->客户端发送认证信息->服务器查验认证

过程:

  1. 发送一个请求

        GET /auth/basic/ HTTP/1.1
    HOST: target
  2. 服务器返回401响应头,要求输入用户凭据

        HTTP/1.1 401 Unauthorized
    WWW-Authenticate: Digest realm="Digest Encrypt",nonce="nmeEHKLeBAA=aa6ac7ab3cae8f1b73b04e1e3048179777a174b3", opaque="0000000000000000",stale=false, algorithm=MD5, qop="auth"
  3. 输入凭据后再发送请求

        GET /auth/digest/ HTTP/1.1
    Accept: */*
    Authorization: Digest username="LengWa", realm="Digest Encrypt", qop="auth", algorithm="MD5", uri="/auth/digest/", nonce="nmeEHKLeBAA=aa6ac7ab3cae8f1b73b04e1e3048179777a174b3", nc=00000001, cnonce="6092d3a53e37bb44b3a6e0159974108b", opaque="0000000000000000", response="652b2f336aeb085d8dd9d887848c3314"
  4. 服务端验证通过后返回数据

返回401请求头时,对于WWW-Authenticate 各个域的作用:

  • realm: 是一个简单的字符串,一般是是邮件格式

  • qop: 是认证的(校验)方式,这个比较重要,对后面md5的加密过程有影响

  • nonce: 是一个字符串,唯一的、不重复的(还可以包含一些有用的信息,进行验证)

  • opaque: 是个字符串,它只是透传而已,即客户端还会原样返回过来

  • username: 用户认证的用户名

  • uri: 本次资源的位置

  • cnonce: 客户端随机参数的GUID

  • nc: 是认证的次数,因为如果认证失败,则仍然可以重新发送认证信息继续认证

  • response: 这个值很重要,是根据以上信息加上密码根据一定的顺序加密生成的MD5值,服务端在收到这个信息后,也根据相同的方式计算出这个值,而密码保存在服务端。服务端根据用户名去找密码,计算出MD5值,如果和客户端传过来一致,就认证通过,否则不通过

OAuth 1.0 / OAuth 2.0

现在大多数授权登录都是基于 OAuth 2.0

这两种认证方式,就不具体介绍了。网上讲解的比较多

不了解的可以看看这个文档:理解OAuth

Hawk authentication

hawk是一个HTTP认证方案,使用MAC(Message Authentication Code,消息认证码算法)算法,它提供了对请求进行部分加密验证的认证HTTP请求的方法,包括HTTP方法、请求URI和主机。

hawk方案要求提供一个共享对称密匙在服务器与客户端之间,通常这个共享的凭证在初始TLS保护阶段建立的,或者是从客户端和服务器都可用的其他一些共享机密信息中获得的

举例过程:

  1. 发起一个资源请求

    GET /resource/1?b=1&a=2 HTTP/1.1
    Host: 127.0.0.1:8000
  2. 服务器返回401响应头

    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: Hawk
  3. 客户端之前已经获取一组Hawk访问资源的资格证书在对应的服务器上资格证书包含以下的属性:

    Key identifier(Hawk Auth ID): dh37fgj492je
    Key(Hawk Auth Key): werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn
    Algorithm: hmac-sha-256
  4. 客户端通过计算时间戳来生成认证报头,并构造标准的请求字符串

    1353832234
    GET
    /resource/1?b=1&a=2
    127.0.0.1
    8000
    some-app-data
  5. 使用Hawk凭证中的Algorithm指定的加密算法加上Key(Hawk Auth Key)指定的key进行加密,之后把结果在经过bae64转码为/uYWR6W5vTbY3WKUAN6fa+7p1t+1Yl6hFxKeMLfR6kk=

  6. 客户单在发送请求,在Authorization头字段包括Key identifier(Hawk Auth ID)指定的id,时间戳,以及加密生成的MAC

    GET /resource/1?b=1&a=2 HTTP/1.1
    Host: 127.0.0.1:8000
    Authorization: Hawk id="dh37fgj492je", ts="1353832234", ext="some-app-data", mac="/uYWR6W5vTbY3WKUAN6fa+7p1t+1Yl6hFxKeMLfR6kk="
  7. 服务端收到请求后再次按相同的算法计算出MAC,并验证Hawk凭证的有效性,如果验证通过就返回结果

这个认证的方式 npm中有包,里面有案例,可以查看一下hawk

官方详细文档

AWS Signature

AWS的使用者可以使用自定义的HTTP方案基于HMAC的加密算法去认证

参考文档

[http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html](http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html)
[http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-use-postman-to-call-api.html](http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-use-postman-to-call-api.html)

postman 的基础使用篇(一)
postman发送请求使用篇(二)
postman响应使用篇(三)
postman的代理使用篇(四)

postman认证使用篇(五)的更多相关文章

  1. 【从零开始搭建自己的.NET Core Api框架】(七)授权认证进阶篇

    系列目录 一.  创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...

  2. 【SSRS】入门篇(五) -- 设置报表格式

    原文:[SSRS]入门篇(五) -- 设置报表格式 在上一节 [SSRS]入门篇(四) -- 向报表添加数据 我们设置好了报表,并可以预览到数据,如下图: 当报表完成后,有个重要的工作就是美化报表格式 ...

  3. Nginx 核心配置-location的登录账户认证实战篇

    Nginx 核心配置-location的登录账户认证实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用ab命令模拟网站攻击 1>.安装httpd-tools工具 ...

  4. Grid++Report报表工具C/S实战篇(五)

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第五部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...

  5. DRF Django REST framework 之 认证组件(五)

    引言 很久很久以前,Web站点只是作为浏览服务器资源(数据)和其他资源的工具,甚少有什么用户交互之类的烦人的事情需要处理,所以,Web站点的开发这根本不关心什么人在什么时候访问了什么资源,不需要记录任 ...

  6. docker+k8s基础篇五

    Docker+K8s基础篇(五) service资源介绍 A:service资源的工作特性 service的使用 A:service字段介绍 B:ClusterIP的简单使用 C:NodePort的简 ...

  7. 第四届CCF软件能力认证(CSP2015) 第五题(最小花费)题解

    [问题描述] C国共有$n$个城市.有$n-1$条双向道路,每条道路连接两个城市,任意两个城市之间能互相到达.小R来到C国旅行,他共规划了$m$条旅行的路线, 第$i$条旅行路线的起点是$s_i$,终 ...

  8. SpringMVC4+thymeleaf3的一个简单实例(篇五:页面和MySql的数据交互-展示以及存储)

    这一篇将介绍怎样把页面数据保存的MySQL数据库,并将数据库内容展示到页面上.首先做一个基础工作,添加以下jar到lib:1: mysql-connector-Java-5.1.40-bin.jar ...

  9. [C入门 - 游戏编程系列] 贪吃蛇篇(五) - 蛇实现

    因为已经写了食物的实现,所以我不知道到底是该先写世界的实现还是蛇的实现.因为世界就是一个窗口,可以立刻在世界中看到食物的样子,对于大多数人来说,如果写完代码立刻就能看到效果,那就再好不过了.可是,我最 ...

随机推荐

  1. 解读Python中 locals() 和 globals() 内置函数

    首先globals() 和 locals() 是作用于作用域下的内置函数,所以我将它们分为作用域类型的内置函数 1.作用域相关: 1)globals() # 返回全局作用域中的所有名字 2)local ...

  2. JVM学习-之对象的创建和内存分配

    最近看JVM内存模型,看了很多文章,大都讲到JVM将内存区域划分分:Mehtod-Area(No heap) 方法区,Heap(堆)区,Program Counter Register(程序计数器), ...

  3. Python eval()函数的用法

    Python eval()函数的用法 eval(str)函数很强大,官方解释为:将字符串str当成有效的表达式来求值并返回计算结果.所以,结合math当成一个计算器很好用. eval()函数常见作用有 ...

  4. UVA11021 Tribbles

    题目大意:n个麻球,第一天有k个,麻球生命期为一天,临近死亡前会有i的几率生出Pi个麻球.问m天后麻球全部死亡概率 设f[i]表示i天后一个麻球全部死亡的概率 有f[1] = P0 f[i] = P0 ...

  5. PHP苹果推送实现(APNS)

    以下资料网上收集整理得来 1.在ios dev center制作相关证书和文件用客户端实现(不再赘述,网上很多,) 网上教程: http://blog.csdn.net/lizhenning87/ar ...

  6. 洛谷P3306 随机数生成器

    题意:给你一个数列,a1 = x,ai = (A * ai-1 + B) % P,求第一个是t的是哪一项,或者永远不会有t. 解:循环节不会超过P.我们使用BSGS的思想,预处理从t开始跳√P步的,插 ...

  7. bzoj 4373 算术天才⑨与等差数列——线段树+set

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4373 能形成公差为k的等差数列的条件:mx-mn=k*(r-l) && 差分 ...

  8. 【noip】跟着洛谷刷noip题2

    noip好难呀. 上一个感觉有点长了,重开一个. 36.Vigenère 密码 粘个Openjudge上的代码 #include<cstdio> #include<iostream& ...

  9. PYTHON网络爬虫与信息提取[BeautifulSoup](单元四)

    1 简介 from bs4 import BeautifulSoup soup=BeautifulSoup(<p>data</p>,'html.parser') 2 基本元素 ...

  10. iOS -NSOperation并发编程

    http://www.cocoachina.com/game/20151201/14517.html http://blog.csdn.net/qinlicang/article/details/42 ...