基于IDaaS实现IdP用户同步至云SSO
使用云SSO能够便捷实现阿里云多账号身份管理及访问控制,快速实现多账号单点登录,但企业的用户信息通常存储在本地IdP(如AD)中,不支持通过产品化的方式将IdP中的用户同步到云SSO中,无法对用户身份进行统一管理、影响云SSO使用。本文档介绍了使用IDaaS将IdP用户同步到云SSO中的方法,便于企业在IdP中对用户身份进行统一管理,提升云上身份管理效率。
方案概述
使用云SSO能够便捷实现阿里云多账号身份管理及访问控制,快速实现多账号单点登录,但企业的用户信息通常存储在本地IdP(如AD)中,不支持通过产品化的方式将IdP中的用户同步到云SSO中,无法对用户身份进行统一管理、影响云SSO使用。本文档介绍了使用IDaaS将IdP用户同步到云SSO中的方法,便于企业在IdP中对用户身份进行统一管理,提升云上身份管理效率。
方案优势
用户身份便捷同步
通过引入IDaaS,使用产品化的方式将IdP中的用户快速同步到云SSO中,使用标准的LDAP及SCIM协议,无需单独开发同步程序。
用户身份统一管理
IdP用户信息同步到云SSO后,不需要在云SSO中单独新建用户,IDaaS支持增量同步,企业在IdP中能够对用户身份进行统一管理,提升云上身份管理效率。
客户场景
同步IdP用户信息到云SSO
场景描述
企业已在IdP中进行用户身份管理,并已经或计划在阿里云上使用云SSO进行多账号单点登录,需要将IdP中的用户同步到云SSO中,希望避免在云SSO中单独维护用户信息、对用户身份在IdP中进行统一管理。
适用客户
- 已经或计划使用云SSO,期望在IdP中统一管理身份的企业客户。
- 希望将IdP中的用户信息同步到云SSO中的企业客户。
同步IDaaS用户到云SSO
场景描述
企业已在IDaaS中进行用户身份管理,并已经或计划在阿里云上使用云SSO进行多账号单点登录,需要IDaaS中的用户同步到云SSO中,希望避免在云SSO中单独维护用户信息、对用户身份在IDaaS中进行统一管理。
适用客户
- 已经或计划使用云SSO,期望在IDaaS中统一管理身份的企业客户。
- 希望将IDaaS中的用户信息同步到云SSO中的企业客户。
方案架构
方案架构说明如下:
- IdP(方案中以AD为例)需支持LDAP协议,能够同步组织及用户信息。
- 在IDaaS中配置LDAP连接信息及IdP管理员账号(拥有只读权限)信息,IDaaS通过LDAP协议连接企业IdP,将IdP中的组织及用户信息同步到IDaaS。
- 在IDaaS中创建云SSO应用,通过SCIM协议将用户信息同步到云SSO中,支持增量同步。
说明:IDaaS分为免费版和企业收费版,本方案中使用免费版。
产品费用及名词
产品费用
产品名称 |
产品说明 |
产品费用 |
云身份服务IDaaS |
云身份服务 IDaaS(英文名:Alibaba Cloud IDentity as a Service,简称 IDaaS)是阿里云为企业用户提供的云原生的、经济的、便捷的、标准的身份、权限管理体系。 |
分为免费版和企业收费版,详情参见产品计费。 |
云SSO |
云SSO提供基于阿里云资源目录RD(Resource Directory)的多账号统一身份管理与访问控制。使用云SSO,您可以统一管理企业中使用阿里云的用户,一次性配置企业身份管理系统与阿里云的单点登录,并统一配置所有用户对RD账号的访问权限。 |
免费,详情参见产品定价。 |
名词解释
名称 |
说明 |
IdP |
Identity Provider,身份提供方。源自于 SAML 协议中定义,IdP 为进行用户认证、鉴权,并返回 SAML Response 结果信息给 SP 的身份提供方,后通用化指统一身份管理平台。 |
LDAP |
LDAP(轻型目录访问协议)是一种软件协议,使任何人都可以在公共互联网或公司内网上查找网络中的组织,个人和其他资源(例如文件和设备)的数据。 |
SCIM |
System for Cross-domain Identity Management,跨域身份管理系统,专用于不同系统之间账户、组织同步的国际通用规范,国内外有大量应用支持接收 SCIM 协议同步请求,以实现不同系统身份的互用性。 |
安全性
IDaaS安全性
IDaaS采用“默认安全”的产品设计,在“可用性”和“安全性”难以两全的场景中,IDaaS 会优先保障“安全性”,在此基础上,尽可能追求“易用性”,详情参见IDaaS默认安全设计。
传输安全性
- 传输协议:方案中相关产品使用业界标准的LDAP协议及SCIM协议保障数据安全传递,详情参见LDAP及SCIM。
- 传输加密:IDaaS支持LDAP连接开启StartTLS,建议AD中配置证书并在数据同步时开启StartTLS提升传输安全性,详情参见AD安全性配置。
- 数据权限:需要准备AD管理员账户及密码,至少拥有只读权限,用于从AD同步身份数据。
- 公网访问:目前企业IdP(如AD)需要公网可访问才能使用IDaaS免费版及企业版进行数据同步,建议在企业环境中开启针对AD的公网访问限制,并将IDaaS地址添加到白名单中。
注意事项
方案中从企业IdP(以AD为例)同步身份信息到IDaaS,目前需要IdP(以AD为例)支持公网访问,请阅读安全性章节内容以保障数据安全。
实施步骤
实施准备
本示例的实施准备工作说明如下:
- 已拥有AD,可公网访问,AD中已创建域及OU、已配置证书,已准备管理员账户(至少拥有只读权限)。
- 已创建IDaaS实例,本示例使用免费版,详情可参见免费开通实例。
- 已开通及使用云SSO,详情参见开始使用云SSO。
实施规划
本次示例部署说明如下:
- IdP使用AD,使用LDAP协议将AD中的
landingzone.cc
域、hangzhou OU
中的用户同步到IDaaS的组织hangzhou
中。 - 将IDaaS中的用户通过SCIM协议同步到云SSO中。
实施时长
在实施准备工作完成的情况下,本方案实施预计时长:45分钟。
操作步骤
操作步骤整体内容包括从AD同步用户到IDaaS、从IDaaS同步用户到云SSO两部分。如果仅希望将IDaaS中已有用户同步到云SSO中,可从“在云SSO中开启SCIM同步”这一步骤开始操作。
在IDaaS中创建组织
在IDaaS控制台中单击已创建的实例,进入账户与组织页面,创建组织landingzone.cc
,在landingzone.cc组织下创建组织hangzhou
。
同步AD用户到IDaaS
- 进入身份提供方页面,单击绑定AD,填写AD配置信息。
本示例操作以AD为例,如果需要绑定OpenLDAP可参考文档绑定OpenLDAP。
字段说明如下:
- 显示名称:用户在登录、使用 IDaaS 时可能看到。
- 服务器地址:AD 所在的服务器地址,AD 一般使用 389 端口,开启 ldaps 或 StartTLS 时一般使用 636 端口。本操作示例填写AD公网IP地址,如
139.xx.xx.1:389
。 - ldaps/StartTLS:开启后可以大幅提高连接的安全性,推荐开启。请在 AD安全性配置中了解如何开启。本操作示例选择开启StartTLS、通过证书指纹验证,单击一键获取按钮获取证书指纹。
- 出口IP:如果您希望只有 IDaaS 可以请求该 AD,请在服务器中配置 IP 白名单。建议对AD公网访问进行限制,并添加IDaaS IP白名单。
- 管理员账户:IDaaS 使用该 AD 管理员账户读取 AD 信息来完成数据同步或委托认证,该账户需要至少拥有读取权限,支持使用 UPN 格式(example@example.com)和 DN 格式(cn=admin,ou=技术部,dc=example,dc=com)。本示例管理员账户使用账户名。
- 管理员密码:输入该账户的登录密码。
- 单击下一步,填写同步配置,字段说明如下:
- 同步方向:同步来源所选的 AD 的用户/组织数据将会导入到 IDaaS 的这个节点之下。【来源节点】需要填写 AD 节点的 DN,AD 根节点的 DN 一般为 dc=example,dc=com(即您的域)。本示例填写
OU=hangzhou,DC=landingzone,DC=cc
,目标节点选择之前在IDaaS中创建的组织节点hangzhou
。
说明 目前仅支持入方向 AD 的同步,暂不支持出方向。
- 增量同步:IDaaS 将监听 AD 的用户/组织数据,每 10 分钟左右执行一次同步,将有变动的数据导入到 IDaaS 中。如果单次增量同步的数据量较大,可能会延迟处理。建议定期执行一次全量同步,以确保对齐两边数据,本示例选择开启。
- 您可以在字段映射中设置映射标识,使用 IDaaS 账户的某个字段(如手机号)与 AD 用户的某个字段(如手机号)进行匹配,如果匹配成功,将绑定并覆盖更新;否则将创建 IDaaS 账户。
- 在首次进行增量同步时,将自动执行一次全量同步。
- 如果单条账户数据无法导入,不影响其他数据导入。
- 失败信息可在【同步日志】中查看。
- 需要开启 AD 回收站才可接收 AD 删除类型的事件的消息。请在 增量同步中了解如何开启。
- 委托认证:用户可以使用 AD 用户/密码登录到 IDaaS。
- 自动更新密码:用户通过 AD 委托认证到 IDaaS 时,如果 IDaaS 账户的密码为空,则更新为 AD 用户的密码。AD 密码需满足 IDaaS 密码策略的要求,否则将无法自动更新。
高级配置
- 用户/组织ObjectClass:通过 ObjectClass 可以定义哪种类型的对象是用户/组织,例如将查询结果中 ObjectClass=user 的对象视作用户。一般无需修改。
- 用户登录标识:用户在使用 AD 委托认证登录 IDaaS 时,IDaaS 将根据这些属性去 AD 中查询用户并匹配密码,密码正确则允许用户登录 IDaaS。可以使用半角逗号对多个属性进行分割,此时为或关系,即可以使用任一属性登录。请确保多个属性对应同一个 AD 用户,否则将无法登录。
- 单击完成创建,开始用户同步,可以单击查看详情查看同步日志。
- 在账户与组织页面中可查看已同步过来的用户信息。
在云SSO中开启SCIM同步
- 登录 云SSO 控制台,在左侧导航栏,单击设置。
- 单击SICM用户同步配置下方按钮,开启 SCIM 同步,复制保存SCIM服务端地址备用。
- 点击生成密钥,该密钥只显示一次,请复制后妥善保存,用于填写 IDaaS 侧 Bearer Token 密钥。
在IDaaS中配置云SSO同步
- 在IDaaS实例控制台 应用 界面,点击 添加应用 进入 应用市场 ,选择 云SSO 应用模板进行添加。
- 切换至账户同步界面,打开 IDaaS 同步到应用 按钮。
- 选择同步范围后单击保存,推送模式选择 SCIM 协议 。
- 填写云SSO中的配置信息。配置字段说明如下:
- SCIM Base URL:在云SSO开启SCIM同步这一步骤中复制的SCIM服务端地址。
- 接口授权:选择 BearerToken 模式
- Bearer Token 密钥模式:在云SSO开启SCIM同步这一步骤中复制的密钥。
- 配置操作调用以及字段映射,配置说明如下:
- 操作调用:管理员可以选择性地订阅希望关注的变更事件,获取即时推送。当 IDaaS 中发生了对应变更后,将会自动触发同步,将变更即时更新至应用中。
- 字段映射:用于展示和编辑 SCIM 同步过程中的字段映射关系,暂不支持修改。
- 在配置完成后单击保存,建议您通过测试连接功能检查配置是否正确。
同步用户至云SSO
- 单击一键推送,配置的同步范围内的账户会同步至云SSO。
- 推送成功后系统会提示任务成功,可以前往日志-同步日志-任务执行中查看日志。
- 在云SSO控制台用户页面可查看已同步过来的用户信息。
配置单点登录
- 如果使用AD FS与云SSO进行单点登录,操作步骤请参考AD FS单点登录示例。
- 如果使用IDaaS作为云上IdP,通过AD/LDAP认证与云SSO进行单点登录可参考使用AD/LDAP认证登录三方应用及云SSO单点登录。
故障排除
IDaaS无法连接到AD
- 请确认绑定的AD允许公网访问。
- AD访问如果有白名单限制请将IDaaS出口IP添加至白名单。
- 请确认AD地址及端口填写正确,管理员账户密码填写正确并具有相应权限。
IDaaS无法连接到云SSO
- 请确认IDaaS中云SSO的SCIM服务端地址填写正确。
- 请确认IDaaS中云SSO的Bearer Token填写正确,尝试在云SSO中重新生成密钥更新到IDaaS中,配置页面单击保存后再尝试连接。
IDaaS可以同步AD中的OU吗?
可以,请在绑定AD时在同步方向中按实际需求选择AD来源节点及IDaaS中的目的节点。