目录

上一个主题

11.1. 基本安全设置

下一个主题

11.3. 访问数据和服务


11.2. 定义用户、组和角色

为了确保数据安全,您需要识别谁正在访问您的层和服务。 无法对安全数据使用匿名访问。

GeoServer中的安全性基于一个角色系统,其中每个角色定义一个特定的函数。 您可以将角色分配给用户和组,也就是说,将功能分配给使用您的系统的实际用户。

为了组织真正的用户,GeoServer为您提供了用户、组和角色概念。 使用前两种方法,您可以将真实的用户插入GeoServer安全子系统, 并使用角色将权限授予真实用户。

  1. 用户定义

在GeoServer中,用户是可以使用系统、真实用户或其他系统的人。 GeoServer存储用户名、唯一标识用户的密码和一组键/值, 以存储有关该用户名的一般信息。用户可以被禁用。

  1. 组定义

组是一组用户。GeoServer存储属于组的用户名列表和组名,唯一标识组。 可以禁用组,但请注意,这只会删除从禁用组派生的角色,而不会禁用属于该组的用户。

  1. 用户/组服务

用户和组存储在用户/组服务中。这将定义存储介质、 默认情况下的XML文件或JDBC数据库、密码的加密类型和密码策略。 尽管您可能有多个用户/组服务,但通常可以使用默认服务。

  1. 角色定义

GeoServer角色与执行特定任务或访问特定资源相关联。 角色被分配给用户和组,授权他们执行与角色关联的操作。

11.2.1. 行动时间-创建用户和组

为了充分了解GeoServer中的安全工作原理,我们将使用一个典型的场景。 考虑一个使用 NaturalEarth 工作区。 我们希望仅对组织成员访问此数据。在组织内部,有少数人编辑数据以创建新的数据集或更新现有的数据集, 还有更多的成员需要读取数据来组成地图。此外,还需要有一个管理员来保持它的所有工作。 最后,我们需要考虑的是,我们的GeoServer站点还包含免费提供的数据。 我们现在将从一个不安全的 GeoServer 创建安全组织。

1.我们将开始创建组。在左窗格的“安全性”部分中,选择 用户组和角色 链接。 下面的截图显示 用户组服务 已配置。你会发现 default GeoServer附带的服务。 我们已经将其更改为使用强PBE加密,这很好。单击名称进行编辑:

image235

图 11.6 image235

2.选择 标签。列表为空。点击 添加新组 .

3.进入 NE_Publishers 作为组名并保持组处于启用状态。 不要将任何角色分配给新组,因为我们稍后将创建特定角色。点击 Save 按钮:

image236

图 11.7 image236

4.重复上一步创建 NE_EditorsNE_Admins 组。 现在,您的列表显示了以下三个组:

image237

图 11.8 image237

5.现在切换到 用户 标签。显然它列出了唯一的现有用户, 管理员 ,如下图所示:

image238

图 11.9 image238

6.我很高兴向你介绍 Steven ,自然地球数据管理员。 点击 Add new user 链接,并为他添加您选择的密码:

image239

图 11.10 image239

7.将Steven添加到 NE_Admins 组,然后单击 Save 按钮:

image240

图 11.11 image240

8.重复上一步创建用户 Michael Ford ,的成员 NE_Editors 组, 和 John SmithNE_Publishers 组成员。您的列表现在显示三个用户:

image241

图 11.12 image241

刚刚发生了什么?

我们刚刚为这三个组创建了三个用户,这对您来说可能有点过头了。 把它们当作真实用户的模板。实际上,我们不希望有太多的管理员, 我们可能需要几个Michaels和Johns处理数据。 现在我们需要定义他们在GeoServer上可以做什么

11.2.2. 行动时间-定义角色

未分配任何角色的用户或组是无用的。现在是创建角色并将其分配给用户的时候了。

1.从 用户、组和角色 部分,选择 角色 标签。您将发现已经存在两个角色。 它们是分配给管理员的管理角色,并授予对所有GeoServer配置的访问权限。 点击 Edit 链接如下图所示:

image242

图 11.13 image242

2.您输入了角色服务定义。保持设置不变并切换到 角色 标签。 点击 添加新角色 .

3.进入 NE_VIEWER 作为新角色名。我们不需要家长的角色。 子角色继承父角色的所有授权,当您希望使用更多授权扩展基本角色时, 它将非常有用。实际上,我们将在下一步中这样做:

image243

图 11.14 image243

4.点击 Save 按钮,然后重复上一步以创建 NE_EDITOR 角色。 这次选择 NE_VIEWER 作为父角色,如下图所示:

image244

图 11.15 image244

5.点击 Save 按钮,然后重复上一步以创建 NE_ADMIN 角色。 这次选择 NE_EDITOR 作为父角色。保存后,您的角色列表应如以下屏幕截图所示:

image245

图 11.16 image245

6.最后一步是将角色与用户或组关联。选择 用户、组和角色 从左侧窗格中翻页, 然后选择“组”列表并单击 NE_Publishers 分组编辑。 添加 NE_VIEWER 角色到组并保存它:

image246

图 11.17 image246

7.现在点击 NE_Editors 将其分组并关联到 NE_EDITOR 角色。

8.最后,将 NE_Admins 分组到 NE_ADMIN 角色。

刚刚发生了什么?

通过定义角色并将它们与用户关联,我们完成了组织的定义。 现在我们需要探索如何将数据绑定到角色和用户。