基于ADFS实现阿里云与企业身份系统集成

简介: 很多企业都会使用AD来做企业内部身份管理。客户上云之后,希望能够打通其企业内部的AD数据跟云上RAM用户做到联合登录。本文会围绕ADFS跟阿里云SSO展开介绍一下基于AD/ADFS及相关自动化功能实现。

很多企业都会使用AD来做企业内部身份管理。客户上云之后,希望能够打通其企业内部的AD数据跟云上RAM用户做到联合登录。本文会围绕ADFS跟阿里云SSO展开介绍一下基于AD/ADFS及相关自动化功能实现。

本文大纲

分4个章节:

  • 介绍AD/ADFS/LDAP基本概念

  • 快速搭建AD/ADFS环境

  • 同步企业AD数据到阿里云

  • 配置与阿里云联合登录

AD/ADFS/LDAP基本概念

为了简化理解,我们可以把LDAP类比成SQL。它只是一个标准的协议,并不是具体产品。都是用来存储数据的,都只是一种规范形式。如同RDMS有Mysql、Oracle、PG等实现,LDAP具体到不同的厂商产品实现会在某些细节上表现出差异,如OpenLDAP Server和Window Active Directory。

LDAP

定义:一个轻量级的目录访问协议,用来访问目录服务(Directory Service)。1

LDAP是要访问目录服务,肯定是需要查询和操作数据,那这个Server中的数据是什么样的?如下所示,一个树形组织数据信息:

2

连接和认证

每个协议都会存在自己的连接方式和端口,LDAP也不例外,我们可以通过LDAP协议连接到Server,对应的端口和Http(Https)一样,支持两个389和636(默认端口),分别是LDAP和LDAPs;

3在此,推荐一款好用的工具:Ldap Admin Tool。可以直接连接AD服务器。下图是我连接到远端的一台AD服务器4

ps: 一般企业会通过配置多个OU来对用户进行分组管理。这个DEMO尽可能还原企业客户现状。

LDAP的查询操作

一个Search操作通过指定查询条件来查询对应条目的部分或者全部信息。一个标准LDAP search request包含的元素有多个,详细信息参考LDAP Search Operation,我们主要关注如下四个元素:

  1. Search Base DN:前面提到,整个LDAP Server存储的是一棵树,我们要查询符合条件的数据,可以从Root DSE 根节点进行检索,也可以通过DN指定到某个节点,只查询对接节点所代表的子树,缩小查询目标大小,提高检索性能。

  2. Search Scope:检索范围(我更想表达为检索方式,Base DN + Search Scope圈定了对应Search Request的目标查询对象),有四种检索范围: a. baseObject(base):只查询Base DN这个单个节点,看下这单个节点是否满足查询条件; b. singleLevel(one):查询Base DN的一级子节点,不包含Base DN,也不包含一级子节点下的其它子孙节点; c. wholeSubTree(sub):查询Base DN代表的整颗子树,包含Base DN和所有的子孙节点; d. subordinateSubtree(subordinates):查询Base DN代表的整颗子树,但是不包含Base DN,只包含子孙节点;

  3. Search Filter:查询的过滤条件,用来确定在指定的查询范围(Base DN + Scope)中的目标Entry。具体的Filter表达式语法可以参考这篇文档

  4. Required Attributes:顾名思义,这个是描述了要求Server应该返回的Entry属性集合,比如说cn、objectClass等属性。除了显式指定要求属性外,LDAP还定义了属性要求的两个特殊字符,"" 和 "+",分别代表要求所有的user attributes和operational attributes。如果一个Search Request指定的Required Attributes 集合为空,那么Server应该把对应的取值当成""处理,返回所有的user attributes。

Active Directory(简称AD)

目录是存储有关网络上对象的信息的层次结构。 目录服务(例如 Active Directory 域服务 (AD DS) )提供了存储目录数据以及使此数据可供网络用户和管理员使用的方法。 例如,AD DS 存储有关用户帐户的信息,如名称、密码、电话号码等,并使同一网络上的其他授权用户可以访问此信息。5

讲到AD,相关的概念就非常多了。如:域、域名系统(DNS)、林等等。可以查阅微软官方文档了解更多。

Active DirectoryFederation Services(简称ADFS)

ADFS 是微软的本地 SSO 解决方案,支持对 Active Directory(AD)和集成 Windows 身份验证(IWA)不兼容的应用进行用户认证。2000年掀起了软件即服务的热潮,而微软在这一年发布 ADFS 就是为了帮助企业更好地利用 SaaS。

本质上,ADFS 允许企业通过互联网创建一种“信任关系”,将本地设置中的身份扩展到基于云的环境从而对 AD 进行补充,其运行方式与使用安全断言标记语言(SAML)协议的基于 Web 应用的 SSO 服务基本一致。此外,ADFS 还可以使用 cookie 和 JSON Web 令牌 (JWT)等其他令牌标准来提供身份验证服务,但仅限于本地,无法在云上使用。基于SAML的ADFS联合身份验证方案,集成方案示意图:6

小结

通过以上简单介绍,企业身份系统要跟阿里云身份做集成用到两个技术点:

  • 基于LDAP协议,查询AD里面的员工身份数据,同步到阿里云。

  • 基于ADFS + SAML协议跟阿里云实现联合登录。

快速搭建AD/ADFS环境

网上有很多教程写关于如何搭建AD/ADFS环境。但步骤还是比较多,很容易配错。为了简化环境搭建过程,借助ECS自定义镜像 + Terraform的能力,实现一键搭建AD/ADFS环境。

自动化搭建基础设施带来的好处,想必通过看这个部署视频就能够直观看到了。如果是在控制台配置的话,需要配置VPC、Vswitch、安全组,再去ECS购买页一步步点击配置,非常麻烦而且易出错。而通过Terraform,一键部署你想要的环境,一边喝着咖啡一边环境就部署起来了。是不是很爽^_^。

原本需要小时级别的搭建工作,秒变成只需要1~2分钟就搞定。另外当你不需要这个环境时,删除也是极速。相比于在控制台上面操作,通过自动化来管理基础设施,效率提升不只一倍。

同步企业AD数据到阿里云

企业将员工数据同步到云上,能够简化企业管理员工作。云上很多产品如DMS、DataWorks之类的产品都需要做授权,而授权主体其实就是企业内部员工。所以很多企业用到阿里云的SAAS产品,都希望能够把数据打通。

通过LDAP协议查询企业AD的数据,再调用阿里云OpenApi把用户数据同步到阿里云。提供了一个轻量级小工具,能够帮助企业客户更快完成数据同步。演示视频:

视频操作讲解:

1、先在AD里面创建一个新用户。(模拟企业新入职员工)

2、通过这个同步工具,能够直观看到有一条新记录。(新入职员工)

3、点击同步,就实现将新员工账号同步到阿里云,是不是非常方便 ^_^。

脚本及配置下载

配置与阿里云联合登录

本节介绍基于AD/ADFS环境,如何跟阿里云实现RAM USER SSO,介绍搭建过程。

架构图7

通过“快速搭建AD/ADFS环境”,采用自定义镜像的方式,完成了AD/ADFS基础环境的配置。接下来就是配置阿里云SSO的过程。

自定义镜像注意事项

1、主机名及主机域。主机名::dc 完整的主机域账号名称::ad.landingzone.cc

2、本机如果要访问域服务器。需要绑定hosts。

获取AD DC元数据xml文件

1、本地访问:https://dc.landingzone.cc/federationmetadata/2007-06/federationmetadata.xml下载XML配置文件。

更新SSO登录设置8

将上一步下载的xml配置文件配置上去。另外辅助域名可以设置成企业自身的域名,比如本文可以设置成:landingzone.cc

同时复制保存SAML服务提供商元数据URL备用。

ADFS-添加阿里云为可信SAML SP9添加信赖方信赖10按照步骤一步一步完成配置。其中有一步:11这个就是在上面复制过来的值。

ADFS-为阿里云SP配置SAML断言属性12

选择规则类型13

配置转换声明规则14

重要

上面配置阿里云SSO的时候指定了辅助域名,所以这一步这样配置就行了。如果没有配置辅助域名,那这里配置就需要配置电子邮件后缀。这里要稍微注意下!

效果演示

接上一个视频,已经把用户u102@landingzone.cc 同步到RAM用户中了。接下来就可以实现SSO登录控制台,演示视频

通过SSO给企业管理带来非常直观的好处:

  • 不需要再云上单独创建一套新的用户体系了。员工直接使用域账号 + 密码登录阿里云控制台。

  • 当员工离职之后,在企业内部的AD中数据会被清理,自然也就无法再登录云控制台。

本文小结

通过本文的介绍,希望能够帮助大家更好地理解AD/ADFS/LDAP协议,以及如何跟阿里云进行身份集成。对文中提到的相关自动化代码、对云上企业IT治理(企业客户在云上的 人 / 财 / 物 / 权 / 法及基础设施自动化)有兴趣可以找我交流。

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
6月前
|
存储 安全 数据安全/隐私保护
特权账号管理系统,全方位的账号安全平台
如今,企业特权账户范围广、数量大且极不稳定是现代企业面临黑客等攻击行为的最大安全隐患。而且,由于特权账户的权限极大,一旦其被攻击者破解,就能完全掌控组织的IT基础设施,从而引发防护控制失效、机密数据泄露、商业诈骗和扰乱企业正常运作的严重后果。
83 0
|
3月前
|
监控 安全 UED
通过OAuth实现企业监控管理软件的安全认证流程
企业监控管理软件在当前信息时代中扮演着至关重要的角色,但随之而来的安全隐患也日益突出。为了保护用户数据和确保系统的安全性,采用OAuth(开放授权)协议是一种理想的选择。OAuth提供了一种安全而灵活的身份验证方式,适用于各种网络应用和服务。本文将深入探讨如何通过OAuth实现企业监控管理软件的安全认证流程,并通过代码示例演示关键步骤。
249 1
|
22天前
|
运维 监控 安全
特权账号管理之医疗行业篇
在数字化时代,数据库作为承载着众多关键业务系统的核心和基础,是核心业务开展过程中最具战略性的资产。同时,由于数据库系统的复杂性,决定了其存在各种管理和安全上的风险和漏洞,而这种漏洞一旦被利用,从而发生信息泄露事件,会给用户造成巨大的直接和间接损失,后果将不堪设想。
31 0
特权账号管理之医疗行业篇
|
4月前
|
运维 监控 安全
特权账号管理之金融行业篇
“特权账号”几乎成了黑客必窃取的类目。原因很简单:入侵者需要获取到特权凭证,获取进入数据中心核心系统权限,盗取数据。特权凭证成了窃取数据所必要的前提条件。
31 1
特权账号管理之金融行业篇
|
5月前
|
安全 数据安全/隐私保护 数据中心
针对现状为什么需要对特权账号进行管理
通常数据中心资产都存在大量的弱密码账号,在护网、攻防演练、甚至黑客入侵中,入侵方首要的突破口就是通过撞库、爆破等手段探测弱密码账号,根据获取的弱密码账号进行提权、横向渗透。这类账号的危害极高。
26 0
|
6月前
|
运维 安全 大数据
构建多账号云环境的解决方案|多账号身份权限集中管理
企业客户在阿里云采用多账号的资源结构,如果需要在每个账号内配置身份和权限,管理成本和安全风险都会大大增加。阿里云开放平台云SSO产品专家 夜来为您介绍如何使用云SSO进行多账号身份权限统一管理,包括与企业自有身份系统集成、统一的身份管理和多账号的权限配置。
1049 5
|
11月前
|
安全 区块链 数据安全/隐私保护
带你读《自主管理身份:分布式数字身份和可验证凭证》——第2章 自主管理身份的基本组成部分
带你读《自主管理身份:分布式数字身份和可验证凭证》——第2章 自主管理身份的基本组成部分
带你读《自主管理身份:分布式数字身份和可验证凭证》——第2章 自主管理身份的基本组成部分
|
11月前
《阿里云产品手册2022-2023 版》——应用身份服务 IDaaS
《阿里云产品手册2022-2023 版》——应用身份服务 IDaaS
114 0
|
11月前
|
存储 安全 数据管理
【应用安全】什么是联合身份管理?
【应用安全】什么是联合身份管理?
|
11月前
|
存储 安全 数据库
【企业安全】企业安全系列第 2 部分 — 身份和访问管理
【企业安全】企业安全系列第 2 部分 — 身份和访问管理