用户/组服务

A user/group service 为用户和组提供以下信息:

  • 用户列表

  • 组列表,包括与每个组关联的用户

  • 用户密码

许多身份验证提供者将使用用户/组服务来执行身份验证。在这种情况下,用户/组服务将是对用户和密码进行身份验证的数据库。取决于 身份验证链 如果配置了,则在任何给定时间可能有零个、一个或多个用户/组服务处于活动状态。

用户/组服务可以是只读的,提供对用户信息的访问,但不允许添加或更改新用户和组。如果用户/组服务被配置为委派给用户和组数据库的外部服务,则可能会发生这种情况。这方面的一个例子是外部LDAP服务器。

默认情况下,Geoserver支持三种类型的用户/组服务:

  • XML - (Default) 以XML形式保存的用户/组服务

  • JDBC -用户/组服务通过JDBC保存在数据库中

  • LDAP -从LDAP存储库中获取的用户/组服务

还可以将其他服务添加到Geoserver,例如由 AuthKey 分机。

XML用户/组服务

XML用户/组服务将用户/组数据库保存在XML文件中。这是geoserver中的默认行为。此服务将用户数据库表示为XML,并与此对应 XML schema .

备注

XML用户/组文件, users.xml ,位于geoserver数据目录中, security/usergroup/<name>/users.xml 在哪里 <name> 是用户/组服务的名称。

以下是 users.xml 它附带了默认的geoserver配置:

<userRegistry version="1.0" xmlns="http://www.geoserver.org/security/users">
  <users>
    <user enabled="true" name="admin" password="crypt1:5WK8hBrtrte9wtImg5i5fjnd8VeqCjDB"/>
  </users>
  <groups/>
</userRegistry>

这个特定的配置定义了一个用户, admin ,没有组。默认情况下,存储的用户密码使用 weak PBE 方法。

有关更多信息,请参阅 configuring a user/group serviceWeb管理界面 .

JDBC用户/组服务

JDBC用户/组服务通过JDBC保持用户/组数据库,在多个表中管理用户信息。用户/组数据库架构如下:

表:用户

类型

无效的

名称

varchar(128个)

NO

PRI

密码

瓦尔查尔(254)

YES

启用

字符(1)

NO

表:用户属性

类型

无效的

用户名

varchar(128个)

NO

PRI

道具名

varchar(64个)

NO

PRI

比例值

瓦查尔(2048)

YES

表:组

类型

无效的

名称

varchar(128个)

NO

PRI

启用

字符(1)

NO

表:组成员

类型

无效的

组名字

varchar(128个)

NO

PRI

用户名

varchar(128个)

NO

PRI

这个 users 表是主表,包含具有关联密码的用户列表。这个 user_props 表将其他属性映射到用户。(参见 用户和组 更多详细信息。) groups 表列出了所有可用的组,以及 group_members 表映射哪些用户属于哪些组。

默认的geoserver安全配置为:

表:用户

名称

密码

启用

空的

空的

空的

表:用户属性

用户名

道具名

比例值

空的

空的

空的

表:组

名称

启用

空的

空的

表:组成员

组名字

用户名

空的

空的

有关更多信息,请参阅 configuring a user/group serviceWeb管理界面 .

LDAP用户/组服务

LDAP用户/组服务是一种只读用户/组服务,它将用户和组从LDAP存储库映射到geoserver用户和组。

从特定的LDAP节点提取用户,配置为 Users search base .从特定的LDAP节点提取组,配置为 Groups search base .为每个匹配用户映射一个用户,为每个匹配组映射一个组。

可以指定包含组名的属性(例如 cn ,用户(如 uid )以及两者之间的成员关系(如 member )。但是,也可以指定特定的过滤器来搜索所有用户/组(例如 cn=* ,按名称查找用户/组(例如 cn={{0}} )并将用户映射到组(例如 member={{0}} )。这些过滤器也可以从属性名中自动派生。或者,如果提供了过滤器,则属性名称可以保留为空。

对于用户,其他属性(键/值对,请参见 用户和组 )可以通过提供以逗号分隔的属性名列表从LDAP服务器填充。

可以匿名检索用户/组信息,或者在LDAP存储库需要时使用给定的用户名/密码。

此类型角色服务的配置文件(config.xml)示例如下:

<org.geoserver.security.ldap.LDAPUserGroupServiceConfig>
  <id>2c3e0e8d:154853796a3:-8000</id>
  <name>myldapservice</name>
  <className>org.geoserver.security.ldap.LDAPUserGroupService</className>
  <serverURL>ldap://127.0.0.1:10389/dc=acme,dc=org</serverURL>
  <groupSearchBase>ou=groups</groupSearchBase>
  <groupFilter>cn={0}</groupFilter>
  <groupNameAttribute>cn</groupNameAttribute>
  <allGroupsSearchFilter>cn=*</allGroupsSearchFilter>
  <groupSearchFilter>member={0}</groupSearchFilter>
  <groupMembershipAttribute>member</groupMembershipAttribute>
  <userSearchBase>ou=people</userSearchBase>
  <userFilter>uid</userFilter>
  <userNameAttribute>uid={0}</userNameAttribute>
  <allUsersSearchFilter>uid=*</allUsersSearchFilter>
  <useTLS>false</useTLS>
  <bindBeforeGroupSearch>true</bindBeforeGroupSearch>
  <user>admin</user>
  <password>admin</password>
  <passwordEncoderName>emptyPasswordEncoder</passwordEncoderName>
  <passwordPolicyName>default</passwordPolicyName>
  <populatedAttributes>email, telephone</populatedAttributes>
</org.geoserver.security.ldap.LDAPUserGroupServiceConfig>

有关更多信息,请参阅 configuring a user/group serviceWeb管理界面 .

Previous: 用户和组
Next: 角色