密钥罩角色服务¶
本教程将介绍如何将Keyloak设置为Geoserver的角色服务。
备注
在本例中,Keyshaak服务在端口上运行 8080 当Geoserver在港口运行时 8181 。
密钥罩角色服务使用密钥罩REST API来检索其各种操作的角色。默认情况下,它将使用检索角色 realm
作用域。但是,可以将其配置为检索特定领域中具有客户端范围的角色。
密钥罩客户端配置¶
请遵循 Authentication with Keycloak 配置Geoserver以允许通过Keyloak登录的指南。密钥罩角色服务需要在密钥罩端配置一个客户端,该客户端具有 Access Type
设置为 confidential
。
如果您的密钥罩身份验证过滤器使用了不同的 Access Type
即 barer-only
,则必须为密钥遮盖角色服务配置一个单独的客户端。
对于客户端,请确保:
启用标准流、隐式流和直接访问授权
基本URL设置为
http://localhost:8181/geoserver/web
启用了以下重定向URI:
http://localhost:8181/geoserver*
http://localhost:8080/auth/realms/master/broker/keycloak-oidc/endpoint*
这个
Access Type
设置为 confidential 以及Service Accounts Enabled
选项已启用。

在.之下
Service Account Roles
选项卡中,确保已将领域管理客户端角色中的领域管理添加到Assigned roles
。

要为用户分配角色,请执行以下操作:
在Keyloak的用户部分下,点击用户的ID(如果有缺失的用户,点击“查看所有用户”)。
在角色映射选项卡中,从客户端角色下拉列表中选择GeoStore客户端。
从可用角色中选择角色,然后单击添加选定项。

An example set of role mappings for a user.¶
创建自定义角色时,请确保它们以 ROLE_
例如,Role_Staff。
角色同步的Geoserver配置¶
与Keyloak的角色同步将绑定到机密客户端。
在Geoserver中,以管理员身份在“用户、组、角色”页面上添加新的角色服务。
从提供的选项列表中选择密匙遮盖。所有可填字段都是必填项,但
Comma separated list of ID of client (not client-id)
。Base URL for Keycloak
是密匙斗篷主机名,例如。Http://localhost:8080.这个
Realm Name
是应该从中检索角色的领域,例如。师父。这个
Client ID
可以从Settings
Keyloak上的客户端配置的选项卡。这个
Client secret
可以从Credentials
Keyloak上的客户端配置的选项卡。这个
Comma separated list of ID of client (not client-id)
旨在允许角色服务还检索客户端范围内的角色。实际上,在默认情况下,密钥罩角色服务将仅检索领域角色。在Keyloak中查看客户端配置页面时,可以从URL中检索客户端的ID。URL格式:例如/auth/admin/master/console/#/realms/master/clients/{ID of client}
Administrator Role
和Group administator
角色下拉列表在开始时应为空。一旦使用我们希望映射到Geoserver管理员和组管理员的Keyloak角色保存了角色服务,就可以填充它们。
确保单击保存以创建密钥遮盖角色服务。
创建角色服务并将其配置为使其处于活动状态后: * it can be assigned as a RoleSource to the Keycloak Filter, * 它可以设置为
Active Role Service
在Security Settings
佩奇。

An example of a fully configured Keycloak role service.¶
密钥罩身份验证筛选器的Geoserver配置¶
在Geoserver的身份验证部分下:
将密钥罩身份验证筛选器添加到Web和默认筛选器链的顶部。
将密钥遮盖添加到选定的提供程序链,并将其放置在默认提供程序链之上。