密钥罩角色服务

本教程将介绍如何将Keyloak设置为Geoserver的角色服务。

备注

在本例中,Keyshaak服务在端口上运行 8080 当Geoserver在港口运行时 8181

密钥罩角色服务使用密钥罩REST API来检索其各种操作的角色。默认情况下,它将使用检索角色 realm 作用域。但是,可以将其配置为检索特定领域中具有客户端范围的角色。

密钥罩客户端配置

请遵循 Authentication with Keycloak 配置Geoserver以允许通过Keyloak登录的指南。密钥罩角色服务需要在密钥罩端配置一个客户端,该客户端具有 Access Type 设置为 confidential

如果您的密钥罩身份验证过滤器使用了不同的 Access Typebarer-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 选项已启用。

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

../../_images/service_account_roles.png

要为用户分配角色,请执行以下操作:

  1. 在Keyloak的用户部分下,点击用户的ID(如果有缺失的用户,点击“查看所有用户”)。

  2. 在角色映射选项卡中,从客户端角色下拉列表中选择GeoStore客户端。

  3. 从可用角色中选择角色,然后单击添加选定项。

../../_images/keycloak_client0021.png

An example set of role mappings for a user.

创建自定义角色时,请确保它们以 ROLE_ 例如,Role_Staff。

角色同步的Geoserver配置

与Keyloak的角色同步将绑定到机密客户端。

  1. 在Geoserver中,以管理员身份在“用户、组、角色”页面上添加新的角色服务。

  2. 从提供的选项列表中选择密匙遮盖。所有可填字段都是必填项,但 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 RoleGroup administator 角色下拉列表在开始时应为空。一旦使用我们希望映射到Geoserver管理员和组管理员的Keyloak角色保存了角色服务,就可以填充它们。

  1. 确保单击保存以创建密钥遮盖角色服务。

  2. 创建角色服务并将其配置为使其处于活动状态后: * it can be assigned as a RoleSource to the Keycloak Filter, * 它可以设置为 Active Role ServiceSecurity Settings 佩奇。

../../_images/keycloak_role_service001.png

An example of a fully configured Keycloak role service.

密钥罩身份验证筛选器的Geoserver配置

在Geoserver的身份验证部分下:

  • 将密钥罩身份验证筛选器添加到Web和默认筛选器链的顶部。

  • 将密钥遮盖添加到选定的提供程序链,并将其放置在默认提供程序链之上。