1. 单点登录配置指南
专属集成平台
  • 快速开始
    • 集成平台概览
  • 身份与用户管理
    • 用户管理
      • 用户与组织架构管理
    • 角色管理
      • 角色管理配置说明
    • 属性管理
      • 属性管理配置说明
      • IDAAS 扩展物理字段使用说明
    • 上游身份数据集成
      • 通讯录身份集成概述
      • 集成连接器配置指南
        • 通讯录集成-泛微
        • 通讯录集成-飞书
        • 通讯录集成-企业微信
        • 通讯录集成-AD
        • 通讯录集成-睿人事
        • 通讯录集成-北森
        • 通讯录集成-SCIM
        • 通讯录集成-用友EHR
        • 通讯录集成-Azure AD
        • 通讯录集成-致远
        • 通讯录集成-LDAP
        • 通讯录集成-数据库
        • 通讯录集成-钉钉
          • 基础说明
          • 钉钉集成连接器如何配置属性映射
      • 通过连接流实现身份集成
        • 在连接流画布中完成身份集成配置
      • 身份集成常见问题
        • 常见问题 & 排错指南
    • 下游身份数据同步
      • 通讯录同步概述
      • 同步连接器配置指南
        • 通讯录同步-企业微信
        • 通讯录同步-AD
        • 通讯录同步-用友U8C
        • 通讯录同步-钉钉
          • 基础说明
          • 如何配置部门职位扩展字段
      • 通过连接流实现身份同步
        • 使用连接流实现身份下游同步
      • 身份同步常见问题
        • 常见问题 & 排错指南
        • 使用代理网关进行身份同步
  • 认证源管理
    • 认证源基础说明
      • 认证源选型说明
      • 认证源管理概述
    • 认证源配置指南
      • 基础协议配置
        • 认证源-CAS协议
        • 认证源-OIDC协议
        • 认证源-OAuth2协议
      • 三方认证源配置手册
        • 认证源-钉钉
        • 认证源-AD
        • 认证源-飞书
        • 认证源-LDAP
        • 认证源-微信
        • 认证源-微信公众号
        • 认证源-Google Workspace
        • 认证源-AD Azure
        • 认证源-美云智数
        • 认证源-企业微信
  • 应用管理
    • 基础说明
      • 应用管理概述
      • 应用创建与配置
    • 应用单点登录
      • 单点登录概述
      • 单点登录配置
      • 单点登出配置
      • 授权范围配置
      • 自定义集成单点登录配置说明
      • 应用密码代填
      • 应用网关
      • 单点登录配置指南
        • 单点登录-OIDC
        • 单点登录-SAML协议
        • 单点登录-OAuth2
        • 单点登录-CAS协议
        • 单点登录-钉钉SSO
        • 单点登录-分贝通
        • 单点登录-用友NCC
        • 单点登录-宜搭
        • 单点登录-泛微OA
        • 单点登录-致远OA
        • 单点登录-金蝶云星空
        • 单点登录-中国电子云邮箱
        • 单点登录-阿里云控制台(RAM)
        • 单点登录-纷享销客应用
        • 单点登录-纷享销客待办
        • 单点登录-Exchange
        • Exchange-双入口配置指南
    • 应用授权管理
      • 应用授权概述
      • 基于组织架构和用户授权
      • 基于角色授权(RBAC)
      • 基于用户属性授权(ABAC)
      • 用户自主申请应用(OA审批授权)权限
    • 应用分发
      • 企业应用分发
      • ABM应用分发
    • 使用应用调用集成平台 OPENAPI
      • M2M接口授权
      • 接口调用权限配置说明
  • 连接中心
    • 产品概述
      • 什么是 AI 连接流
      • AI 连接流的典型使用场景
    • 基础功能
      • 流程运行日志
      • 功能概览
      • 如何创建 AI 工作流
      • 授权凭证管理
      • 错误处理
    • 节点说明
      • 节点基础类型说明
      • 数据处理节点
        • 文本处理节点
        • 数组处理
        • 数据集合节点
      • 文件处理节点
        • 「Base64 转 URL」动作说明
        • 「PPT分页切割」动作说明
      • 应用节点
        • Teambition
        • 金蝶云 K3Cloud
      • 内置节点
        • 子流程调用
        • 缓存处理
        • 分支节点
        • 循环执行
        • MYSQL 触发动作说明
        • 数字签名
        • Webhook触发
        • 缓存列表处理
        • 条件分支
        • FTP
        • 延时节点
        • 模型子节点
        • MCP SERVER 工具
        • 邮件发送
        • 存储子节点
        • 工具子节点
        • HTTP 请求
        • 变量节点
        • 加解密节点
        • 返回变量
      • 运维管理节点
        • 数据校验节点
      • AI节点
        • 构建你的第一个 AI Agent
        • AI 浏览器操作节点
        • AI Agent节点使用指南
        • AI 消息对话节点 & 组件嵌入
  • 审计日志
    • 管理员行为日志
    • 用户变更日志
    • 接口调用日志
    • 用户行为日志
    • 消息发送日志
  • 权限中心
    • 管理员账号管理
    • 管理员角色管理
  • 品牌设置
    • 登录页设置
      • 登录页面配置
      • 登录页CSS自定义页面样式
      • CSS定制页面内容:样式修改指南及故障排除
    • 短信设置
      • 短信模板配置
      • 短信服务使用及签名修改使用指南
      • 短信服务-自定义连接流配置
      • 阿里云短信网关配置指引
    • 邮件设置
      • 邮件模板配置
      • 通过自定义连接流发送邮件
      • SMTP 配置与测试支持文档
    • 企业消息设置
      • 企业消息配置
      • 企业消息(钉钉_飞书)配置
    • 分发页面设置
      • 分发页面设置
  • 平台设置
    • 功能概述
    • 授权管理
    • 代理网关
    • 授权信息
    • 登录策略配置
      • 弱密码检测功能说明
      • 登录流程配置
      • 自动登录功能配置
    • MFA 配置
      • MFA基础配置
      • 使用连接流自定义 MFA 策略
    • 运维日志
      • 运维日志下载
  • 最佳实践
    • AD-LDAP接入指南
    • 第三方平台应用创建指南
      • 钉钉
        • 钉钉全套集成指南
        • 创建钉钉开放平台应用
      • 飞书
        • 飞书全套集成指南
        • 创建飞书开放平台应用
      • 企微
        • 企业微信全套集成指南
        • 创建企业微信开放平台应用
  • 开放接口
    • 鉴权认证
      • 获取access_token(请求体方式)
      • 获取access_token(Basic认证方式)
    • 用户管理
      • 查询用户
      • 创建用户
      • 根据多个条件过滤并查询用户信息
      • 根据用户帐号获取用户信息
      • 修改用户
      • 启用/禁用用户
      • 删除用户
      • 修改用户密码
    • 组织部门
      • 获取组/部门的列表
      • 创建组/部门
      • 根据组/部门ID获取组/部门的信息
      • 修改组/部门
      • 删除组/部门
      • 根据组/部门ID获取下级组/部门信息
      • 过滤部门信息
    • 角色管理
      • 创建角色
      • 获取单个角色详情
      • 修改角色
      • 删除角色
      • 查询角色列表
      • 根据应用ID和用户ID获取角色列表
      • 查看角色所对应的用户列表
      • 给多个用户添加静态角色
      • 删除用户静态角色
      • 获取用户的角色信息
    • 连接中心
      • Webhook启动连接流
    • 事件通知
      • 连接器事件通知
  1. 单点登录配置指南

单点登录-OAuth2

本文介绍如何在专属集成平台配置 OAuth2 单点登录,实现与平台的安全认证对接。

概述#

OAuth2.0是一种授权框架标准,允许第三方应用获得对HTTP服务的有限访问权限。它通过将用户认证与资源授权分离,为应用提供了一种安全、标准化的方式来获取用户授权,而无需直接处理用户凭证。虽然OAuth2.0本身主要是一种授权协议而非认证协议,但通过适当的实现,它也可以用于构建单点登录(SSO)解决方案。

核心概念#

资源所有者(Resource Owner): 能够授予对受保护资源访问权限的实体,通常是终端用户
客户端(Client): 请求访问受保护资源的应用程序,如平台
授权服务器(Authorization Server): 验证资源所有者身份并颁发访问令牌的服务器,如专属集成平台
资源服务器(Resource Server): 托管受保护资源的服务器,能够接受和响应携带访问令牌的请求
访问令牌(Access Token): 用于访问受保护资源的凭证
刷新令牌(Refresh Token): 用于获取新访问令牌的凭证,通常具有较长的生命周期

工作流程#

image.png
OAuth2支持多种授权流程,最常用的授权码流程(Authorization Code Flow)基本步骤如下:
1.
请求授权: 客户端将用户重定向到授权服务器,请求用户授权
2.
用户授权: 用户在授权服务器进行身份验证并授权客户端访问
3.
授权码返回: 授权服务器将授权码返回给客户端
4.
请求令牌: 客户端使用授权码向授权服务器请求访问令牌和刷新令牌
5.
颁发令牌: 授权服务器验证授权码并颁发令牌
6.
访问资源: 客户端使用访问令牌请求资源服务器上的受保护资源

OAuth2用于SSO的优势#

安全性: 不需要在多个系统间共享用户凭证
灵活性: 支持多种授权流程,适应不同场景
可扩展性: 可以轻松添加新的应用到SSO体系中
用户体验: 提供无缝的登录体验
标准化: 基于广泛采用的开放标准,兼容性好
第三方集成: 易于与第三方应用和服务集成

配置流程#

本节以专属集成平台(授权服务器)与平台(客户端)之间的单点登录配置为例,详细说明OAuth2协议的实施步骤。

前提条件#

拥有专属集成平台管理员账号
拥有平台管理员账号
确保专属集成平台中已创建相应用户
了解OAuth2协议的基本原理和流程

配置概览#

配置OAuth2单点登录的主要步骤包括:
1.
在专属集成平台中创建OAuth2应用
2.
配置应用基本信息和OAuth2参数
3.
在平台中配置OAuth2企业认证源
4.
设置授权范围
5.
测试单点登录

在专属集成平台中创建OAuth2应用#

添加自定义应用#

1
登录管理控制台
登录专属集成平台管理控制台
2
导航到应用市场
导航至"应用管理"→"应用市场"
3
创建自定义应用
选择"添加应用"→"自定义应用"
image.png

配置应用基本信息#

image.png
基本信息参数说明:
参数名称说明
自定义应用名称应用名称,建议使用有意义的描述性名称,如"SSO"
应用分类应用分类,可选择已有分类或自定义新增分类
首页地址应用的主页地址
Client ID应用的唯一标识,系统自动生成,不可编辑
Client Secret应用的密钥,系统自动生成,不可编辑,可重制

配置OAuth2协议参数#

在应用详情页面,配置OAuth2协议相关参数:
image.png
OAuth2配置参数说明:
参数名称说明
登录方式控制访问该应用的登录方式选项
单点协议选择"OAuth2"协议
RedirectURIs重定向URI,平台的回调地址,例如:https://IP地址/login/oauth/oauth2
授权类型OAuth2支持的授权类型,通常选择"authorization_code"
授权范围指定应用请求的权限范围,如"profile"、"email"等
Access Token过期时间访问令牌的有效期,建议设置合理的时间
Refresh Token过期时间刷新令牌的有效期,通常长于Access Token

在平台配置OAuth2企业认证源#

1
登录管理控制台
登录平台管理控制台
2
添加认证源
导航至"系统设置"→"认证管理"→"企业认证源",选择"添加认证源"→"OAuth2认证源"
3
配置认证源参数
配置认证源参数
OAuth2企业认证源参数说明:
参数名称说明获取方式
认证源名称自定义名称,如"专属集成平台"自定义
认证类型选择"OAuth2"固定值
Client ID应用的客户端ID从专属集成平台的应用详情页获取
Client Secret应用的客户端密钥从专属集成平台的应用详情页获取
授权端点URL授权服务器的授权端点专属集成平台提供,通常为 https://[域名]/oauth2/v1/authorize
令牌端点URL授权服务器的令牌端点专属集成平台提供,通常为 https://[域名]/oauth2/v1/token
用户信息端点URL获取用户信息的API端点专属集成平台提供,通常为 https://[域名]/oauth2/v1/userinfo
回调URL平台的回调地址平台自动生成,需要与专属集成平台中配置的RedirectURIs一致
授权范围请求的权限范围与专属集成平台中配置的授权范围对应

配置授权范围#

1
进入授权范围
在应用详情页,切换到"授权范围"选项卡
2
选择授权方式
可通过以下方式进行授权:
基于组织架构和用户授权:授权特定部门或用户
基于角色授权(RBAC):通过静态标签(角色)授权
基于用户属性授权(ABAC):通过动态标签(用户属性)授权
3
保存配置
根据企业需求选择合适的授权方式并配置授权范围,保存配置

测试与验证#

测试登录流程#

1
访问平台登录页面
访问平台登录页面
2
选择OAuth2认证
选择"OAuth2企业认证源"登录方式
3
完成认证
系统将重定向到专属集成平台的登录页面,输入用户名和密码完成认证
4
验证结果
认证成功后,自动重定向回平台,完成登录

常见问题排查#

问题现象可能原因解决方案
无法重定向到授权服务器RedirectURIs配置错误检查RedirectURIs是否正确配置
登录后显示错误信息Client ID或Secret不正确核对平台中的Client ID和Secret是否与专属集成平台中的一致
授权失败用户未被授权检查用户是否在授权范围内
令牌验证失败令牌已过期或无效检查Access Token的过期时间设置,确保时钟同步
获取用户信息失败用户信息端点配置错误验证用户信息端点URL是否正确
无法完成整个登录流程授权类型不匹配确保客户端与授权服务器使用相同的授权类型

高级特性#

OAuth2授权流程类型#

OAuth2支持多种授权流程,适用于不同的应用场景:
1.
授权码流程(Authorization Code Flow): 最安全的流程,适合服务器端应用
2.
隐式流程(Implicit Flow): 简化版流程,适用于无后端的客户端应用
3.
资源所有者密码凭证流程(Password Credentials Flow): 适用于高度信任的应用
4.
客户端凭证流程(Client Credentials Flow): 适用于服务器间通信,不涉及用户
5.
刷新令牌流程(Refresh Token Flow): 用于在不重新认证的情况下获取新的访问令牌

OAuth2作用域(Scope)#

OAuth2通过作用域(Scope)控制授权的粒度:
1.
标准作用域: 如profile、email、address等
2.
自定义作用域: 根据业务需求定义的特定权限
3.
作用域验证: 资源服务器根据令牌中的作用域控制资源访问权限

令牌管理#

有效的令牌管理对于OAuth2实现的安全性至关重要:
1.
令牌类型: Bearer、JWT、MAC等不同类型的令牌
2.
令牌生命周期: 短期访问令牌与长期刷新令牌的配合使用
3.
令牌吊销: 在用户取消授权或安全风险时撤销令牌的机制
4.
令牌存储: 安全存储令牌以防止泄露

安全考虑#

实施OAuth2时需要考虑的安全措施:
1.
PKCE(Proof Key for Code Exchange): 防止授权码拦截攻击
2.
状态参数(State): 防止跨站请求伪造(CSRF)攻击
3.
重定向URI验证: 防止重定向攻击
4.
客户端认证: 验证客户端身份的机制
5.
TLS/SSL: 保护所有通信通道的加密

与其他单点登录协议比较#

OAuth2 vs OIDC#

特性OAuth2OIDC
主要目的授权(Authorization)认证(Authentication)和授权
用户信息不直接提供,需额外获取通过ID Token直接提供
标准化程度授权流程标准化在OAuth2基础上添加身份层
复杂度相对简单较为复杂
适用场景API授权、资源访问控制身份验证、单点登录

OAuth2 vs SAML#

特性OAuth2SAML
数据格式JSONXML
复杂度中等较高
移动友好性高,原生支持低,需要特殊处理
使用范围Web API、移动应用企业级Web应用
成熟度较新但发展迅速成熟稳定
实现难度相对简单相对复杂

OAuth2 vs CAS#

特性OAuth2CAS
设计目标授权框架单点登录系统
标准化程度国际标准开源项目,主要在教育领域
令牌格式多种可选特定票据结构
扩展性高,支持多种场景中等,主要针对Web应用
生态系统丰富多样相对有限

最佳实践#

安全建议#

使用HTTPS保护所有OAuth2通信
实施适当的令牌生命周期管理
对敏感应用启用多因素认证
应用PKCE增强授权码流程安全性
验证所有重定向URI
定期轮换Client Secret
实施IP地址过滤和异常登录检测
限制令牌的作用域和权限

用户体验优化#

设计友好的授权页面
明确说明请求的权限
最小化重定向次数
使用刷新令牌减少用户重新登录的频率
提供取消授权的机制
实现优雅的错误处理和提示

管理建议#

建立应用注册和审核流程
监控OAuth2服务的健康状况
审计授权和令牌使用情况
建立安全事件响应计划
定期审查并更新OAuth2配置
制定清晰的用户隐私政策

常见问题#

Q:OAuth2和单点登录(SSO)有什么关系?
Q:OAuth2如何处理用户注销和会话管理?
Q:如何确保OAuth2实现的安全性?
Q:OAuth2的不同授权流程应该如何选择?
Q:OAuth2与微服务架构如何结合?

附录#

OAuth2常用端点#

端点名称用途
Authorization Endpoint用户授权请求
Token Endpoint获取访问令牌和刷新令牌
Redirection Endpoint接收授权响应
Resource Endpoint访问受保护资源
Token Revocation Endpoint撤销令牌
Token Introspection Endpoint检查令牌状态和信息

常用OAuth2客户端库#

JavaScript: oauth.js, auth0.js
Java: Spring Security OAuth, Java OAuth Client
.NET: DotNetOpenAuth, IdentityModel
PHP: The PHP League OAuth2 Client
Python: Requests-OAuthlib, Authlib
Go: golang.org/x/oauth2
修改于 2026-05-06 13:10:46
上一页
单点登录-SAML协议
下一页
单点登录-CAS协议
Built with