Authing 文档文档
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
元数据
应用集成
身份自动化
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
元数据
应用集成
身份自动化
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
旧版
概念
  • 什么是 Authing
  • 什么是用户池
  • 什么是应用
  • 什么是认证
  • 什么是联邦认证
  • 什么是零信任网络
  • 单点登录与单点登出
  • 什么是授权
  • 认证 vs 授权
  • 什么是 JWT Token
  • 什么是 ID Token
  • 什么是 Access Token
  • 什么是 Refresh Token
  • Access Token vs Id Token
  • 理解 OIDC 与 OAuth2.0 协议

    • OIDC 与 OAuth2.0 综述
    • 选择 OIDC 授权模式
    • OIDC 常见问题
  • 理解 SAML2 协议

  • 什么是多因素认证
  • 账号生命周期管理
  • 托管登录页 vs 可嵌入登录组件
  • CIAM 与 EIAM
  • 什么是 LDAP
  • 扫码登录的原理
  • 密码学基本概念
  1. 概念
  2. /
  3. 理解 OIDC 与 OAuth2.0 协议

  4. /
  5. 选择 OIDC 授权模式

¶ 选择 OIDC 授权模式

更新时间: 2025-02-18 09:00:47
编辑

你需要根据你的场景和你开发的应用类型选择一种合适的认证授权模式。本文将协助你选择合适的 OIDC 授权模式。

¶ 推荐的授权模式

不同类型的应用,需要选择不同的授权模式。下面的表格中是我们推荐的模式:

应用类型授权模式
有后端场景授权码模式
SPA,无后端隐式模式
服务器之间Client Credentials

¶ 你的应用是否需要 Id Token?

授权模式Access TokenId Token
授权码模式✅✅
隐式模式✅✅
密码模式✅✅
Client Credentials 模式✅❌

¶ 你的应用是什么类型?

如何选择 OIDC 授权模式取决于你在开发哪种类型的应用。参考以下流程图来选择你需要的授权模式:

¶ 你的应用代码是否能被公开访问

如果你的终端用户能够看到并修改你的应用代码,那么这个应用就是公开访问的。包括 SPA(单页 Web 应用)和移动端应用。这种场景下,应用无法安全地存储密钥。

¶ 你的应用是 SPA 还是原生应用?

如果你的应用是一个单页 Web 应用,运行在新版本的浏览器中,并且浏览器支持 Web Crypto,你应该使用 PKCE + 授权码模式。如果你的应用运行在老旧版本的浏览器中,浏览器不支持 Web Crypto,你应该使用隐式模式。隐式模式仅适用于应用无法安全存储密钥的场景,如果其他模式不可用时你才应该考虑用隐式模式。

如果你的应用是原生应用,你应该使用 PKCE + 授权码模式。

¶ 有没有终端用户在使用你的应用?

如果你的应用运行在服务器端,没有直接给终端用户使用,只是在进行服务器之间的交互,你应该使用 Client Credentials 模式。

¶ 应用和资源是否都被同一方持有?

如果你的应用以及应用需要访问的资源都是由你掌握,而且你的应用可以安全地存储用户账密,代码逻辑足够安全。当其他授权模式都不合适时,你可以选择密码模式。

¶ 授权码模式

授权码模式适合应用具备后端服务器的场景。授权码模式要求应用必须能够安全存储密钥,用于后续使用授权码换 Access Token。授权码模式需要通过浏览器与终端用户交互完成认证授权,然后通过浏览器重定向将授权码发送到后端服务,之后进行授权码换 Token 以及 Token 换用户信息。

了解更多信息,请参考使用授权码模式。

¶ 隐式模式

隐式模式适合不能安全存储密钥的场景(例如前端浏览器)。在隐式模式中,应用不需要使用 code 换 token,无需请求 /token 端点,AccessToken 和 IdToken 会直接从认证端点返回。

因为隐式模式用于不能安全存储密钥的场景,所以隐式模式不支持获取 Refresh Token。

了解更多信息,请参考使用隐式模式。

¶ 密码模式

密码模式适用于你既掌握应用程序又掌握应用所需资源的场景。密码模式要求应用能够安全存储密钥,并且能够被信任地存储资源所有者的账密。一般常见于自家应用使用自家的资源。密码模式不需要重定向跳转,只需要携带用户账密访问 Token 端点。

了解更多信息,请参考使用密码模式。

¶ Client Credentials 模式

Client Credentials 模式用于进行服务器对服务器间的授权(M2M 授权),期间没有用户的参与。你需要创建编程访问账号,并将 AK、SK 密钥对交给你的资源调用方。

Client Credentials 模式不支持 Refresh Token。

了解更多信息,请参考使用 Client Credentials 模式。

上一篇: OIDC 与 OAuth2.0 综述 下一篇: OIDC 常见问题
  • 推荐的授权模式
  • 你的应用是否需要 Id Token?
  • 你的应用是什么类型?
  • 你的应用代码是否能被公开访问
  • 你的应用是 SPA 还是原生应用?
  • 有没有终端用户在使用你的应用?
  • 应用和资源是否都被同一方持有?
  • 授权码模式
  • 隐式模式
  • 密码模式
  • Client Credentials 模式

用户身份管理

集成第三方登录
手机号闪验 (opens new window)
通用登录表单组件
自定义认证流程

企业内部管理

单点登录
多因素认证
权限管理

开发者

开发文档
框架集成
博客 (opens new window)
GitHub (opens new window)
社区用户中心 (opens new window)

公司

400 888 2106
sales@authing.cn
北京市朝阳区北辰世纪中心 B 座 16 层(总)
成都市高新区天府五街 200 号 1 号楼 B 区 4 楼 406 室(分)

京ICP备19051205号

beian京公网安备 11010802035968号

© 北京蒸汽记忆科技有限公司