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. 单点登录配置指南

单点登录-OIDC

概述#

OpenID Connect(OIDC)是基于OAuth 2.0协议之上的身份认证层,为应用提供了一种验证终端用户身份的标准化方式。OIDC协议已成为现代单点登录(SSO)系统的主流选择,被众多企业和互联网应用广泛采用。

核心概念#

身份提供商(IdP, Identity Provider): 负责认证用户并提供身份信息的服务,如专属集成平台
服务提供商(RP, Relying Party): 依赖身份提供商进行用户认证的应用系统,如钉钉
ID Token: 包含用户身份信息的JWT(JSON Web Token)
Access Token: 用于访问受保护资源的令牌
授权码(Authorization Code): 用于交换获取ID Token和Access Token的中间凭证
用户信息端点(UserInfo Endpoint): 提供额外用户信息的API端点

OIDC工作流程#

image.png
1.
用户访问应用: 用户尝试访问需要身份认证的应用
2.
应用重定向到IdP: 应用将用户重定向到身份提供商的授权端点
3.
用户认证: 用户在身份提供商处完成身份认证
4.
返回授权码: 身份提供商生成授权码并将用户重定向回应用
5.
获取令牌: 应用使用授权码向身份提供商的令牌端点请求ID Token和Access Token
6.
验证身份: 应用验证ID Token中的用户身份信息
7.
授权访问: 验证成功后,应用允许用户访问受保护资源

OIDC单点登录的优势#

标准化: 基于开放标准,兼容性好,易于集成
安全性: 使用JWT进行签名和加密,保证数据完整性和机密性
灵活性: 支持多种授权流程,适应不同应用场景
扩展性: 可以传递丰富的用户属性信息
移动友好: 原生支持移动应用和单页应用
集中式管理: 统一的身份认证和授权管理

配置流程#

本节以专属集成平台(IdP)与钉钉(RP)之间的单点登录配置为例,详细说明OIDC协议的实施步骤。

前提条件#

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

配置概览#

配置OIDC单点登录的主要步骤包括:
1.
在身份提供商(IdP)中创建OIDC应用
2.
配置应用基本信息和OIDC参数
3.
在服务提供商(RP)中配置SSO设置
4.
设置授权范围
5.
测试单点登录

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

添加自定义应用#

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

配置应用基本信息#

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

配置OIDC协议参数#

在应用详情页面,配置OIDC协议相关参数:
image.png
OIDC配置参数说明:
参数名称说明
登录方式控制访问该应用的登录方式选项
单点协议选择"OIDC"协议
RedirectURIs重定向URI,钉钉固定为:https://login.dingtalk.com/oauth2/oidcCallBack.htm
授权类型OIDC支持的授权类型,通常选择"authorization_code"
授权范围指定应用请求的权限范围,通常包括"openid"、"profile"、"email"等
ID Token签名算法JWT签名算法,常用RS256或HS256
Access Token过期时间访问令牌的有效期,建议设置合理的时间
Refresh Token过期时间刷新令牌的有效期,通常长于Access Token

在钉钉管理后台配置SSO设置#

访问钉钉SSO设置页面#

1
登录钉钉管理后台
登录钉钉管理后台
2
导航到SSO设置
导航至"安全与权限"→"SSO单点登录设置"
image.png

配置OIDC连接信息#

1
选择专属集成平台
选择配置方式为"专属集成平台"
2
填写连接参数
输入Issuer地址和Client ID
image.png
image.png
OIDC连接参数说明:
参数名称说明获取方式
Issuer身份提供商的签发者URL专属集成平台的应用所在地址,例如:https://xxxxxxx.dingtalk.com
Client ID应用的客户端ID从专属集成平台应用详情页获取,例如:AD124032EB21B9EAAB8F35B7A4119D0E

配置授权范围#

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

测试与验证#

测试登录流程#

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

常见问题排查#

问题现象可能原因解决方案
无法重定向到IdPRedirectURIs配置错误检查RedirectURIs是否正确配置为钉钉的回调地址
登录后返回错误Issuer或Client ID不正确核对钉钉SSO设置中的Issuer和Client ID是否与专属集成平台中的一致
无法完成认证用户未被授权检查用户是否在授权范围内
ID Token验证失败签名算法不匹配确认ID Token签名算法设置正确
单点登录成功但权限不足用户属性映射问题检查OIDC声明(Claims)配置,确保必要的用户属性正确传递

高级特性#

OIDC授权流程#

OIDC支持多种授权流程,适用于不同的应用场景:
1.
授权码流程(Authorization Code Flow): 最常用的流程,适合服务器端应用
2.
隐式流程(Implicit Flow): 适用于无后端的单页应用
3.
混合流程(Hybrid Flow): 结合授权码和隐式流程的特点
4.
密码凭证流程(Resource Owner Password Credentials Flow): 适用于高度信任的应用
5.
客户端凭证流程(Client Credentials Flow): 适用于服务器间通信

用户信息与声明(Claims)#

OIDC允许通过ID Token和UserInfo端点传递用户信息:
1.
标准声明: 如sub(用户ID)、name、email、picture等
2.
自定义声明: 企业可定义特定的用户属性
3.
声明映射: 可将IdP中的用户属性映射到特定的OIDC声明

会话管理#

OIDC提供多种会话管理机制:
1.
前端通道登出(Front-Channel Logout): 通过浏览器重定向实现
2.
后端通道登出(Back-Channel Logout): 通过服务器间直接通信实现
3.
会话状态(Session State): 监控用户会话状态的机制

安全考虑#

实施OIDC时的重要安全措施:
1.
PKCE(Proof Key for Code Exchange): 防止授权码拦截
2.
Nonce值: 防止重放攻击
3.
状态参数(State): 防止CSRF攻击
4.
令牌加密: 保护敏感信息
5.
Client Secret管理: 安全存储和定期轮换

与其他SSO协议比较#

OIDC vs SAML#

特性OIDCSAML
数据格式JSON/JWTXML
复杂度相对简单较为复杂
移动友好性高,原生支持低,需要特殊处理
成熟度较新但发展迅速成熟稳定
API集成原生支持有限支持
适用场景现代Web/移动应用企业级传统应用

OIDC vs CAS#

特性OIDCCAS
标准化程度国际标准,广泛采用开源项目,主要在教育领域
用户信息传递丰富,通过ID Token和UserInfo有限,需要额外配置
令牌格式JWT,自包含信息不透明票据
扩展性高,支持多种应用类型中等,主要针对Web应用
生态系统丰富多样相对有限

最佳实践#

安全建议#

使用HTTPS保护所有OIDC通信
实施适当的令牌生命周期管理
对敏感应用启用多因素认证
应用PKCE增强授权码流程安全性
实施IP地址过滤和异常登录检测
定期审计访问日志

用户体验优化#

设计友好的登录界面
最小化重定向次数
提供"记住我"功能
实现无缝的会话续期
提供清晰的错误信息

管理建议#

建立用户生命周期管理流程
实施角色基础的访问控制
定期审计授权范围
监控认证服务健康状况
制定应急响应计划

常见问题#

Q:OIDC与OAuth 2.0有什么区别?
Q:如何处理多个应用的单点登录?
Q:OIDC如何保护用户隐私?
Q:如何实现单点登出?
Q:OIDC的Token有哪些安全考虑?

附录#

OIDC常用端点#

端点名称用途
Authorization Endpoint用户认证和授权
Token Endpoint获取ID Token和Access Token
UserInfo Endpoint获取额外的用户信息
End Session Endpoint结束用户会话(登出)
JWKS URI获取公钥信息,用于验证Token签名
Discovery Document.well-known/openid-configuration,获取IdP配置信息

常用OIDC客户端库#

JavaScript: oidc-client-js
.NET: IdentityModel
Java: Nimbus JOSE+JWT
Python: oic
PHP: oauth2-client
Go: golang.org/x/oauth2
修改于 2026-05-06 13:06:46
上一页
应用网关
下一页
单点登录-SAML协议
Built with