在地理服务器中使用 authkey 验证请求
Authenticate request using authkey in geoserver
我需要在 geoserver 中实现 authkey 模块以使客户端能够发送经过身份验证的请求。我关注了official article, and read through the Q&A from here and there等,这些文章和答案对我的部分工作有帮助。
作为地理服务器的初学者,我花了很长时间才找到完整的答案。所以我提出我的解决方案,以防有人有类似的工作可以从中受益。在我的解决方案中,我使用 User property
作为密钥提供者。
如果您有更好的解决方案,欢迎在下方分享。
在实施 authkey 模块之前,我通过将工作区分配给不同的用户来保护图层,赋予他们 read/write 权限,并将目录模式设置为 "HIDE"。
实现authkey的过程如下:
- 从 http://geoserver.org/download/ 下载插件,选择您的 GeoServer 版本,然后下载扩展。
- 将存档解压缩到 /var/lib/tomcat7/webapps/geoserver/WEB-INF/lib(这是 Linux 系统的目录)。
- 重启tomcat7
部分关注 official article,使用用户 属性 作为密钥提供者:
1).在 geoserver Security => Authentication => Authentication Filters 中,创建 authkey 过滤器。将 "Authentication key to user mapper" 设置为 "User property"。 Select对应组。单击 "Synchronize user/group service" 按钮。
2).修改默认过滤器链。从链中删除基本和匿名身份验证,附加并单独保留 authkey 身份验证。 (这是reference)
从 Users/Groups 获取 UUID。现在您可以使用相应用户的 authkey 从客户端请求。
感谢您的解释,但小问题可以解决从客户端发送到服务器的 authkey 值(始终相同的值),所以任何人都可以模仿它?
下一个更好的步骤是将 WebService 用作 'authentication key to user mapper':
应用程序生成密钥并将其添加到请求中,应用程序 api 端点已固定在地理服务器中,当地理服务器与该 api 通信以进行验证时,地理服务器将该密钥发送回 api,如果它是由应用程序生成的(有效),则 api 以真正的地理服务器用户响应。
那部分通信将被隐藏(保护)。
我需要在 geoserver 中实现 authkey 模块以使客户端能够发送经过身份验证的请求。我关注了official article, and read through the Q&A from here and there等,这些文章和答案对我的部分工作有帮助。
作为地理服务器的初学者,我花了很长时间才找到完整的答案。所以我提出我的解决方案,以防有人有类似的工作可以从中受益。在我的解决方案中,我使用 User property
作为密钥提供者。
如果您有更好的解决方案,欢迎在下方分享。
在实施 authkey 模块之前,我通过将工作区分配给不同的用户来保护图层,赋予他们 read/write 权限,并将目录模式设置为 "HIDE"。
实现authkey的过程如下:
- 从 http://geoserver.org/download/ 下载插件,选择您的 GeoServer 版本,然后下载扩展。
- 将存档解压缩到 /var/lib/tomcat7/webapps/geoserver/WEB-INF/lib(这是 Linux 系统的目录)。
- 重启tomcat7
部分关注 official article,使用用户 属性 作为密钥提供者:
1).在 geoserver Security => Authentication => Authentication Filters 中,创建 authkey 过滤器。将 "Authentication key to user mapper" 设置为 "User property"。 Select对应组。单击 "Synchronize user/group service" 按钮。
2).修改默认过滤器链。从链中删除基本和匿名身份验证,附加并单独保留 authkey 身份验证。 (这是reference)
从 Users/Groups 获取 UUID。现在您可以使用相应用户的 authkey 从客户端请求。
感谢您的解释,但小问题可以解决从客户端发送到服务器的 authkey 值(始终相同的值),所以任何人都可以模仿它?
下一个更好的步骤是将 WebService 用作 'authentication key to user mapper':
应用程序生成密钥并将其添加到请求中,应用程序 api 端点已固定在地理服务器中,当地理服务器与该 api 通信以进行验证时,地理服务器将该密钥发送回 api,如果它是由应用程序生成的(有效),则 api 以真正的地理服务器用户响应。 那部分通信将被隐藏(保护)。