身份验证提供程序¶
以下身份验证提供程序在GeoServer中可用:
用户名/密码验证 user/group service
针对LDAP服务器的身份验证
通过JDBC连接到数据库进行身份验证
用户名/密码验证¶
用户名和密码身份验证是默认的身份验证提供程序。它使用 user/group service 进行身份验证。
提供者只需从传入请求(如基本身份验证请求)获取用户名/密码,然后从用户/组服务加载用户信息并验证凭据。
LDAP身份验证¶
LDAP身份验证提供程序允许针对 Lightweight Directory Access Protocol (LDAP)服务器。提供程序从传入请求中获取用户名/密码,并尝试使用这些凭据连接到LDAP服务器。
备注
当前仅支持LDAP绑定身份验证。
角色分配¶
LDAP提供程序为经过身份验证的用户提供了两个角色分配选项:
将用户的LDAP组转换为角色
使用用户/组服务
下面的LDAP数据库将演示第一个选项:
dn: ou=people,dc=acme,dc=com
objectclass: organizationalUnit
ou: people
dn: uid=bob,ou=people,dc=acme,dc=com
objectclass: person
uid: bob
dn: ou=groups,dc=acme,dc=com
objectclass: organizationalUnit
ou: groups
dn: cn=workers,ou=groups,dc=acme,dc=com
objectclass: groupOfNames
cn: users
member: uid=bob,ou=people,dc=acme,dc=com
上面的场景使用 uid
属于 bob
和A group
已命名 workers
其中 bob
是成员。认证后, bob
将被分配角色 ROLE_WORKERS
.角色名是通过连接生成的 ROLE_
以大写形式显示组的名称。
备注
当LDAP服务器不允许在匿名上下文中搜索时,应启用bindbeforegroupsearch选项以避免错误。
如果使用 user/group service ,将查询用户/组服务以获取经过身份验证的用户,并且角色分配由用户/组服务和活动的 role service .使用此选项时,将忽略为用户/组服务数据库中的用户定义的任何密码。
安全LDAP连接¶
有两种方法可以创建与服务器的安全LDAP连接。第一种方法是使用 低密度脂蛋白 协议的一部分 服务器URL .这通常需要将连接端口更改为 端口636 而不是389。
第二种方法是使用 STARTTLS (传输层安全性)协商非安全连接上的安全连接。在端口389上使用“LDAP”协议对不安全的URL进行协商。要使用此选项,请 使用TLS 必须设置标志。
警告
使用TLS进行连接将阻止geoserver共享LDAP连接。这意味着将为每个身份验证创建和销毁新的LDAP连接,从而导致性能损失。
JDBC身份验证¶
JDBC身份验证提供程序通过连接到数据库进行身份验证 JDBC .
提供程序从传入请求中获取用户名/密码,并尝试使用这些凭据创建数据库连接。或者,提供程序可以使用 user/group service 在成功身份验证后加载用户信息。在此上下文中,用户/组服务将不用于密码验证,只用于角色分配。
备注
要使用用户/组服务验证密码,请参阅 用户名/密码验证 .