使用密钥斗篷进行身份验证

本教程介绍Geoserver密钥罩支持,并逐步完成针对密钥罩提供程序设置身份验证的过程。建议您将 身份验证链 请先阅读部分内容,然后再继续。

geoserver keyclaft authn/authz插件将允许您使用keyclaft实例控制对geoserver内资源的访问。

配置说明

作为密钥斗篷管理员:

备注

在本例中,keypolt服务在端口上运行 8080 当GeoServer在端口上运行时 8181

  1. 创建一个 new client 对于名为 geoserver-client .

    ../../_images/keycloak_client001.png
  2. 请确保将geoserver的基URL添加到可接受的重定向路径列表中,并添加keyclawoidc端点基URI。

    如:
    ../../_images/keycloak_client002.png
  3. 设置 access-type 视情况而定的客户。如果您的Geoserver实例依赖于另一个服务进行身份验证(例如:nginx auth plugin),那么您可能应该选择 bearer-only 。否则,您应该选择 confidential

    ../../_images/keycloak_client003.png
  4. 添加 ADMINISTRATORAUTHENTICATED client-role 发送到 geoserver-client 穿着钥匙斗篷。

    ../../_images/keycloak_client004.png

    在此阶段,您需要将GeoServer角色映射到 geoserver-client 穿钥匙斗篷的。

    ../../_images/keycloak_client005.png

    使用 AUTHENTICATED 一个给普通用户。分配此角色 ADMINISTRATOR 对应该具有对geoserver的管理权限的用户/组。

    ../../_images/keycloak_client006.png
  5. 获得 installation-configuration 对于 geoserver-client 在JSON中,并在接下来的步骤中将其提供给GeoServer管理员。

    ../../_images/keycloak_client007.png

作为GeoServer管理员:

备注

在本例中,keypolt服务在端口上运行 8080 当GeoServer在端口上运行时 8181

  1. 在Authentication UI下,添加一个新的 authentication-filter . 选择 Keycloak 从提供的选项列表中,命名新筛选器 keycloak_adapter . 在提供的文本区域中粘贴keypolt服务器的安装配置。

    如果不存在,请确保在单击之前添加以下选项 Save

    "use-resource-role-mappings": true
    
    ../../_images/keycloak_adapter001.png

    这个 Enable redirect to Keycloak Login page 如果所需行为是仅通过密钥罩在Web用户界面上进行身份验证,则应选中该复选框。注意,在这种情况下,密钥遮盖筛选器应该是 /web 过滤器链。相反,如果密钥遮盖过滤器需要与过滤器链上的其他过滤器共存并到达,则必须取消选中它。

    这个 Role Source 下拉列表允许为通过密钥罩进行身份验证的用户选择所需的角色源。如果默认情况下未选择None,则 Active Role Service 将会被使用。

  2. 添加 keycloak_adapter 发送到 web filter-chain 如果您想要保护管理图形用户界面,请将其作为实例。如果你已经检查过 Enable redirect to Keycloak Login page 在过滤器配置上,每次都要重定向到Keyshaak,然后删除所有其他的 chain filters (基本、表单、RememberMe、匿名)。

    ../../_images/keycloak_adapter002.png

3.完成后,导航到Geoserver用户界面。如果在筛选器配置时选中该复选框 Enable redirect to Keycloak Login page 处于未选中状态,并且密钥伪装筛选器与表单和匿名筛选器共存于/web链上。您将看到一个密钥伪装登录按钮,允许用户访问密钥伪装登录页面。

../../_images/keycloak_login.png

否则,用户将被直接重定向至密钥斗篷 login-page ,并在登录后重定向回实际的Geoserver用户界面页面。

../../_images/keycloak_adapter003.png

您应该验证消息 logged in as <USERNAME> 在继续之前张贴在右上角。

../../_images/keycloak_adapter004.png

警告

登录后出现403个未经授权的响应时的解决方法。

在keypolt客户机中强制使用RS256算法。

../../_images/keycloak_client008.png

将RS256算法的公钥从领域设置复制到适配器配置中,如下所示:

"realm-public-key": XXXXXXX
../../_images/keycloak_client009.png
../../_images/keycloak_adapter005.png