基于HTTP的授权配置

这个 HTTP Based Authorization plug-in 将尝试在已配置的外部身份验证服务上对用户进行身份验证。用户名和密码将通过以下方式之一发送到服务:

  • 在名为的标题中 X-HTTP-AUTHORIZATION

  • 作为查询参数或作为请求路径。对于此用例,需要通过插入两个占位符来配置URL,即 {user}{password} ,其中需要提供用户名和密码,例如。 https://my-auth-service?username={username}&password={password}

身份验证提供程序将执行 GET 请求,正在发送Base64编码的凭据。如果外部服务返回的响应状态与 200 不会对用户进行身份验证。

如果外部身份验证服务在响应正文中返回经过身份验证的用户的角色,则可以定义正则表达式来提取它们,从而允许使用它们进行授权。对于特定的内容类型没有限制。

一旦安装了插件,就可以通过以下方式进行配置:

  • 打开 Authentication 选项中的 Security 菜单

  • 选择 Authentication provider 然后 add new

  • 选择 Web Service Authentication 选择权

../../_images/newProvider.png

点击 Web Service Authentication 提供输入提供商设置的可能性。

../../_images/httpProviderConf.png

在哪里:

  • Service URL 是用于身份验证的外部服务的URL。

  • Timeout 是连接超时。

  • Read Timeout 是等待读取响应数据的超时时间。

  • 这个 Send credentials in X-HTTP-AUTHORIZATION Header 如果必须通过授权头发送凭据,则复选框将被标记。如果未选中(默认),Geoserver将查找用户名和密码的占位符 {user}{password} 而是放在提供的URL中。

  • 这个 Allow HTTP connection 如果复选框已标记,则允许向使用 HTTP 协议。仅在默认情况下 HTTPS 是被允许的。

  • Authorization 部分单选按钮用于定义是否使用Geoserver RoleService 读取角色或角色是否要由外部身份验证服务返回。

  • 万一 Read Roles from Web Response ,则需要提供从身份验证服务响应中提取角色的正则表达式。

保存设置后,新的 AuthenticationProvider 被添加到列表中,并且需要添加到提供商链的列表中

../../_images/providersList.png