使用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
规则部分。