本文介绍AD的配置和常见用法。
AD基础介绍
简介
活动目录AD(Active Directory)是微软Windows Server中负责架构中大型网络环境的集中式目录管理服务,可以管理域内的计算机、用户服务、网络资源、资源权限等。
基于网络端点能力,您无需开放公网端口即可实现AD的数据同步和委托认证。
绑定AD
在快速入门或身份提供方中,单击绑定AD,即可开始绑定AD流程。
第一步:连接AD
在第一步中,您需要在IDaaS中填写以下信息:
显示名称:用户在登录、使用IDaaS时可能看到。
网络端点:如果您希望只有IDaaS可以请求该AD,请在服务器中配置IP白名单。共享端点使用共享的、固定的公网出口IP,专属端点使用专属的、自定义的私网出口IP和公网出口IP。通过专属端点,IDaaS可以通过私网访问您的阿里云VPC,从而免开公网端口访问您的AD,详见:网络端点。
服务器地址:AD所在的服务器地址,AD一般使用389端口,如127.0.0.1:389。开启ldaps或StartTLS时一般使用636端口。
ldaps或StartTLS:开启后可以大幅提高连接的安全性,推荐开启。请在AD安全性配置中了解如何开启。
管理员账户:IDaaS使用该AD管理员账户读取AD信息来完成数据同步或委托认证,该账户需要至少拥有读取权限,支持使用UPN格式(example@example.com)和DN格式(cn=admin,ou=技术部,dc=example,dc=com)。
管理员密码:该账户的登录密码。
第二步:选择场景
在第二步中,选择希望和AD实现的场景能力。
能力说明
同步方向:同步来源所选的AD的用户或组织数据将会导入到IDaaS的这个节点之下。来源节点需要填写AD节点的DN,AD根节点的DN一般为dc=example,dc=com(即您的域)。
目前仅支持入方向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用户,否则将无法登录。
用户filter过滤:如果您需要筛选分散在不同组织中的部分用户同步到IDaaS,您可以自定义
filter
语句,只有满足条件的用户才可同步到IDaaS。filter
语句默认包含且关系的ObjectClass
条件,您可以单击查看详情查看完整的语句。更多注意事项和常见用法请查看Filter过滤。
第三步:字段映射
如果您在IDaaS中已存在存量数据,需要AD用户或组织以及IDaaS账户或组织进行绑定,或者希望使用AD中用户的某些字段数据作为IDaaS账户的数据,例如将AD用户的手机号作为IDaaS账户的账户名,则需要在第三步配置字段映射。如需使用映射标识能力,需手动单击启用,如下图的手机字段。
更多字段映射的说明请查看文档字段映射。
AD安全性配置
默认情况下,LDAP在传输数据时不加密且不受保护,存在明文数据被窃取的风险。使用ldaps或StartTLS可以有效提高数据传输的安全性。在AD中配置证书后,即可在IDaaS中使用ldaps或StartTLS,强烈建议您开启。
在服务器管理器中完成安装角色、升级为域服务器、添加证书(签名算法请使用SHA256)等流程后,即可完成证书的配置。
在配置完证书后,您可以在IDaaS中一键获取证书指纹,建立IDaaS对AD证书的信任关系,降低伪造证书的风险。
如果需要快速判断在AD界面上看到的和IDaaS一键获取的是同一个证书指纹,可以运行以下脚本
openssl s_client -connect server_host:port | openssl x509 -noout -pubkey | openssl pkey -pubin -outform DER | openssl dgst -sha256
AD个性化配置
ObjectClass
AD中的ObjectClass
是attribute的集合,每个对象都必须拥有ObjectClass
。可以通过ObjectClass
定义一个对象是用户、组织或计算机等,例如针对下图的用户,通过过滤语句objectclass=person
、objectclass=user
都可以找到该用户。在AD对象的属性中可以查看ObjectClass
。
登录标识
用户在使用AD委托认证登录IDaaS时,IDaaS将根据这些属性去AD中查询用户并匹配密码,密码正确则允许用户登录IDaaS。
一般可以使用userPrincipalName、sAMAccountName、手机号、邮箱、工号等属性用于登录,如有需要可在创建时或委托认证中定义。如果使用多个属性,请确保属性的唯一并对应同一个AD用户,否则用户将无法使用委托认证。
Filter过滤
修改ObjectClass
和filter
将影响AD的过滤条件,在执行全量同步时将删除不符合过滤条件的IDaaS账户和组织。建议在修改前调整同步保护限额,并充分测试过滤结果是否符合预期(例如使用另一个 IDaaS实例进行测试)。
基础介绍
如果您需要筛选分散在不同组织中的部分用户同步到IDaaS,您可以自定义filter
语句,只有满足条件的用户才可同步到IDaaS。filter
语句默认包含且关系的ObjectClass
条件,您可以单击查看详情查看完整的语句。
以下是AD filter
常用的语法和语句。
常用语法
运算符 | 含义 | 示例 |
= | 相等 | (cn=Alice) |
>= | 大于等于 | (pwdLastSet>=1319563845000000000) |
<= | 小于等于 | (sAMAccountName<=a) |
& | 且关系,必须满足全部条件 | (&(cn=CN*)(memberOf=cn=Test,ou=HQ,dc=Domain,dc=com)) |
| | 或关系,必须满足任一条件 | (|(cn=Test*)(cn=Admin*)) |
! | 非关系,必须不满足全部条件 | (!(memberOf=cn=Test,ou=HQ,dc=Domain,dc=com)) |
常用语句
场景 | 示例 |
用户名以“CN”开头 | (cn=CN*) |
指定邮箱的用户 | (|(proxyAddresses=*:alice@example.com)(mail=alice@example.com)) |
指定组的用户 | (memberOf=cn=Test,ou=HQ,dc=Domain,dc=com) |
AD同步配置
获取Base DN
Base DN是AD中某个节点的路径标识,IDaaS只会在该节点下执行查询和数据同步等操作。您可以在同步方向中设置来源节点的Base DN。
DN的格式为:ou=某组织,dc=example,dc=com,根节点的DN 一般为dc=example,dc=com(即您的域)。您也可以在AD管理中心中直接查看节点的DN,如下图所示:
另外,当节点的路径有变化时,节点的Base DN也会有变化,为避免节点路径调整导致AD数据同步出错,您在IDaaS中配置同步来源节点的Base DN时,IDaaS也会将该节点的ObjectGuid
作为节点指纹,当节点的Base DN有变动导致和节点指纹不匹配时,将阻断数据同步行为。重新配置来源节点后即可正常同步。
增量同步
IDaaS将监听AD的用户或组织数据,每10分钟左右执行一次同步,将有变动的数据导入到IDaaS中。如果单次增量同步的数据量较大,可能会延迟处理。建议定期执行一次全量同步,以确保对齐两边数据。
由于AD增量同步的限制,IDaaS需要通过AD回收站才可获取删除类型的事件的消息,您需要在AD管理中心中开启回收站功能(Windows Server 2012以上版本支持)。