认证

此页管理身份验证选项,包括身份验证提供程序和身份验证链。

蛮力攻击预防

GeoServer配备了基于延迟的蛮力攻击预防系统。

../../_images/auth_brute_force.png

蛮力攻击防护设置

期权

描述

启用

是否启用蛮力攻击防护。默认为true。

身份验证失败时的最小延迟(秒)

失败的登录请求在得到响应前等待的最短秒数

失败身份验证的最大延迟(秒)

失败的登录请求在得到响应之前等待的最长秒数

排除的网络掩码

网络屏蔽,用于识别不受暴力攻击防护的主机。可以为空,包括特定的IP或网络掩码列表。默认为127.0.0.1,本地主机。

登录延迟失败时阻止的最大线程数

限制登录失败时延迟的线程数,应将其设置为小于容器的可用响应线程数的值。

该机构的工作原理如下:

  • 每个失败的身份验证请求都会在收到实际响应之前等待最短到最长的秒数。

  • 无论凭据是否有效,每次并行验证同一用户名的尝试都会立即失败,并显示一条消息,指出不允许并发登录尝试。

第一个项目会将单线程攻击的速度降低到使其无效的程度(每次失败的尝试都会与IP尝试访问一起记录),第二个项目会破坏多线程攻击的扩展能力。在所有协议上,登录尝试都会减慢/阻止,无论是OGC请求、REST调用还是UI。

当另一个请求被阻止等待冷却期到期时,试图从用户界面登录的用户将看到如下消息:

../../_images/auth_brute_force_message.png

并行用户界面登录的错误消息

HTTP请求(REST或OGC)将立即得到401,并显示如下消息:

HTTP/1.1 401用户foo,5896在安静期间拒绝并发登录尝试

一组可以规避机制的IP允许合法的管理员甚至在攻击期间控制服务器。系统只信任实际的请求者IP,忽略“x-forwarded-for”头,因为它们很容易被欺骗(这反过来要求管理员从本地网络访问系统,中间没有代理,以便识别受祝福的IP)。

阻止的最大线程数配置允许设置系统,以便攻击者可以滥用系统,通过发出具有随机用户名的请求来简单地阻止所有服务线程(系统无法确定用户名是否有效,出于安全原因,所有身份验证机制都不提供此信息)。

关于如何设置系统的注意事项:

  • 一个很小的延迟通常足以阻止暴力攻击,抵抗设置高延迟值的诱惑,因为它们可能最终阻止太多合法帐户并触发最大阻止线程机制。

  • 确保排除的网络通过其他方式得到很好的保护。

  • 将最大阻止线程数设置为较大的值,允许高峰时间合法登录(例如,清晨所有用户开始工作),同时仍为成功的身份验证请求留出空间。

  • 群集/负载平衡安装程序不会共享被阻止登录的状态,每个主机都会跟踪其本地登录失败。

身份验证筛选器

此部分管理身份验证筛选器(添加、删除和编辑)。默认情况下会配置多个身份验证筛选器(匿名、基本、窗体、记住),但其他筛选器可以添加到列表中。

../../_images/auth_filters.png

身份验证筛选器列表

匿名访问

默认情况下,geoserver将允许匿名访问 Web管理界面 .如果没有身份验证,用户仍可以查看 层预览 ,功能文档和基本的地理服务器详细信息。匿名访问可以通过删除 anonymous 身份验证筛选器。如果删除,导航到geoserver页面的匿名用户将获得HTTP401状态代码,这通常会导致基于浏览器的凭据请求。

来自标题的凭据筛选器

此筛选器允许以灵活且可配置的方式从请求头收集用户凭据(用户名和密码)。

../../_images/auth_filter_credentials_from_header.png

创建新的身份验证筛选器,从请求头获取凭据

期权

描述

名字

筛选器的名称

用户名标题

包含用户名的请求头的名称

用户名的正则表达式

用于从相关头中提取用户名的正则表达式。必须定义与用户名匹配的组。

密码头

包含密码的请求头的名称

密码的正则表达式

用于从相关头中提取密码的正则表达式。必须定义与密码匹配的组。

将参数解析为URI组件

如果选中,则在用作凭据之前对用户名和密码进行URI解码

身份验证提供程序

此部分管理 身份验证提供程序 (添加、删除和编辑)。默认身份验证提供程序使用基本身份验证 username/password authentication . JDBCLDAP 也可以使用身份验证。

点击 Add new 创建新的提供程序。单击现有提供程序以编辑其参数。

../../_images/auth_providers.png

身份验证提供程序列表

用户名/密码提供程序

默认的新身份验证提供程序使用用户/组服务进行身份验证。

../../_images/auth_userpass.png

使用用户名和密码创建新的身份验证提供程序

期权

描述

名字

提供程序的名称

用户组服务

与此提供程序关联的用户/组服务的名称。可以是任何一个活动的用户/组服务。

JDBC提供程序

JDBC身份验证提供程序的配置选项如下所示。

../../_images/auth_jdbc.png

配置JDBC身份验证提供程序

期权

描述

名字

geoserver中JDBC连接的名称

用户组服务

用户身份验证后用于加载用户信息的用户/组服务的名称

驱动程序类名称

用于数据库连接的JDBC驱动程序

连接URL

创建数据库连接时要使用的JDBC URL

LDAP提供程序

下图显示了LDAP身份验证提供程序的配置选项。默认选项是使用LDAP组进行角色分配,但也可以选择使用用户/组服务进行角色分配。根据是否选择此选项,页面本身将有不同的选项。

../../_images/auth_ldap1.png

使用LDAP组为角色分配配置LDAP身份验证提供程序

../../_images/auth_ldap2.png

Configuring the LDAP authentication provider using user/group service for authentication

期权

描述

名字

geoserver中LDAP连接的名称

服务器URL

LDAP服务器连接的URL。它必须包括协议、主机和端口,以及LDAP树根的“可分辨名称”(DN)。

TLS

启用StartTLS连接。(参见 安全LDAP连接

用户DN模式

用于匹配LDAP数据库中用户的DN的搜索模式。模式应包含占位符 {{0}} 注入了 uid 用户的。例子: uid={{0}},ou=people .指定为的端口的根DN 服务器URL 自动附加。

用户筛选器

用于从LDAP数据库中提取用户数据的LDAP筛选器。与用户DN模式交替使用,并与用户格式结合,以分离绑定和用户数据提取处理。例子: (userPrincipalName={{0}}) .获取搜索与筛选器匹配的单个记录的用户数据。这可能包含两个占位符值: {{0}} 例如,用户的完整DN uid=bob,ou=people,dc=acme,dc=com {{1}} , the uid 例如,完整DN的一部分 bob .

用户格式

用于生成用于绑定的用户名的字符串格式化程序。与用户DN模式交替使用,并与用户筛选器结合,以分离绑定和用户数据提取处理。例子: {{0}}@domain .使用应用格式生成的用户名绑定用户。这可能包含一个占位符: {{0}} 例如,用户名 bob

使用LDAP组进行授权

指定是否使用LDAP组分配角色

组搜索前绑定

指定在执行组搜索之前是否使用用户凭据绑定到LDAP服务器

组搜索库

树中用作LDAP组基础的节点的相对名称。例子: ou=groups .指定为的端口的根DN 服务器URL 自动附加。仅适用于 使用LDAP组进行授权(参数为 选中的 *.

组搜索筛选器

查找用户所属LDAP组的搜索模式。这可能包含两个占位符值: {{0}} 例如,用户的完整DN uid=bob,ou=people,dc=acme,dc=com {{1}} , the uid 例如,完整DN的一部分 bob .仅适用于 使用LDAP组进行授权(参数为 选中的 *.

管理组

要映射到管理员角色的组的名称(默认为管理员)。例子: ADMIN .如果用户属于名为admin的组,则添加角色“administrator”(不区分大小写)

组管理组

要映射到组管理员角色的组的名称(默认为“组管理员”)。例子: GROUPADMIN .如果用户属于名为group admin的组(不区分大小写),则添加角色“group admin”

用户组服务

用于角色分配的用户/组服务。仅适用于 使用LDAP组进行授权 参数是 变明朗 .

启用分层组搜索

指定是否使用分层LDAP组搜索角色分配

分层组搜索的最大深度

指定用于分层LDAP组搜索的最大组搜索深度级别。使用 -1 没有限制。仅适用于 启用分层组搜索(参数为 选中的 *.

嵌套组搜索筛选器

查找组所属父LDAP组的搜索模式。这可能包含两个占位符值:

{0}, the full DN of the user, for example cn=it,ou=groups,dc=acme,dc=com

{{1}} , the cn 例如,完整DN的一部分 it .仅适用于 启用分层组搜索(参数为 选中的 *.

身份验证链

此部分选择身份验证链。当前,只有一个默认身份验证链可用。有关默认链的详细信息,请参阅 身份验证链 .

../../_images/auth_chain.png

选择身份验证链

Previous: 设置
Next: 密码