使用LDAP进行身份验证¶
本教程介绍了Geoserver的LDAP支持,并逐步完成了针对LDAP服务器设置身份验证的过程。建议您将 LDAP身份验证 请先阅读部分内容,然后再继续。
LDAP服务器安装程序¶
本教程将使用模拟的LDAP服务器。下载并运行 acme-ldap JAR::
java -jar acme-ldap.jar
其输出应如下所示:
Directory contents:
ou=people,dc=acme,dc=org
uid=bob,ou=people,dc=acme,dc=org
uid=alice,ou=people,dc=acme,dc=org
uid=bill,ou=people,dc=acme,dc=org
ou=groups,dc=acme,dc=org
cn=users,ou=groups,dc=acme,dc=org
member: uid=bob,ou=people,dc=acme,dc=org
member: uid=alice,ou=people,dc=acme,dc=org
cn=admins,ou=groups,dc=acme,dc=org
member: uid=bill,ou=people,dc=acme,dc=org
Server running on port 10389
下图说明了LDAP数据库的层次结构:
LDAP树包括:
根域组件,
dc=acme,dc=org两个组织单位(组)命名
user和admin两个用户名
bob和alice谁是user组一个名为
bill谁是admin组
配置LDAP身份验证提供程序¶
启动geoserver并以
admin用户。单击
Authentication链接位于Security导航边栏的部分。
向下滚动到
Authentication Providers面板并单击Add new链接。
单击
LDAP链接。
按如下方式填写设置表单的字段:
集合
Name至“Acme LDAP”集合
Server URL到“ldap://localhost:10389/dc=acme,dc=org”集合
User lookup pattern到“uid=0,ou=people”
通过在右侧的连接测试表单中输入用户名“bob”和密码“secret”来测试LDAP连接,然后单击
Test Connection按钮。
应在页面顶部报告成功的连接。
保存。
返回“身份验证”页,向下滚动到
Provider Chain面板并移动acme-ldap提供程序来自Available到Selected.
保存。
测试LDAP登录¶
导航到geoserver主页并注销管理帐户。
以用户“bob”的身份登录,密码为“ret”。
以Bob身份登录不会产生任何管理功能,因为BobAccount尚未映射到管理员角色。在下一节中,将配置geoserver以将组从LDAP数据库映射到角色。
将LDAP组映射到地理服务器角色¶
使用LDAP进行身份验证时,Geoserver通过在组名前加上前缀,将LDAP组映射到Geoserver角色 ROLE_ 并将结果转换为大写。例如,Bob和Alice是 user 组,以便在身份验证后为其分配一个名为 ROLE_USER 。同样,Bill也是 admin 组,因此他将被分配一个名为 ROLE_ADMIN 。
退出Web管理员并以管理员用户身份重新登录。
导航到
Authentication页。滚动至
Authentication Providers面板并单击acme-ldap链接。
在“设置”页上,填写以下表单字段:
集合
Group search base到“ou=组”集合
Group search filter“成员=0”
第一个字段指定组所在的LDAP目录树的节点。在这种情况下,组织单位命名为
groups.第二个字段指定要用于定位特定用户所属组的LDAP查询筛选器。这个{{0}}是替换为uid用户的。集合
Group to use as ADMIN至“管理员”集合
Group to use as GROUP_ADMIN至“管理员”
如果要支持分层LDAP组:
检查 Enable Hierarchical groups search 盒子。
集合
Max depth for hierarchical groups search到10(-1表示无限深,或要支持的深度编号)。集合
Nested group search filter“成员=0”
这些设置允许LDAP管理组中的用户被识别为地理服务器管理员。
保存。
此时,LDAP提供程序将根据用户所属的组向经过身份验证的用户填充角色。
此时的成员 admin 一旦通过身份验证,应授予LDAP组完全的管理权限。从管理帐户注销,用密码“hello”以“bill”登录。一旦登录,应提供完整的管理功能。
配置LDAP角色服务¶
另一个步骤允许配置角色服务以从LDAP存储库中获取地理服务器角色,并允许将访问权限分配给这些角色。
单击
Users,Group,Roles链接位于Security导航边栏的部分。单击
Add new link下Role Services部分。单击
LDAP选择权New Role Service部分。
进入
ldaprs在Name文本字段。进入
ldap://localhost:10389/dc=acme,dc=org在Server URL文本字段。进入
ou=groups在Group search base文本字段。进入
member=uid={{0}},ou=people,dc=acme,dc=org在Group user membership search filter文本字段。进入
cn=*在All groups search filter文本字段。
然后我们需要选择一个用户在服务器上进行身份验证(许多LDAP服务器不允许匿名数据查找)。
检查
Authenticate to extract roles复选框。进入
uid=bill,ou=people,dc=acme,dc=org在Username文本字段。进入
hello在Password文本字段。
如果我们希望层级组工作,我们需要:
检查
Enable Hierarchical groups search复选框。进入
10在Max depth for hierarchical groups search文本字段。进入
member={{1}}在Nested group search filter文本字段。保存。
单击
ldaprs角色服务项Role Services部分。选择
ROLE_ADMIN从Administrator role组合框。选择
ROLE_ADMIN从Group administrator role组合框。再次保存。
现在您应该可以看到并分配新的 ROLE_ADMIN 和 ROLE_USER 角色 Available Roles 列表显示(例如 Data 和 Services 规则部分。