使用LDAP对ActiveDirectory进行身份验证

本教程介绍如何使用geoserver ldap支持将activedirectory作为ldap服务器连接到Windows域。建议 LDAP身份验证 在继续之前请阅读。

Windows服务器和ActiveDirectory

Active Directory只是另一个LDAP服务器实现,但它具有一些我们必须知道的功能,以便成功地将其与GeoServer LDAP身份验证一起使用。在本教程中,我们假设有一个名为ActiveDirectory的Windows服务器域控制器 domain-controller 对于一个名为 ad.local .如果您的环境使用不同的名称(当然也会使用不同的名称),请在需要时使用您的真实名称。

我们还假设:

  • 一个名为 GISADMINGROUP 存在。

  • 一个名为 GISADMIN 存在,有密码 secret ,属于 GISADMINGROUP 组。

  • 一个名为 GISUSER 存在,有密码 secret 不属于 GISADMINGROUP 组。

备注

ADMINISTRATOR通常不能用作ActiveDirectory的管理组名,因为ADMINISTRATOR是Windows环境中的根用户名。

配置LDAP身份验证提供程序

  1. 启动geoserver并以 admin 用户。

  2. 单击 Authentication 链接位于 Security 导航边栏的部分。

    ../../../_images/ldap1.jpg
  3. 向下滚动到 Authentication Providers 面板并单击 Add new 链接。

    ../../../_images/ldap2.jpg
  4. 单击 LDAP 链接。

    ../../../_images/ldap3.jpg
  5. 按如下方式填写设置表单的字段:

    • 集合 Name 到“AD LDAP”

    • 集合 Server URL 到“ldap://domain controller/dc=ad,dc=local”

    • 集合 Filter used to lookup user(|(userPrincipalName={{0}})(sAMAccountName={{1}}))

    • 集合 Format used for user login name 发送至“0@ad.local

    • 检查 Use LDAP groups for authorization

    • 检查 Bind user before searching for groups

    • 集合 Group to use as ADMIN 至“Gisadmingroup”

    • 集合 Group search base 至“CN=用户”

    • 集合 Group search filter “成员=0”

  6. 通过在右侧的连接测试表单中输入用户名“gisadmin”和密码“secret”来测试LDAP连接,然后单击 Test Connection 按钮。

    ../../../_images/ad1.jpg

    应在页面顶部报告成功的连接。

  7. 保存。

  8. 返回“身份验证”页,向下滚动到 Provider Chain 面板并移动 ad-ldap 提供程序来自 AvailableSelected .

    ../../../_images/ad2.jpg
  9. 保存。

测试LDAP登录

  1. 导航到geoserver主页并注销管理帐户。

  2. 以用户“GISUSER”身份登录,密码为“SECRET”。

    ../../../_images/ad3.jpg

作为gisuser登录不会产生任何管理功能,因为gisuser帐户尚未映射到管理员角色。在下一节中,将配置geoserver以将组从LDAP数据库映射到角色。

现在,我们将使用具有管理权限的用户登录。

  1. 导航到geoserver主页并注销帐户。

  2. 以用户“GISADMIN”身份登录,密码为“SECRET”。

一旦登录,应提供完整的管理功能。

配置LDAP角色服务

另一个步骤允许配置角色服务以从LDAP存储库中获取地理服务器角色,并允许将访问权限分配给这些角色。

  1. 单击 Users,Group,Roles 链接位于 Security 导航边栏的部分。

  2. 单击 Add new linkRole Services 部分。

  3. 单击 LDAP 选择权 New Role Service 部分。

    ../../../_images/ldap14.jpg
  4. 进入 ldapadrsName 文本字段。

  5. 进入 ldap://domain-controller/dc=ad,dc=localServer URL 文本字段。

  6. 进入 CN=UsersGroup search base 文本字段。

  7. 进入 member={{1}},dc=ad,dc=localGroup user membership search filter 文本字段。

  8. 进入 objectClass=groupAll groups search filter 文本字段。

  9. 进入 sAMAccountName={{0}}Filter used to lookup user 文本字段。

然后我们需要选择一个用户在服务器上进行身份验证(许多LDAP服务器不允许匿名数据查找)。

  1. 检查 Authenticate to extract roles 复选框。

  2. 进入 GISADMIN@ad.localUsername 文本字段。

  3. 进入 secretPassword 文本字段。

  4. 保存。

  5. 单击 ldapadrs 角色服务项 Role Services 部分。

  6. 选择 ROLE_DOMAIN ADMINSAdministrator role 组合框。

  7. 选择 ROLE_DOMAIN ADMINSGroup administrator role 组合框。

  8. 再次保存。

现在,您应该能够在 Available Roles 列表显示(例如 DataServices 规则部分。