Hi Chris, 

I  cc'd Martin and Andrea, the last time my postings to user/developer list 
got lost and I have no idea why 

I will try to give you some short answers because this implementation is 
quite complex. 

1) Yes, it is possible to define security constraints on geometries. All 
Access rules are defined in
a set of xml files located in GEOSERVER_DATA_DIR/geoxacml. Geometries can be 
specified in GML2 and GML3
syntax. At the moment I support the BBOX parameter and there are some test 
cases with an restricted area expressed in
GML3.  GeoXACML is an extension of XACML (which is quite complex) 
introducing a "Geometry" Data type and all the functions you know from the 
JTS topology suite (intersects, intersect, union, overlapps ....). 

2) A second possibility is to pass back a geometry as an obligation to 
geoserver. This means that the security sytem permits access but passes back 
geometry restrictions to GeoServer logic. Andrea had the great idea of using 
CQL expressions as obligations and passing back a Filter object to GeoServer 
instead of a simple permit or deny. This requires a change of the 
DataAccessManager interface and Adrea wants to defer this to a point in time 
after the GeoServer 2.0  release. 

3) The XACML part itself is for securing all non geometriy data. A typical 
question would be:
Has this user a role which allows him to issue a WMS GetMap request for a 
specific layer in a specific workspace in the requested area ? 

4) If geoxaml is activated, all request should run through this security 
system. It is transparent for the client. 

5) Roles itself are also a resource. As an example, you can specify that a 
role is valid only from 8:00 am to 17:00 pm. The role concept is 
hierarchical.  Additionally you can specify needed role parameters, see 6) 

6) Roles may have role parameters (I am still working on that). The acegi 
security system has the concept of a UserInfo objcet. This object stores 
user specific data like email address or eployee number. Needless to say 
that you can attach a geometry to this UserInfo object. (Restricting the 
area for a specific user). The properties of the userinfo object may be 
passed as role parameters to the XACML Engine if required. 

7) I am still working on securing urls with means of XACML. Urls can be 
protected with wildcards or regular expressions. 

8) Since XACML says nothing about the transport mechanism from client to 
server, 2 possibilities are offered.
 a) Local in memory without xml encoding/decoding
 b) using http post requests, meaning GeoServer is already an universal 
GeoXACML Engine. The url is http://.../geoserver/security/geoxaml. You can 
post a valid GeoXACML request and will get a valid Response. 

I am planning to finish the above issues (I am almost there), afterwards we 
should start a discussion about the future
Geoserver security model. And yes, I think I will need some help here. 

And second big part is writing an admin GUI. GeoXACML is very powerfull but 
writing the policies is not simple at all and no user will do this. At the 
moment I have no capacity for creating a GUI, but without it, there will be 
no future for this security system :-( 

OK, this was not as short as announced at the beginning of the mail, but I 
think that it is important to know something about the main features. 

 

Chris Holmes writes: 

> Hey, does this mean it's now possible to define geometry security 
> constraints?  How do you specify them?  Like how's configuration done? 
> Does it have to go through geoxacml, or will direct requests also enforce 
> the geometry security constraints?  (The last question may be ill-formed - 
> I don't quite understand what exactly geoxacml does) 
> 
> We should do a blog post when you're ready.  Would be good to get nice 
> docs on it, we may be able to help with that.  Sounds like it's gone quite 
> well though, it's exciting to see this capability in geoserver. 
> 
> Chris 
> 
> Christian Müller wrote:
>> 
>> Passed all security test suites provided for the "old" security system. 
>> Adding tests for securing requests with geometries.
>> Improved integration into the acegi (spring) security system.
>> Starting geoserver with xacml successfully.
>> _______________________________________________
>> SoC mailing list
>> s...@lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/soc
> 
> -- 
> Chris Holmes
> OpenGeo - http://opengeo.org
> Expert service straight from the developers.
 


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to