Open Geospatial Consortium Inc. Date: 2007-11-16
Reference number of this OGC® project document:
OGC 07-099r1 Version: 1.0.0
Category: OGC® Implementation Specification Editor: Andreas Matheus
Geospatial eXtensible Access Control Markup Language (GeoXACML) Extension B – GML3 Encoding Version 1.0
Copyright notice Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
Document type: Document subtype: Document stage: Document language:
OGC® Publicly Available Standard Encoding Approved English
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
1
OGC 07-099r1
Disclaimer Issues of absolute or relative accuracy of feature geometry and positioning data and the computational stability of finite precision arithmetic as used in all computers will affect results where distance measure, geometry or positional values are compared. For this reason, and the variety of statistically valid but different implementation approaches to these issues, Boolean criteria as used in XACML or GeoXACML policy statements will not always produce uniform results across geographic implementations. For these reasons, users of this technology should not ask for fine gradations of measures that their data or coordinate transformation cannot support, but should alternately allow a "tolerant" approach where feasible which might give access to slightly more data than would be given in a perfect computational, but impossible to implement, environment.
2
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
OGC 07-099r1
Contents 1
Scope....................................................................................................................... 8
2
Conformance ......................................................................................................... 8
3
Normative references ............................................................................................ 9
4
GeoXACML Data Type for GML3 Encoding (normative) ............................. 10
Annex A
GeoXACML Conformance Tables (normative) ................................... 11
Annex B GML3 Geometry Encoding Examples (informative) .......................... 12 B.1 Point Geometry ................................................................................................... 12 B.2 LineString Geometry .......................................................................................... 12 B.3 Polygon Geometry ............................................................................................... 12 Annex C GeoXACML Policy Construct Examples (informative) ...................... 13 C.1 Polygon Geometry Attribute Value ................................................................... 13 C.2 MultiPoint Attribute Value ................................................................................ 13 C.3 Creating a Bag of Geometries ............................................................................ 14 C.4 Function ............................................................................................................... 14 C.5 Condition ............................................................................................................. 14 Annex D Example for protecting a OWS using GeoXACML (informative) ..... 15 D.1 Condition encoding for the WMS example ...................................................... 15 D.2 Condition encoding for the WFS example ........................................................ 17
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
3
OGC 07-099r1
i.
Preface
This document defines the normative encoding of geometries to be used in GeoXACML based on the GML3 Simple Features Profile.
ii.
Submitting organizations
The following organizations submitted this Implementation Specification to the Open Geospatial Consortium Inc. as a Request For Comment (RFC): Universität der Bundeswehr München Andreas Matheus Werner-Heisenberg-Weg 39 D-85579 Neubiberg Germany andreas.matheus(at)unibw.de
Galdos Systems Inc. Ron Lake 1300-409 Granville St Vancouver V6C 1T2 Canada Rlake(at)galdosinc.com
iii.
Submission and contribution contact points
All questions regarding this submission should be directed to the editor or the submitters: CONTACT
COMPANY
Andreas Matheus
Universität der Bundeswehr München
Andreas.Matheus(at)unibw.de
Jan Herrmann
Ludwig-Maximilians-Universität München
jan.herrmann(at)lmu.de
Martin Kyle
Sierra Systems Group, Inc.
MartinKyle(at)SierraSystems.com
4
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
OGC 07-099r1
iv.
Revision history Date
v.
Release
Author
Paragraph modified
Description
2007-08-10 0.1.0
Andreas Matheus All
Initial Writing
2007-08-20 0.2.0
Andreas Matheus 4, Annex A
Insert Null geometry; make all definitions mandatory<
2007-08-22 0.3.0
Andreas Matheus 4, A.1
As suggested by Jan, GML geometry encoding shall be version aware
2007-08-24 0.4.0
Andreas Matheus Annex C, D
Restructuring of examples
2007-09-07 0.5.0
Martin Kyle
Editorial corrections
2007-10-25 0.6.0
Andreas Matheus All
Incorporation of comments and decisions from the TC meeting 17.-21.9.2007
2007-11-16 0.7.0
Andreas Matheus p. 2
Insert of disclaimer
All
throughout
GeoXACML URN corrections
throughout
final formatting
Changes to the OGC® Abstract Specification
The OpenGIS® Abstract Specification does not require changes to accommodate this standard.
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
5
OGC 07-099r1
Foreword Normative Annex A provides the GeoXACML conformance tables. Informative Annex B provides GML3 encoding examples. Informative Annex C provides GeoXACML Policy construct examples. Informative Annex D provides the GML3 specific encoding of the <Condition> element, used in the example of the core specification in Annex C.
6
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
OGC 07-099r1
Introduction This specification is a normative extension to the GeoXACML core Implementation Specification ([2]). It defines the GML3 encoding for geometries.
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
7
OGC 07-099r1
OpenGIS® Geospatial eXtensible Access Control Markup Language (GeoXACML) Implementation Specification – Version 1.0 Extension B – GML3 Encoding 1
Scope
This document defines an extension to the GeoXACML Implementation Specification, Verison 1.0 ([2]) for the GML3 geometry encoding as specified in the GML3 Specification ([3]) and the Simple Features Profile ([4]), level SF-2. 2
Conformance
In order to claim conformance with this extension of the GeoXACML specification, an implementation of a PDP MUST be conform with
8
(i)
the XACML specification as stated in [1], section 10 AND
(ii)
the GeoXACML specification as stated in [2], section 2 AND
(iii)
the data type encoding as provided in section 4 AND
(iv)
the conformance table provided in Annex A of this specification.
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
OGC 07-099r1
3
Normative references
[1] OASIS, eXtensible Access Control Markup Language (XACML) Version 2.0, 1 Feb 2005, http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-core-specos.pdf [2] OGC, OpenGIS® GeoXACML Implementation Specification, Version 1.0, 2007-1116 [3] OGC, OpenGIS® Geography Markup Language(GML) Implementation Specification, Version 3.1.1, 2004-02-07, http://portal.opengeospatial.org/files/?artifact_id=4700 [4] OGC, Geography Markup Language (GML) simple features profile, Version 1.0, Version 1.0, Date: 2006-04-25, http://portal.opengeospatial.org/files/?artifact_id=15201
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
9
OGC 07-099r1
4
GeoXACML Data Type for GML3 Encoding (normative)
The Geography Markup Language GML of Version 3 as specified in [3] and the Simple Features Profile – level SF-2 as specified in [4] defines – beside other aspects – the XML encoding for geometric data types. In order to use GML3 geometric data type attribute values, this extension to the GeoXACML core specification supports the following GML3 data type URIs:
GML URI http://www.opengis.net/gml#Point http://www.opengis.net/gml#LineString http://www.opengis.net/gml#Polygon http://www.opengis.net/gml#LinearRing http://www.opengis.net/gml#Envelope http://www.opengis.net/gml#MultiPoint http://www.opengis.net/gml#MultiCurve http://www.opengis.net/gml#MultiSurface Table 1 — GML3 data type URIs
10
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
OGC 07-099r1
Annex A
GeoXACML Conformance Table (normative)
This Annex defines which GML data type definitions are mandatory to be implemented toward BASIC conformance. In order to pass the BASIC conformance level, an implementation SHALL process ALL attribute URIs marked “I” for ALL test cases defined in [2], Annex B.4, B.5 and B.6. GML URI
Conformance Class
http://www.opengis.net/gml#Point
I
http://www.opengis.net/gml#LineString
I
http://www.opengis.net/gml#Polygon
I
http://www.opengis.net/gml#LinearRing
I
http://www.opengis.net/gml#Envelope
I
http://www.opengis.net/gml#MultiPoint
I
http://www.opengis.net/gml#MultiCurve
I
http://www.opengis.net/gml#MultiSurface
I
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
11
OGC 07-099r1
Annex B
B.1
GML3 Geometry Encoding Examples (informative)
Point Geometry
<gml:Point srsName="urn:ogc:def:crs:EPSG:6.6:4326"> <gml:pos>45.256 -110.45</gml:pos> </gml:Point>
Figure B.1 — GML3 Point Example
B.2
LineString Geometry
<gml:LineString srsName="urn:ogc:def:crs:EPSG:6.6:4326"> <gml:pos>45.256 -110.45 50.4 -100.3</gml:pos> </gml:LineString>
Figure B.2 — GML3 LineString Example
B.3
Polygon Geometry
<gml:Polygon id="Europe" srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:exterior> <gml:LinearRing> <gml:posList dimension="2"> -11 55 -10 35 -5.5 36 -1 36 1 38 5 38 11 38 14 36 26 33 29 36 26 39 29 46 39 47 40 49 27 56 27 60 25 60 20 58 21 56 19 55 11 55 10 57 7 57 8 54 3 53 -2 60 -8 58 -11 55 -11 55 </gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon>
Figure B.3 — GML3 Polygon Example
12
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
OGC 07-099r1
Annex C
GeoXACML Policy Construct Examples (informative)
The following examples are based on the GML3 encoding for geometry types as specified in this part (Part B – GML3 Encoding), according to the underlying geometric model as introduced in the core specification of GeoXACML (see [2]). C.1 Polygon Geometry Attribute Value <AttributeValue DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"> <gml:Polygon id="Europe" srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:exterior> <gml:LinearRing> <gml:posList dimension="2"> -11 55 -10 35 -5.5 36 -1 36 1 38 5 38 11 38 14 36 26 33 29 36 26 39 29 46 39 47 40 49 27 56 27 60 25 60 20 58 21 56 19 55 11 55 10 57 7 57 8 54 3 53 -2 60 -8 58 -11 55 -11 55 </gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon> </AttributeValue>
Figure C.1 — GeoXACML Polygon <AttributeValue> Example
C.2 MultiPoint Attribute Value <AttributeValue DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"> <gml:MultiPoint xmlns:gml="http://www.opengis.net/gml" srsName="urn:EPSG:geographicCRS:4326"> <geometryMember> <gml:Point srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:pos>0 0</gml:pos> </gml:Point> </geometryMember> <geometryMember> <gml:Point srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:pos>1 1</gml:pos> </gml:Point> </geometryMember> </gml:MultiPoint> </AttributeValue>
Figure C.2 — GeoXACML MultiPoint <AttributeValue> Example
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
13
OGC 07-099r1
C.3 Creating a Bag of Geometries <Function FunctionId="urn:ogc:def:function:geoxacml:1.0:geometry-bag"/> <AttributeValue DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"> <gml:Point srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:pos>0 0</gml:pos> </gml:Point> </AttributeValue> <AttributeValue DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"> <gml:Point srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:pos>1 1</gml:pos> </gml:Point> </AttributeValue>
Figure C.3 — GeoXACML Bag of Geometries Example C.4 Function <Function FunctionId="urn:ogc:def:function:geoxacml:1.0:geometrywithin"/>
Figure C.4 — GeoXACML <Function> Example C.5 Condition <Condition FunctionId="urn:oasis:names:tc:xacml:1.0:function:all-of"> <Function FunctionId="urn:ogc:def:function:geoxacml:1.0:geometrycontains"/> <AttributeValue DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"> <gml:Polygon id="Europe" srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:exterior> <gml:LinearRing> <gml:posList dimension="2"> -11 55 -10 35 -5.5 36 -1 36 1 38 5 38 11 38 14 36 26 33 29 36 26 39 29 46 39 47 40 49 27 56 27 60 25 60 20 58 21 56 19 55 11 55 10 57 7 57 8 54 3 53 -2 60 -8 58 -11 55 -11 55 </gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon> </AttributeValue> <AttributeSelector DataType=urn:ogc:def:dataType:geoxacml:1.0:geometry RequestContextPath="//ogc:BBOX/gml:Envelope"/> </Condition>
Figure C.5 — GeoXACML Condition Example
14
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
OGC 07-099r1
Annex D
Example for protecting a OWS using GeoXACML (informative)
This Annex contains the encodings of GeoXACML condition elements to be used for the WMS and WFS protection example, presented in Annex C of the core specification. D.1 Condition encoding for the WMS example
For the full example see [2], Annex C. <Condition> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and"> <Apply FunctionId="urn:ogc:def:function:geoxacml:1.0:all-of"> <Function FunctionId="urn:oasis:names:tc:xacml:1.0:function:stringequal"/> <AttributeSelector RequestContextPath="//wms:GetMap/*/sld:NamedLayer/sld:Name" DataType="http://www.w3.org/2001/XMLSchema#string"/> <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Capitals</AttributeValue> </Apply> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:not"> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:any-of"> <Function FunctionId="urn:ogc:def:function:geoxacml:1.0:geometry-contains"/> <AttributeValue DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"> <gml:Polygon id="North and South America" srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:exterior> <gml:LinearRing> <gml:posList dimension="2">-180 60 -180 47 -137 55 -125 35 -110 17 -80 5 -87 -5 -74 22 -78 -53 -67 -58 -60 -48 -35 -23 -27 -3 -55 12 -60 22 -75 30 -67 42 -50 45 -60 85 -60 85 -85 85 -120 80 -130 75 -160 75 -168 70 -180 60</gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon> </AttributeValue> <AttributeSelector RequestContextPath="//gml:boundedBy/gml:Envelope" DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"/> </Apply> </Apply> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:all-of"> <Function FunctionId="urn:ogc:def:function:geoxacml:1.0:geometrydisjoint"/> <AttributeValue DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"> <gml:Polygon id="North and South America" srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:exterior> <gml:LinearRing> <gml:posList dimension="2">-180 60 -180 47 -137 55 -125 35 -110 17 -80 5 -87 -5 -74 22 -78 -53 -67 -58 -60 -48 -35 -23 -27 -3 -55 12 -60 22 -75 30 -67 42 -50 45 -60 85 -60 85 -85 85 -120 80 -130 75 -160 75 -168 70 -180 60</gml:posList> </gml:LinearRing>
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
15
OGC 07-099r1
</gml:exterior> </gml:Polygon> </AttributeValue> <AttributeSelector RequestContextPath="//gml:boundedBy/gml:Envelope" DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"/> </Apply> </Apply> </Condition>
Figure D.1 — GeoXACML Condition using GML3 geometry encoding
<Condition> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and"> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:all-of"> <Function FunctionId="urn:oasis:names:tc:xacml:1.0:function:stringequal"/> <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Capitals</AttributeValue> <AttributeSelector RequestContextPath="//wms:GetMap/*/sld:NamedLayer/sld:Name" DataType="http://www.w3.org/2001/XMLSchema#string"/> </Apply> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:all-of"> <Function FunctionId="urn:ogc:def:function:geoxacml:1.0:geometrycontains"/> <AttributeValue DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"> <gml:Polygon id="Europe" srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:exterior> <gml:LinearRing> <gml:posList dimension="2">-11 55 -10 35 -5.5 36 -1 36 1 38 5 38 11 38 14 36 26 33 29 36 26 39 29 46 39 47 40 49 27 56 27 60 25 60 20 58 21 56 19 55 11 55 10 57 7 57 8 54 3 53 -2 60 -8 58 -11 55 -11 55</gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon> </AttributeValue> <AttributeSelector RequestContextPath="//gml:boundedBy/gml:Envelope" DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"/> </Apply> </Apply> </Condition>
Figure D.2 — GeoXACML Condition using GML3 geometry encoding
16
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
OGC 07-099r1
D.2 Condition encoding for the WFS example
For the full example see [2], Annex C. <Condition> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:all-of"> <Function FunctionId="urn:ogc:def:function:geoxacml:1.0:geometrycontains"/> <AttributeValue DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"> <gml:Polygon id="P" srsName="urn:ogc:def:crs:EPSG:6.6:4326" xmlns:gml="http://www.opengis.net/gml"> <gml:exterior> <gml:LinearRing> <gml:posList dimension="2"> -74.28798767828596 40.72400955310945 -74.12552621736093 40.722605998371435 74.12552621736093 40.614883172228936 -74.28939123302396 40.61558494959794 74.28798767828596 40.72400955310945 -74.28798767828596 40.72400955310945 74.28798767828596 40.72400955310945 </gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon> </AttributeValue> <AttributeSelector RequestContextPath="//wfs:Transaction/wfs:Insert/ows4:HeliPad_P2/ows4:the_geom/ gml:Point" DataType="urn:ogc:def:dataType:geoxacml:1.0:geometry"/> </Apply> </Condition>
Figure D.3 — GeoXACML Condition using GML3 geometry encoding
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
17
OGC 07-099r1
Bibliography
[5] OASIS, Core and hierarchical role based access control (RBAC) profile of XACML v2.0, 2005-02-01, http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0rbac-profile1-spec-os.pdf [6] OASIS, SAML 2.0 profile of XACML v2.0, 2005-02-01, http://docs.oasisopen.org/xacml/2.0/access_control-xacml-2.0-saml-profile-spec-os.pdf [7] Cover Pages, Extensible Access Control Markup Language (XACML), http://xml.coverpages.org/xacml.html [8] OGC, The OpenGIS® Abstract Specification Topic 18: Geospatial Digital Rights Management Reference Model (GeoDRM RM), Version: 1.0.0, 2006-12-29, http://portal.opengeospatial.org/files/?artifact_id=17802 [9] Vivid Solutions, JTS Topology Suite Technical Specifications, Version 1.4, http://www.vividsolutions.com/JTS/bin/JTS%20Technical%20Specs.pdf [10] OGC, OpenGIS® Web Service Common Implementation Specification, Version 1.0.0, 2005-11-22, http://portal.opengeospatial.org/files/?artifact_id=8798 [11] OGC, OpenGIS® Web Map Service Implementation Specification, Version 1.3.0, 2004-01-20, http://portal.opengeospatial.org/files/?artifact_id=4756 [12] OGC, OpenGIS® Web Feature Service Implementation Specification, Version 1.1.0, 2005-05-03, http://portal.opengeospatial.org/files/?artifact_id=8339
18
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.