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 规范中定义的
相关文章
|
2月前
|
存储 监控 安全
132_API部署:FastAPI与现代安全架构深度解析与LLM服务化最佳实践
在大语言模型(LLM)部署的最后一公里,API接口的设计与安全性直接决定了模型服务的可用性、稳定性与用户信任度。随着2025年LLM应用的爆炸式增长,如何构建高性能、高安全性的REST API成为开发者面临的核心挑战。FastAPI作为Python生态中最受青睐的Web框架之一,凭借其卓越的性能、强大的类型安全支持和完善的文档生成能力,已成为LLM服务化部署的首选方案。
|
安全 数据安全/隐私保护 Java
生死攸关的防护战:Struts 2 安全策略全面解析,让你的应用固若金汤!
【8月更文挑战第31天】Struts 2 框架功能强大,但其安全性需开发者妥善处理以防范各类威胁。本文通过具体案例探讨了在 Struts 2 中实施最佳安全实践的方法,涵盖跨站脚本攻击(XSS)、SQL 注入及跨站请求伪造(CSRF)等常见 Web 攻击的防护策略。通过使用 `<s:property>` 标签、参数化查询与 CSRF 保护拦截器,结合权限管理机制,开发者能够显著提升应用安全性,为用户提供更可靠的服务。
186 1
|
安全 关系型数据库 数据库
FastAPI数据库操作秘籍:如何通过高效且安全的数据库访问策略,使你的Web应用飞速运转并保持数据完整性?
【8月更文挑战第31天】在构建现代Web应用时,数据库操作至关重要。FastAPI不仅简化了API创建,还提供了高效数据库交互的方法。本文探讨如何在FastAPI中实现快速、安全的数据处理。FastAPI支持多种数据库,如SQLite、PostgreSQL和MySQL;选择合适的数据库可显著提升性能。通过安装相应驱动并配置连接参数,结合ORM库(如Tortoise-ORM或SQLAlchemy),可以简化数据库操作。使用索引、批量操作及异步处理等最佳实践可进一步提高效率。同时,确保使用参数化查询防止SQL注入,并从环境变量中读取敏感信息以增强安全性。
838 1
|
安全 中间件 API
【超详细教程】FastAPI表单处理全攻略:手把手教你实现安全的用户输入验证与数据校验!
【8月更文挑战第31天】FastAPI是一款注重开发效率与代码简洁性的现代API框架,其表单处理功能可有效接收并验证用户输入,提升应用安全性和用户体验。本文通过具体示例介绍如何利用FastAPI及Pydantic库处理表单数据,确保数据有效性和安全性。首先安装FastAPI和Uvicorn并创建基本应用,接着使用`Form`参数接收表单数据,并通过Pydantic模型验证数据,如检查邮箱格式和密码强度。最后,通过添加CORS中间件、HTTPS加密及CSRF保护等措施进一步增强安全性。通过本文,你将学会如何在FastAPI中安全地处理表单数据,构建高效且可靠的Web应用。
612 0
|
安全 API
FastAPI 学习之路(二十七)安全校验
FastAPI 学习之路(二十七)安全校验
FastAPI 学习之路(二十七)安全校验
|
NoSQL 测试技术 Redis
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
|
存储 测试技术 数据安全/隐私保护
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
FastAPI(八十三)实战开发《在线课程学习系统》--注册接口单元测试
|
测试技术 数据安全/隐私保护
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架
|
NoSQL Redis 数据库
FastAPI(八十一)实战开发《在线课程学习系统》接口开发-- 推荐课程列表与课程点赞
FastAPI(八十一)实战开发《在线课程学习系统》接口开发-- 推荐课程列表与课程点赞

热门文章

最新文章