IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> API身份验证和授权介绍 -> 正文阅读

[网络协议]API身份验证和授权介绍

一、前言

用户通常需要注册API KEY或者其他验证方法,才能使用你的服务,一般我们会用到一下集中验证方式

  • API Keys
  • Basic Auth
  • HMAC
  • OAuth

身份验证:指证明正确的身份,

授权: 允许的动作

API可能会对您进行身份验证,但未授权您发出特定的请求

API缺乏安全性的后果

为什么API需要身份验证,API没有安全性,用户可以任意注册即可无限次访问和调用API,且没有请求与特定用户数据关联的简单方法,就无法防止恶意用户的恶意请求等。

二、API Key

API Key是一个长字符串,通常包含在URL或者header里面,主要作用于api调用员的验证,api key也可能和您注册的特定应用程序关联。

?api 可能同时提供公钥和密钥,公钥包含在请求里面,密钥则是像密码,仅在服务器到服务器的连接时使用到。

三、Basic Auth

基本身份验证,使用此方法,发送usaname: passward放入header中,用户名和密码使用Base64编码,Base64是一种编码技术,将用户名和密码转换为一组64的字符串,确保安全传输,如下:

使用Basic Auth的验证api也将使用https,意味着消息内容在http传输协议中加密,没有的话,用户会很简单的理解用户名和密码

四、OAuth 2.0

OAuth 2.0是一种用户验证和授权用户的流行方法,此方法依赖于身份验证服务器和API服务器进行通信以授予访问权限,OAuth有几种变体,即"one-legged OAuth"?和"three-legged OAuth",如果没有敏感数据需要保护,使用前一个,如果你有敏感信息需要保护,则使用"three-legged OAuth",这样的话会有三个组进行交互:

认证服务器;资源服务器(api服务器);用户或应用;

?首先,消费者在应用程序上,将密钥和机密发给身份验证服务器,如果验证成功,会返回令牌,将令牌打包到请求的请求的响应重定向(302)的查询参数中,重定向将用户的请求指向资源服务器(API服务器)。

然后用户向资源服务器发出请求,将访问令牌添加到API请求的header中,其单词为Bearver,后跟令牌字符串。api服务器会检查请求中的令牌,并决定是否对用户进行身份验证。

访问令牌不仅为用户提供身份验证,而且还定义的用户如何使用api的权限,

如果你需要提供OAuth2.0的验证给外部用户,你需要提供一下信息:

如何获取api密钥;

如何验证请求;

与无效身份验证有关的信息;

身份验证的敏感性;

令牌到期时间;

Twitter

?

?

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 18:20:11  更:2022-04-18 18:23:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:51:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码