使用Geoserver WFS根据用户凭据返回功能

时间:2014-08-22 00:11:28

标签: security ldap authorization geoserver

我们正在使用基于LDAP的身份验证与连接到PostGIS数据库的geoserver。 用户在身份验证后使用WFS-T将行(功能)插入表(​​层)。

现在,当用户从此层查询数据时(也在身份验证后),我们希望根据其凭据(即)仅查看该用户或组插入的数据来返回适用于此用户的数据。 / p>

我们将用户名存储在表格中。我们获取用户名,因为我们在表中将其定义为非空列,并且用户需要将其作为其WFS-T插入的一部分提供。

我读到了有关服务级别安全性和层级安全性的信息,但我们需要的更像是行级别或功能级别的安全性。

如果需要,我们可以使用基于JDBC的身份验证而不是LDAP,但不知道这是否可以解决问题。

我很熟悉Java和一些对Spring安全性有所了解的知识,因此可以根据需要处理自定义。请指教。

1 个答案:

答案 0 :(得分:0)

您需要使用基于角色的访问控制(rbac)或基于属性的访问控制(abac)。 Spring Security将为您提供前者。你后者需要XACML。

了解用户的身份后,您可以确定他们所属的角色和群组。在XACML中,您可以定义一个策略,该策略规定如何授予访问权限。如果您要保护的数据与访问它的用户之间存在关系,请使用XACML。

您需要一个Web服务过滤器来拦截请求和/或响应。该过滤器在XACML架构中称为策略执行点。

如果您有大量数据,那么您希望使用类似Axiomatics数据访问过滤器的东西,该过滤器使用XACML策略来创建用于仅检索授权数据的SQL WHERE子句。

H个