身份验证提供程序

以下身份验证提供程序在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 在成功身份验证后加载用户信息。在此上下文中,用户/组服务将不用于密码验证,只用于角色分配。

备注

要使用用户/组服务验证密码,请参阅 用户名/密码验证 .