AD DS 与 AD LDS

微软的 Active Directory 集成了 DNS server, LDAP server, Kerberos server,其中的目录部分功能称为 Active Directory Domain Services,简称AD DS,由于很多场合下大家只需要目录服务,所以微软把这部份从完整的 Active Directory 剥离出来,开始叫 Active Directory Application Mode,简称 ADAM,后来改名叫 Active Directory Lightweight Directory Services,简称 AD LDS。

完整的 AD 只能部署在 Windows Server 版本上,而 AD LDS 则可以部署在普通 Windows 上,比如 Windows 10 专业工作站版。

AD LDS 安装和配置

  1. 控制面板 -> 程序 -> 启用或关闭 Windows 功能,或者 Windows 设置 -> 应用 -> 可选功能 -> 更多 Windows 功能, 在弹出的对话框中选择 Active Directory 轻型目录服务,点击「确定」按钮安装 AD LDS。
  2. Windows 设置 -> 应用 -> 可选功能-> 添加功能,在弹出的对话框中选择RSAT: Active Directory 域服务和轻型目录服务工具,RSAT 是 Remote Server Administration Tools 的缩写,微软发布的一套远程服务管理工具集。
  3. 从 Windows 开始菜单选择 Windows 管理工具 -> Active Directory 轻型目录服务安装向导,这会创建一个新的 AD LDS 实例,在安装过程中选择 是,创建一个应用程序目录分区,输入 CN=ad,DC=example,DC=me,在 正在导入 LDIF 文件 步骤中选择所有 LDIF 文件以保证不会缺 AD schema。 注意安装过程中并没有创建 AD LDS 用户,只是把当前 Windows 用户加入管理员组了。
  4. 从 Windows 开始菜单选择 Windows 管理工具 -> ADSI 编辑器 ,选择菜单 操作 -> 连接到,在弹出的对话框中:
    • 连接点 -> 选择一个已知命名上下文:配置
    • 计算机 -> 选择或者键入域或服务器: localhost:389
  5. 连接后,在 ASDI 左边树状结构中导航 CN=Configuration,CN={....},... -> CN=Sites -> CN=Default-First-Site-Name -> CN=Servers -> CN=...hostname... -> CN=NTDS Settings,右键弹出菜单中选择「属性」,在弹出对话框中修改属性 msDS-DefaultNamingContext 的值为 CN=ad,DC=example,DC=me
  6. 在 ASDI 编辑器左边树状结构中选择 「ADSI 编辑器」,右键弹出菜单中选择「连接到」,在弹出的对话框中:
    • 连接点 -> 选择一个已知命名上下文:默认命名上下文 (也可以在「选择或者键入可分辨名称或命名上下文」输入框中输入 CN=ad,DC=example,DC=me)
    • 计算机 -> 选择或者键入域或服务器: localhost:389
  7. 在 ADSI 编辑器左边树状结构中选择刚创建的链接下面的 CN=ad,DC=example,DC=me,右键弹出菜单选择新建 -> 对象...,选择类 container,名字为 Users,这会在 CN=ad 下面建立子节点 CN=Users
  8. 创建用户:
    • 选择 CN=Users 节点,右键弹出菜单选择 新建 -> 对象...,选择类 user,名字为 admin
    • 选择右边窗口的 CN=admin 节点,右键弹出菜单选择 重置密码
    • 选择 CN=Roles 节点,双击右边窗口的 CN=Administrator 节点,双击 member属性弹出对话框中选择 添加 DN...,输入 CN=admin,CN=Users,CN=ad,DC=example,DC=me,以授予此 DN 对应用户 AD LDS 管理权限。
  9. 创建组:
    • 选择 CN=Users 节点(AD 的习惯是 user 和 group 混在一起),右键弹出菜单选择 新建 -> 对象...,选择类 group,名字为 admin-group
    • 双击新建的 CN=admin-group 节点,修改其 member 属性添加 CN=admin,CN=Users,CN=ad,DC=example,DC=me

AD LDS 管理和使用

除了可以使用 ADSI 管理,也可以使用 RSAT: Active Directory 域服务和轻型目录服务工具 安装的 ldp.exe 图形工具或者 PowerShell 插件,或者 sysinternals 出品的 AD Explorer,也可以使用 Apache Directory Studio,连接地址为 ldap://...IP...:389,使用 Simple Authentication,Bind DN 为 CN=admin,CN=Users,CN=ad,DC=example,DC=me

Keycloak 中创建 LDAP 类型的 User Federation 时,Settings 标签页中 Vendor 选择 Active Directory ,配置好 Settings 后保存,然后在 Mappers 标签页把 ms-ad-access-control-mapper 删掉,添加 ms-ad-lds-access-control-mapper。

Crowd-4.1.0 不支持 AD LDS,Crowd-4.2.2 支持 AD LDS,需要关掉增量同步。

参考