Authing 知识库
🛠 开发资源🥂 集成案例🔭 常见问题🖥 控制台
3.0.0
3.0.0
  • 欢迎
  • Authing 概述
  • 快速开始
    • 注册 Authing 开发者账号
    • 第一个应用
    • 基础概念
    • 实现单点登录
    • 控制台概览
    • 部署模型和价格
    • 最佳开发实践
    • 我该如何选择 Authing 的技术
  • 进阶指南
    • 理解认证和授权
      • 用户名 - 密码认证
      • 邮箱 - 密码认证
      • 手机 - 验证码认证
      • JWT Token 释义及使用
    • 验证 Token
    • 配置用户权限
    • 迁移老数据进 Authing
    • 错误代码
  • 认证
    • 接入 OAuth 2.0
      • 创建 OAuth 应用
      • 使用 OAuth 授权
    • 接入 OpenID Connect
      • 创建 OIDC 应用
      • 使用 OIDC 授权
      • 理解 OIDC 流程
      • OIDC 常见问题
    • 接入 SAML
      • 创建 SAML Identity Provider 应用
      • 创建 SAML Service Provider 应用
      • 理解 SAML 流程
      • 同时使用 Authing 作为 SP 和 IdP
      • 使用 SAML Identity Provider
        • 在阿里云访问管理中使用
        • 在腾讯云访问管理中使用
        • 在 Auth0 中使用
      • 使用 SAML Service Provider
        • 与 Auth0 SAML IdP 对接
        • 与 SSOCircle SAML IdP 对接
    • 接入 LDAP
      • 配置 LDAP 服务
      • 使用 Authing 的 LDAP 用户目录
    • 接入 Active Directory
  • 社会化登录
    • 接入 Web 端社会化登录
      • GitHub 登录
      • 微信 PC 扫码登录
      • 微信 APP 内网页登录
      • 企业微信(第三方应用)网页授权登录
      • 企业微信(第三方应用)扫码登录
      • 企业微信(企业内部)扫码登录
      • 新浪微博登录
      • 钉钉登录
      • QQ 登录
      • 配置登录授权 Scope
    • 接入移动端社会化登录
      • 微信登录
      • 支付宝登录
    • 接入小程序登录
      • 小程序登录
        • 用户登录凭证(code)最佳实践
      • APP 拉起小程序登录
    • 打通微信账号体系
  • 扫码登录
    • 小程序扫码登录
      • 接入私有化小程序
    • APP 扫码登录
      • 快速接入
      • Web 端 SDK
      • 完整接口列表
      • 自定义配置项
      • 扫码登录原理
  • 移动应用登录
    • 移动应用 SSO
      • 自动检测登录
      • 唤起 App 登录
    • 移动应用身份提供商
  • 授权
    • Authorization 基础概念
      • 什么是基于角色的管理(RBAC)
      • 什么是基于属性的管理(ABAC)
      • 什么是零信任网络
    • Authorization at Authing
    • 接入 RBAC
    • 接入 ABAC
    • 接入组织机构管理
  • 扩展能力
    • 自定义认证流程(Pipeline)
      • 创建你的第一个 Pipeline 函数
      • Pipeline 函数开发指南
      • 应用场景
      • user 对象
      • context 对象
      • 使用环境变量
      • 可用的 Node Modules
      • 如何调试
      • Node SDK
      • GraphQL API
      • 常见问题
      • 私有化部署
    • 使用 Webhook
    • 自定义用户字段
  • 开发资源
    • 开发资源
    • API(GraphQL)
    • Guard for Web
      • 自定义 Guard 的 UI 样式
    • Guard for Mobile
      • Guard for React Native
    • Guard VS 自定义 UI
    • SDK for 单点登录
    • SDK for JavaScript
      • 查询用户权限
      • 绑定社会化登录
      • 自定义用户字段
      • 管理 MFA 口令
      • 自定义请求链接
    • SDK for Node.js
      • 权限控制
      • 查询用户权限
      • 组织机构管理
      • 老版权限控制(deprecated)
      • Pipeline 函数
      • 自定义用户字段
      • 绑定社会化登录
      • 管理 MFA 口令
      • 自定义请求连接
    • SDK for React Native
    • SDK for 微信小程序
    • SDK for Java
    • SDK for Objective-C
    • SDK for Python
    • SDK for Go
    • SDK for PHP
    • 函数计算(FaaS)
  • 通信
    • 邮件
    • SMS
  • MFA
    • 配置 MFA 安全口令
      • 使用 Microsoft Authenticator 添加 MFA 令牌
    • 接入 MFA
  • 安全
    • 配置 Web 安全域
    • 配置用户池密码强度
    • 配置密码加密函数
  • 其他
    • 常见问题
    • 集成案例
      • Authing 与 AWS 集成案例
      • 函数计算与 AaaS 集成案例
      • Odoo 集成案例
      • 社会化登录集成案例
    • 社交互联数据
    • 为 Authing 贡献 SDK
      • 了解 Authing 的模块
Powered by GitBook
On this page
  • OIDC 在后端如何处理
  • OIDC 三种认证流程的特征对比
  • 不同 response_type 对应的授权流程
  • 如何验证 Token 合法性
  • scope 参数对应的用户信息
  • 用户信息字段含义
  • id_token、access_token 和 token 之间的区别

Was this helpful?

  1. 认证
  2. 接入 OpenID Connect

OIDC 常见问题

了解 OIDC 包含的常见问题,在开发时可以查阅此文档。

Previous理解 OIDC 流程Next接入 SAML

Last updated 4 years ago

Was this helpful?

OIDC 在后端如何处理

请参考 Github 上的示例:

OIDC 三种认证流程的特征对比

特性

授权码流程

隐式流程

混合流程

所有 token 全部从授权路由返回

no

yes

no

所有 token 都从 token 路由返回

yes

no

no

token 不会暴露给前端

yes

no

no

客户端可以被 AP 认证

yes

no

yes

可以刷新 token

yes

no

yes

一次交互

no

yes

no

必须服务器-服务器通信

yes

no

varies

不同 response_type 对应的授权流程

"response_type" value

Flow

code

Authorization Code Flow(授权码流程)

id_token

Implicit Flow(隐式流程)

id_token token

Implicit Flow(隐式流程)

code id_token

Hybrid Flow(混合流程)

code token

Hybrid Flow(混合流程)

code id_token token

Hybrid Flow(混合流程)

如何验证 Token 合法性

scope 参数对应的用户信息

scope 名称

对应信息

address

address

email

email,email_verified

phone

phone_number, phone_number_verified

profile

birthdate,family_name,gender,given_name,locale,middle_name,name,nickname,picture,preferred_username,profile,updated_at,website,zoneinfo

offline_access

如果存在此参数,token 接口会返回 refresh_token 字段

unionid

unionid

authing_token

用户信息中的 Authing Token

用户信息字段含义

字段名

翻译

sub

唯一标识

openid

openid

unionid

unionid

name

姓名

given_name

名字

family_name

姓氏

middle_name

中间名

nickname

昵称

preferred_username

希望被称呼的名字

profile

基础资料

picture

头像

website

网站链接

email

电子邮箱

email_verified

认证邮箱

gender

性别

birthdate

生日

zoneinfo

时区

locale

区域

phone_number

手机号

phone_number_verified

认证手机号

address

地址

formatted

详细地址

street_address

街道地址

locality

城市

region

省

postal_code

邮编

country

国家

updated_at

信息更新时间

id_token、access_token 和 token 之间的区别

当你需要向 Authing 服务器请求属于该用户的资源时,需要携带 access_token,拥有 access_token,你就能够以终端用户的身份,访问位于 Authing 服务器上属于他的资源。

请参考:。

当你需要向你自己的服务器请求资源时,应该携带 id_token,同时你的服务器应该,然后再返回相应资源。id_token 相当于终端用户的身份证,用于认证用户身份。

当你需要向 Authing 服务器请求属于该用户的资源时,也可以携带 token。终端用户完成登录后,你的应用前端通过 中的 trackSession 函数能够直接获取到用户信息,其中的 token 字段,相当于 Authing 与该终端用户维持内部会话状态的 Cookie;使用 OIDC 协议授权时,如果发起授权请求时的 scope 包含 authing_token ,在用户信息接口获取到的用户信息中会包含 token 字段,相当于 Authing 与该终端用户维持内部会话状态的 Cookie。

oidc-demo
参考 OIDC 规范
参考 OIDC 规范
AuthingSSO SDK
使用 OIDC 应用的密钥验证 Token 合法性
检验此 token 的合法性