什么是鉴权?一篇文章带你了解postman的多种方式

article/2025/9/19 7:17:07

目录

一、什么是鉴权?

二、postman鉴权方式


一、什么是鉴权?

鉴权也就是身份认证,就是验证您是否有权限从服务器访问或操作相关数据。发送请求时,通常必须包含相应的检验参数以确保请求具有访问权限并返回所需数据。通俗的讲就是一个门禁,您想要进入室内,必须通过门禁验证身份,这就是鉴权,如打开一个网站必须要输入用户名和密码才可以登录进入,这种就是鉴权,还有一些业务需要登录以后才可以进行,因为需要token值,则就可以把token添加到鉴权中,这种也是鉴权。

二、postman鉴权方式

postman 支持多种鉴权方式,如图

Inherit auth from parent:从父级继承身份验证,是每个请求的默认选择 。这是一个很有用的功能,当我们对一个集合(collection)进行测试的时候,集合中的每个请求都需要获取token,那么如果我们在集合的根目录把token获取到的话,那么该集合下的所有请求就会自动获取到token,无需任何处理(因为每个请求的Authorization默认选项就是Inherit auto from parent),也就省略了我们对每个token进行处理了

实现步骤:

  1. 选中一个集合进行编辑,切换到Pre-Request Script.在这里请求登录接口 ,将返回的token值拿到,然后保存成全局变量 。
  2. 切换到Authorization选项卡,在这里直接获取token 。这里的获取token需要根据具体的项目 。比如我们所测试的项目正好是Bearer token这种形式 。直接在列表中使用这种方式输入{{token}}即可。
  3. 向集合添加请求,无需进行token处理,所有接口都能请求成功 。

 

  • No Auth:表示不需要身份认证
  • API key:也有很多系统是通过这种认证方式,更多的是系统自定义的认证方式,比如在请求头添加 model: data xxx-xxx-xxx-xxxx

  • Bearer Token :承载令牌,一般也叫 Json web token,就是发送一个 json 格式的 token 令牌,服务端会针对 token 进行解密验证,令牌是文本字符串,包含在请求标头中。在请求授权选项卡中,从类型下拉列表中选择承载令牌。在“ 令牌”字段中,输入您的API密钥值,或者为了增加安全性,将其存储在变量中并按名称引用该变量。如下图

postman会将令牌值以要求的格式附加到请求header的文本“ Bearer”上,如下所示:

  • Basic Auth:基础验证,提供用户名密码验证,postman 会自动生成 authorization,属于最常用鉴权方式,如图:在请求授权选项卡中,从类型下拉列表中选择基本身份验证,在“ 用户名”和“ 密码”字段中输入您的API登录详细信息-为了提高安全性,您可以将其存储在变量中,如图:

在请求标头中,您将看到正在向Authorization标头传递一个表示您的用户名和密码值的Base64编码的字符串,该字符串附加到文本“ Basic”中,如下图所示

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

Digest Auth下面的高级字段是可选的,postman会在请求运行时自动填充它们。

  • OAuth:一般用于第三方身份认证,在不公开密码的情况下客户端应用程序可以访问第三方API提供的数据,有1,2两个版本,需要提供的信息不太一样。也是常用的鉴权方式,如下图

OAuth1.0:输入必填参数 消费者密钥、消费者密钥值,访问令牌和令牌密钥值。Postman会尝试自动完成高级参数填充,当前你也可以自己填写

然后可以在左侧的Add authorization data to的下拉列表中选择在请求头、URL还是请求体中传递身份验证详细信息,这个身份验证信息数据在哪里传递取决与请求类型,一般post或put请求就是添加到body里面,如果是get请求就会添加到URL里面

 OAuth2.0:也可以在左侧的Add authorization data to的下拉列表中选择在请求头还是URL中传递身份验证详细信息

 然后在Configure New Token里面配置相关信息得到新令牌,需要输入客户端应用程序的详细信息,以及服务提供商提供的所有身份验证详细信息

请求新访问令牌的参数是根据Grant Type类型来的:Grant Type类型如下

请求新访问令牌的参数的完整列表如下:

          1)令牌名称:您要用于令牌的名称。

          2)授予类型:选项的下拉列表-这将取决于API服务提供商的要求。

          3)回调URL:身份验证后重定向到的客户端应用程序回调URL,应在API提供程序中注册。如果未提供,Postman将使用默认的空URL并尝试从中提取代码或访问令牌-如果此方法不适用于您的API,则可以使用以下URL:https://www.getpostman.com/oauth2/callback

          4)身份验证URL: API提供程序授权服务器的端点,用于检索身份验证代码。

          5)访问令牌URL:提供商的身份验证服务器,用于交换访问令牌的授权代码。

          6)客户端ID:您在API提供商处注册的客户端应用程序的ID。

          7)客户端机密: API提供商提供给您的客户端机密。

          8)范围:您所请求的访问范围,其中可能包含多个以空格分隔的值。

          9)状态:不透明的值,以防止跨站点请求伪造。

         10)客户端身份验证:一个下拉列表-在标头中发送基本身份验证请求,或在请求正文中发送客户端凭据。升级到新版本后,请更改此下拉菜单中的值,以避免客户端身份验证出现问题。

配置完成后,点击Get New Access Token按钮。如果您成功从API接收到令牌,则可以看到其详细信息、到期时间以及可选的刷新令牌,当当前令牌过期时,您可以使用该令牌来获取新的访问令牌。单击“ Use Token”以选择返回的值。

所有成功获取到的令牌都将在请求“ Available Tokens”下拉列表中列出。选择一个用来发送您的请求。在下拉列表中可以管理所有令牌,如查看详细信息或删除令牌。

  • Hawk Authentication:是另一种认证方案,采用的叫消息码认证算法,和 Digest 认证类似,它也是需要二次交互的

Hawk身份验证参数如下:

          1)Hawk身份验证ID:您的API身份验证ID值。

          2)Hawk身份验证密钥:您的API身份验证密钥值。

          3)算法:用于创建消息认证码(MAC)的哈希算法。

高级参数:

          1)用户:用户名。

          2)Nonce:客户端生成的随机字符串。

          3)ext:与请求一起发送的任何特定于应用程序的信息。

          4)app:凭据与应用程序之间的绑定,以防止攻击者使用发布给他人的凭据。

          5)dlg:颁发证书的应用程序的ID。

          6)时间戳:服务器用来防止在时间窗口之外进行重放攻击的时间戳。

  • AWS Signature:是针对亚马逊的 AWS 公有云用户签名的认证方式
  • NTLM:是微软的局域网管理认证协议
  • Akamai EdgeGrid:是 Akamai 的专属认证协议

最常用的两种鉴权方式为:Basic 以及 OAuth2


http://chatgpt.dhexx.cn/article/EvQpdvci.shtml

相关文章

10 分钟带你了解鉴权那些事

前言: 鉴权是自动化测试路上的拦路虎,相信大部分同学都深有体会,今天我们就讲一讲这个鉴权到底是怎么回事。 一、什么是鉴权,为什么要鉴权 鉴权:是指是指验证用户是否拥有访问系统的权利。为什么要鉴权:…

常见的鉴权方式简述

一、什么是鉴权,为什么要鉴权 鉴权:是指验证用户是否有访问系统的权利。 为什么要鉴权 :对用户进行鉴权,防止非法用户占用网络资源,非法用户接入网络,被骗取关键信息 二、鉴权方式 Basic Auth basic au…

笔记——什么是鉴权

前言 鉴权是自动化测试路上的拦路虎;故以此记录鉴权到底是怎么回事。 一、什么是鉴权,为什么要鉴权 鉴权:是指验证用户是否有访问系统的权利。为什么要鉴权 :对用户进行鉴权,防止非法用户占用网络资源,非…

ftok()函数解析

ftok 消息队列、信号灯、共享内存常用在Linux服务端编程的进程间通信环境中。而此三类编程函数在实际项目中都是用System V IPC函数实现的。System V IPC函数名称和说明如下表15-1所示。 表15-1 System V IPC函数 消息队列 信号灯 共享内存区 头文件 <sys/msg.h> …

ftok()函数的使用

在上一篇文章中&#xff0c;Mayuyu讲述了共享内存的原理以及使用方法。在创建共享内存之前&#xff0c;必须指定一个ID值&#xff0c;而这个ID值通常是通过现在要讲的ftok()函数得到。ftok()函数原型如下 其中参数fname是指定的文件名&#xff0c;这个文件必须是存在的而且可以…

linux ftok函数的使用

ftok API #include <sys/types.h> #include <sys/ipc.h> key_t ftok(const char *pathname, int proj_id); ftok根据路径名&#xff0c;提取文件信息&#xff0c;再根据这些文件信息及project ID合成key&#xff0c;该路径可以随便设置。该路径是必须存在的&#x…

ftok与fork

ftok函数编辑 系统建立IPC通讯 &#xff08; 消息队列、 信号量和 共享内存&#xff09; 时必须指定一个ID值。通常情况下&#xff0c;该id值通过ftok函数得到。 2ftok原型编辑 头文件 #include < sys/types.h> #include <sys/ipc.h> 函数原型&#xff1a; key_t f…

Linux下的ftok()函数

linux ftok&#xff08;&#xff09;函数 - 清清飞扬 - 博客园 (cnblogs.com) 系统建立IPC通讯&#xff08;如消息队列、共享内存时&#xff09;必须指定一个ID值。通常情况下&#xff0c;该id值通过ftok函数得到。 ftok原型如下&#xff1a; key_t ftok( char * fname, int i…

Linux中ftok函数介绍

函数原型&#xff1a; *key_t ftok(const char fname, int id); 功能&#xff1a;系统建立IPC通讯&#xff08;如消息队列&#xff0c;共享内存时&#xff09;必须指定一个ID值。通常情况下&#xff0c;该id值通过ftok函数得到 返回值&#xff1a;成功返回一个key_t值&#xf…

linux ftok()

系统建立IPC通讯&#xff08;如消息队列、共享内存时&#xff09;必须指定一个ID值。通常情况下&#xff0c;该id值通过ftok函数得到。 ftok原型如下&#xff1a; C代码 key_t ftok( char * fname, int id) key_t ftok( char * fname, int id) fname就时你指定的文件名&a…

Linux中ftok函数详解

在ipc通信中 system V 模式的ipc通信中都需要一个key值来生成对应的ID&#xff0c;那么key是如何生成的呢&#xff1f; 通过函数ftok生成 #include <sys/types.h>#include <sys/ipc.h>key_t ftok(const char *pathname, int proj_id);参数&#xff1a; pathname: …

ftok说明

文章一&#xff1a; ftok函数 系统建立IPC通讯&#xff08;消息队列、信号量和共享内存&#xff09;时必须指定一个ID值。通常情况下&#xff0c;该id值通过ftok函数得到。 ftok原型 头文件&#xff1a; #include <sys/types.h> #include <sys/ipc.h> 如下&…

ftok()函数深度解析

关于ftok函数&#xff0c;先不去了解它的作用来先说说为什么要用它&#xff0c;共享内存&#xff0c;消息队列&#xff0c;信号量它们三个都是找一个中间介质&#xff0c;来进行通信的&#xff0c;这种介质多的是。就是怎么区分出来&#xff0c;就像唯一一个身份证来区分人一样…

linux进程间通信--消息队列相关函数(ftok)详解

ftok 消息队列、信号灯、共享内存常用在Linux服务端编程的进程间通信环境中。而此三类编程函数在实际项目中都是用System V IPC函数实现的。System V IPC函数名称和说明如下表15-1所示。 表15-1 System V IPC函数 消息队列 信号灯 共享内存区 头文件 <sys/msg.h> &l…

19-逆波兰表达式求值(栈)

逆波兰表达式求值 1.题目描述2. 思路3.代码实现3.1 c实现 4. 复杂度分析 1.题目描述 LeetCode题目链接 逆波兰表达式由波兰的逻辑学家卢卡西维兹提出。逆波兰表达式的特点是&#xff1a;没有括号&#xff0c;运算符总是放在和它相关的操作数之后。因此&#xff0c;逆波兰表达式…

逆波兰表达式求值

二元运算符的表达式定义为&#xff1a;(操作数) (运算符) (操作数) &#xff0c;其中操作数也可以为表达式。 在计算机中&#xff0c;根据运算符所在的不同位置来命名&#xff0c;表达式可以有如下三种不同的表示方法&#xff1a; 记表达式为&#xff1a;Exp S1 OP S2&a…

逆波兰表达式 c++

题目&#xff1a; 逆波兰表达式定义&#xff1a;1&#xff09;一个数是一个逆波兰表达式值为该数 2&#xff09;运算符 逆波兰表达式 逆波兰表达式 是其表达式&#xff0c;只有两个逆波兰表达式的值运算的结果 思路&#xff1a;用递归解决递归形式问题。 #include <iostr…

波兰表达式和逆波兰表达式

波兰表达式和逆波兰表达式 今天zxy的实验内容是关于逆波兰表达式的计算&#xff0c;刚好最近在做关于数据结构的习题&#xff0c;于是想着对波兰表达式和逆波兰表达式的转化和运算分别进行一个学习&#xff0c;于是写了这篇博客(有错的地方欢迎大家指出。) 常见的运算表达式&…

逆波兰表达式,走一波

逆波兰表达式又叫后缀表达式&#xff0c;中学时候学的那种表达式叫中缀表达式。 例如&#xff0c;5(63)3-1 &#xff0c; 3(4(21)2)-3 例子中的这两个式子&#xff0c;就是中缀表达式。下面这两个就是后缀表达式&#xff1a; 56331- &#xff0c; 342123- 中缀…

计算逆波兰表达式

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现 ⭐码云地址超链接(Gitee)&#xff1a;这里存放我学…