FastAPI(57)- 安全相关的概念

简介: FastAPI(57)- 安全相关的概念

OAuth2


  • OAuth2 是一个规范,它定义了几种处理身份验证和授权的方法
  • 这是一个相当广泛的规范,涵盖了几个复杂的用例
  • 它包括使用“第三方”进行身份验证的方法
  • 比如在抖音通过微信、QQ 登录,底层用的就是 OAuth2

 

OAuth1


  • OAuth 1,它与 OAuth2 非常不同,而且更复杂,因为它直接包含了关于如何加密通信的规范
  • 它现在不是很流行或常用
  • OAuth2 没有指定如何加密通信,它希望您的应用程序使用 HTTPS

 

OpenID Connect


  • OpenID Connect 是另一个规范,基于 OAuth2
  • 它只是扩展了 OAuth2,指定了 OAuth2 中相对模糊的一些内容,以尝试使其更具互操作性
  • 例如,Google 登录使用 OpenID Connect(其底层使用 OAuth2)
  • 但是 Facebook 登录不支持 OpenID Connect,它有自己的 OAuth2 风格

 

OpenID (not "OpenID Connect")


  • 还有一个“OpenID”规范,它试图解决与 OpenID Connect 相同的问题,但不是基于 OAuth2
  • 所以,这是一个完整的附加系统
  • 但它现在不是很流行或使用

 

OpenAPI


  • OpenAPI(以前称为 Swagger)是用于构建 API(现在是 Linux 基金会的一部分)的开放规范
  • FastAPI 基于 OpenAPI,这就是拥有多个自动交互式文档界面、代码生成等的原因
  • OpenAPI 有一种方法可以定义多个安全“方案”
  • 通过使用它们,可以利用所有这些基于标准的工具,包括这些交互式文档系统

 

apikey


一个应用程序特定的密钥,可以来自:

  • query param
  • header
  • cookie

 

http


标准的 HTTP 认证系统,包括

  • Bearer:一个 header Authorization,值为 Bearer 加上一个 token,这是从 OAuth2 继承的
  • HTTP 基本身份验证
  • HTTP 摘要

 

oauth2


处理安全性的所有 OAuth2 方法(称为“流”)

其中一些流程适用于构建 OAuth 2.0 身份验证提供程序(如 Google、Facebook、Twitter、GitHub 等)

  • implicit
  • clientCredentials
  • authorizationCode

 

但是有一个特定的“流程”可以完美地用于直接在同一应用程序中处理身份验证

  • password

 

openIdConnect


  • 有一种方法可以定义如何自动发现 OAuth2 身份验证数据
  • 这种自动发现是 OpenID Connect 规范中定义的
相关文章
|
4天前
|
SQL 关系型数据库 数据库连接
框架分析(10)-SQLAlchemy
框架分析(10)-SQLAlchemy
|
4天前
|
存储 缓存 JavaScript
python实战篇:利用request库打造自己的翻译接口
python实战篇:利用request库打造自己的翻译接口
39 1
python实战篇:利用request库打造自己的翻译接口
|
机器学习/深度学习 算法 算法框架/工具
Tensorflow源码解析1 -- 内核架构和源码结构
# 1 主流深度学习框架对比 当今的软件开发基本都是分层化和模块化的,应用层开发会基于框架层。比如开发Linux Driver会基于Linux kernel,开发Android app会基于Android Framework。深度学习也不例外,框架层为上层模型开发提供了强大的多语言接口、稳定的运行时、高效的算子,以及完备的通信层和设备层管理层。因此,各大公司早早的就开始了深度学习框架的研
6078 0
|
4天前
|
SQL API 数据库
Python中的SQLAlchemy框架:深度解析与实战应用
【4月更文挑战第13天】在Python的众多ORM(对象关系映射)框架中,SQLAlchemy以其功能强大、灵活性和易扩展性脱颖而出,成为许多开发者首选的数据库操作工具。本文将深入探讨SQLAlchemy的核心概念、功能特点以及实战应用,帮助读者更好地理解和使用这一框架。
|
4天前
|
存储 Oracle Java
Java 包和 API 深度解析:组织代码,避免命名冲突
Java 中的包 用于将相关的类分组在一起。可以将其视为文件目录中的一个文件夹。我们使用包来避免名称冲突,并编写更易于维护的代码。 包分为两类: 内置包(来自 Java API 的包) 用户定义的包(创建自己的包)
312 2
uiu
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow 2 基础概念语法与常用模块
TensorFlow 2 基础概念语法与常用模块
uiu
101 0
TensorFlow 2 基础概念语法与常用模块
|
前端开发 开发者
FastApi-19-高级用法
FastApi-19-高级用法
338 0
|
存储 数据库 数据安全/隐私保护
FastAPI(21)- 多个模型的代码演进
FastAPI(21)- 多个模型的代码演进
129 0
|
JSON 数据库 数据格式
FastAPI(46)- JSONResponse
FastAPI(46)- JSONResponse
297 0
FastAPI(46)- JSONResponse
|
JSON JavaScript API
FastAPI(1)- 简单介绍
FastAPI(1)- 简单介绍
274 0