| |
|
开发:
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可能会对您进行身份验证,但未授权您发出特定的请求 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密钥; 如何验证请求; 与无效身份验证有关的信息; 身份验证的敏感性; 令牌到期时间; ? ? ? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |