背景
上周拜访两家客户,有一家是IDAAS的重度用户,在使用Flink产品时发现不支持RAM Role,只能使用RAM User来管理用户,客户问在这种场景下IDaaS如何支持;另外一家用户使用了OpenLDAP来做企业的IDP,现在想使用云SSO来做多账号统一用户身份管理。本篇文章介绍一下这三个产品集成场景。
产品介绍
LDAP
LDAP是一个基于X.500标准的轻量目录访问协议,全称为Lightweight Directory Access Protocol。
LDAP理解为:LDAP = 目录数据库 + 访问协议。LDAP协议常见的实现如下表:
背景中介绍的客户使用OpenLDAP来管理企业内部的组织与员工信息。
IDAAS
云身份服务 IDaaS(英文名:Alibaba Cloud IDentity as a Service,简称 IDaaS)是阿里云为企业用户提供的云原生的、经济的、便捷的、标准的身份、权限管理体系。
在Landing zone的身份管理范畴内,基本会上聚焦在与既有账号联动这块。比如跟企业现在的LDAP打通。本文也会介绍这块内容
云SSO
云SSO提供基于阿里云资源目录RD(Resource Directory)的多账号统一身份管理与访问控制。使用云SSO,您可以统一管理企业中使用阿里云的用户,一次性配置企业身份管理系统与阿里云的单点登录,并统一配置所有用户对RD账号的访问权限。
有些企业会使用IDAAS来做企业IDP,所以在IDAAS里面可以集成阿里云的RAM USER SSO\ROLE SSO\云SSO等。
集成场景
环境准备
搭建OpenLDAP环境,可以购买一台ECS,通过Docker的方式来快速搭建。启动指令:
docker run --name ldap-server --hostname ldap-server -p 389:389 -p 636:636 -e LDAP_TLS_VERIFY_CLIENT="try" -e LDAP_DOMAIN="landingzone.com" -e LDAP_ADMIN_PASSWORD="admin1" --detach osixia/openldap:latest
搭建LDAP管理后台
docker run --name ldap-admin -p 6443:443 --link ldap-server:ldap-host --env PHPLDAPADMIN_LDAP_HOSTS=ldap-host --detach osixia/phpldapadmin:latest
这样可以方便操作LDAP目录树里面的数据。比如添加OU\Group、账户等。用于后续演示。
配置完的数据如下图:
IDAAS + LDAP集成
场景:客户目前在使用LDAP管理员工与组织数据,现在想使用IDAAS。就需要把LDAP里面的员工数据同步到IDAAS。同时实现与IDAAS的联合登录。
数据同步
IDAAS上面配置
建立映射字段关系:
触发同步之后,数据同步效果如下:
组织同步
账户同步
优势:当企业在OpenLDAP上面创建新员工之后会自动同步到IDAAS中。
集成SSO
1、先在身份提供方页面完成配置
2、在登录页面
表示IDAAS的登录是通过 LDAP来验证的。
3、登录链接
4、输入LDAP里面的账号与密码
IDAAS + 云SSO集成
场景:客户有多个云账号,希望借云SSO来统一管理。同时客户也是IDAAS用户。
配置SSO
1、添加应用
2、配置应用
单点登录配置
步骤一:在云SSO获取服务提供商(SP)元数据
登录云SSO控制台。
在左侧导航栏,单击设置。
在SSO登录区域,复制服务提供商(SP)的ACS URL和Entity ID。
步骤二:在云SSO中启用SSO
在云SSO的左侧导航栏,单击设置。
在SSO登录区域,单击配置身份提供商信息。
在配置身份提供商信息对话框,选择上传元数据文档。
单击上传文件,上传从IDAAS中下载 的IDP元数据。
打开SSO登录开关,启用SSO登录。
用户登录效果
路径:用户输入LDAP账号与密码 -> LDAP身份认证 -> 点击云SSO应用 -> 完成云SSO身份认证
IDAAS同时支持RAM USER SSO 与RAM Role SSO
背景里面提到的客户因为用到了像Flink这样的产品不支持Role鉴权的。所以可以给某些用户开USER SSO。