1 /**
2  * Licensed to the University Corporation for Advanced Internet
3  * Development, Inc. (UCAID) under one or more contributor license
4  * agreements. See the NOTICE file distributed with this work for
5  * additional information regarding copyright ownership.
6  *
7  * UCAID licenses this file to you under the Apache License,
8  * Version 2.0 (the "License"); you may not use this file except
9  * in compliance with the License. You may obtain a copy of the
10  * License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
17  * either express or implied. See the License for the specific
18  * language governing permissions and limitations under the License.
19  */
20 
21 /**
22  * @file saml/util/SAMLConstants.h
23  *
24  * SAML XML namespace constants.
25  */
26 
27 #ifndef __saml_xmlconstants_h__
28 #define __saml_xmlconstants_h__
29 
30 #include <saml/base.h>
31 #include <xercesc/util/XercesDefs.hpp>
32 
33 /**
34  * SAML-related constants.
35  */
36 namespace samlconstants {
37 
38     /**  Liberty PAOS XML Namespace ("urn:liberty:paos:2003-08") */
39     extern SAML_API const XMLCh PAOS_NS[];
40 
41     /**  Liberty PAOS QName prefix ("paos") */
42     extern SAML_API const XMLCh PAOS_PREFIX[];
43 
44     /**  SAML 1.X Assertion XML namespace ("urn:oasis:names:tc:SAML:1.0:assertion") */
45     extern SAML_API const XMLCh SAML1_NS[];
46 
47     /**  SAML 1.X Protocol XML namespace ("urn:oasis:names:tc:SAML:1.0:protocol") */
48     extern SAML_API const XMLCh SAML1P_NS[];
49 
50     /** SAML 1.X Assertion QName prefix ("saml") */
51     extern SAML_API const XMLCh SAML1_PREFIX[];
52 
53     /** SAML 1.X Protocol QName prefix ("samlp") */
54     extern SAML_API const XMLCh SAML1P_PREFIX[];
55 
56     /**  SAML 2.0 Version ("2.0") */
57     extern SAML_API const XMLCh SAML20_VERSION[];
58 
59     /**  SAML 2.0 Assertion XML namespace ("urn:oasis:names:tc:SAML:2.0:assertion") */
60     extern SAML_API const XMLCh SAML20_NS[];
61 
62     /**  SAML 2.0 Protocol XML namespace ("urn:oasis:names:tc:SAML:2.0:protocol") */
63     extern SAML_API const XMLCh SAML20P_NS[];
64 
65     /**  SAML 2.0 Metadata XML namespace ("urn:oasis:names:tc:SAML:2.0:metadata") */
66     extern SAML_API const XMLCh SAML20MD_NS[];
67 
68     /**  SAML 2.0 AuthnContext XML namespace ("urn:oasis:names:tc:SAML:2.0:ac") */
69     extern SAML_API const XMLCh SAML20AC_NS[];
70 
71     /** SAML 2.0 Assertion QName prefix ("saml") */
72     extern SAML_API const XMLCh SAML20_PREFIX[];
73 
74     /** SAML 2.0 Protocol QName prefix ("samlp") */
75     extern SAML_API const XMLCh SAML20P_PREFIX[];
76 
77     /** SAML 2.0 Metadata QName prefix ("md") */
78     extern SAML_API const XMLCh SAML20MD_PREFIX[];
79 
80     /** SAML 2.0 AuthnContext QName prefix ("ac") */
81     extern SAML_API const XMLCh SAML20AC_PREFIX[];
82 
83     /** SAML 2.0 Enhanced Client/Proxy SSO Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp") */
84     extern SAML_API const XMLCh SAML20ECP_NS[];
85 
86     /** SAML 2.0 Enhanced Client/Proxy SSO Profile QName prefix ("ecp") */
87     extern SAML_API const XMLCh SAML20ECP_PREFIX[];
88 
89     /** SAML 2.0 DCE PAC Attribute Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE") */
90     extern SAML_API const XMLCh SAML20DCE_NS[];
91 
92     /** SAML 2.0 DCE PAC Attribute Profile QName prefix ("DCE") */
93     extern SAML_API const XMLCh SAML20DCE_PREFIX[];
94 
95     /** SAML 2.0 X.500 Attribute Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500") */
96     extern SAML_API const XMLCh SAML20X500_NS[];
97 
98     /** SAML 2.0 X.500 Attribute Profile QName prefix ("x500") */
99     extern SAML_API const XMLCh SAML20X500_PREFIX[];
100 
101     /** SAML 2.0 XACML Attribute Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:attribute:XACML") */
102     extern SAML_API const XMLCh SAML20XACML_NS[];
103 
104     /** SAML 2.0 XACML Attribute Profile QName prefix ("xacmlprof") */
105     extern SAML_API const XMLCh SAML20XACML_PREFIX[];
106 
107     /** SAML 1.x Metadata Profile XML Namespace ("urn:oasis:names:tc:SAML:profiles:v1metadata") */
108     extern SAML_API const XMLCh SAML1MD_NS[];
109 
110     /** SAML 1.x Metadata Profile QName prefix ("saml1md") */
111     extern SAML_API const XMLCh SAML1MD_PREFIX[];
112 
113     /** SAML 1.0 Protocol Enumeration constant ("urn:oasis:names:tc:SAML:1.0:protocol") */
114     extern SAML_API const XMLCh SAML10_PROTOCOL_ENUM[];
115 
116     /** SAML 1.1 Protocol Enumeration constant ("urn:oasis:names:tc:SAML:1.1:protocol") */
117     extern SAML_API const XMLCh SAML11_PROTOCOL_ENUM[];
118 
119     /** SAML Query Requester Metadata Extension XML Namespace ("urn:oasis:names:tc:SAML:metadata:ext:query") */
120     extern SAML_API const XMLCh SAML20MD_QUERY_EXT_NS[];
121 
122     /** SAML Query Requester Metadata Extension QName prefix ("query") */
123     extern SAML_API const XMLCh SAML20MD_QUERY_EXT_PREFIX[];
124 
125     /** SAML Third-Party Request Protocol Extension XML Namespace ("urn:oasis:names:tc:SAML:protocol:ext:third-party") */
126     extern SAML_API const XMLCh SAML20P_THIRDPARTY_EXT_NS[];
127 
128     /** SAML Third-Party Request Protocol Extension QName prefix ("thrpty") */
129     extern SAML_API const XMLCh SAML20P_THIRDPARTY_EXT_PREFIX[];
130 
131     /** SAML Asynchronous Logout Protocol Extension XML Namespace ("urn:oasis:names:tc:SAML:2.0:protocol:ext:async-slo") */
132     extern SAML_API const XMLCh SAML20P_ASYNCSLO_EXT_NS[];
133 
134     /** SAML Asynchronous Logout Protocol Extension QName prefix ("aslo") */
135     extern SAML_API const XMLCh SAML20P_ASYNCSLO_EXT_PREFIX[];
136 
137     /** SAML Attribute Extension XML Namespace ("urn:oasis:names:tc:SAML:attribute:ext") */
138     extern SAML_API const XMLCh SAML20_ATTRIBUTE_EXT_NS[];
139 
140     /** SAML Attribute Extension QName prefix ("ext") */
141     extern SAML_API const XMLCh SAML20_ATTRIBUTE_EXT_PREFIX[];
142 
143     /** SAML Metadata Extension for Algorithm Support XML Namespace ("urn:oasis:names:tc:SAML:metadata:algsupport") */
144     extern SAML_API const XMLCh SAML20MD_ALGSUPPORT_NS[];
145 
146     /** SAML Metadata Extension for Algorithm Support QName prefix ("alg") */
147     extern SAML_API const XMLCh SAML20MD_ALGSUPPORT_PREFIX[];
148 
149     /** SAML Metadata Extension for Entity Attributes XML Namespace ("urn:oasis:names:tc:SAML:metadata:attribute") */
150     extern SAML_API const XMLCh SAML20MD_ENTITY_ATTRIBUTE_NS[];
151 
152     /** SAML Metadata Extension for Entity Attributes QName prefix ("mdattr") */
153     extern SAML_API const XMLCh SAML20MD_ENTITY_ATTRIBUTE_PREFIX[];
154 
155     /** SAML Metadata Extension for Discovery and Login UI XML Namespace ("urn:oasis:names:tc:SAML:metadata:ui") */
156     extern SAML_API const XMLCh SAML20MD_UI_NS[];
157 
158     /** SAML Metadata Extension for Discovery and Login UI QName prefix ("mdui") */
159     extern SAML_API const XMLCh SAML20MD_UI_PREFIX[];
160 
161     /** SAML Metadata Extension for Registration and Publication Information XML Namespace ("urn:oasis:names:tc:SAML:metadata:rpi") */
162     extern SAML_API const XMLCh SAML20MD_RPI_NS[];
163 
164     /** SAML Metadata Extension for Registration and Publication Information QName prefix ("mdrpi") */
165     extern SAML_API const XMLCh SAML20MD_RPI_PREFIX[];
166 
167     /** SAML Condition for Delegation Restriction XML Namespace ("urn:oasis:names:tc:SAML:2.0:conditions:delegation") */
168     extern SAML_API const XMLCh SAML20_DELEGATION_CONDITION_NS[];
169 
170     /** SAML Condition for Delegation Restriction QName prefix ("del") */
171     extern SAML_API const XMLCh SAML20_DELEGATION_CONDITION_PREFIX[];
172 
173     /** Identity Provider Discovery Protocol and Profile XML Namespace ("urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol") */
174     extern SAML_API const XMLCh IDP_DISCOVERY_PROTOCOL_NS[];
175 
176     /** Identity Provider Discovery Protocol and Profile QName prefix ("idpdisc") */
177     extern SAML_API const XMLCh IDP_DISCOVERY_PROTOCOL_PREFIX[];
178 
179     /** Service Provider Request Initiation Protocol and Profile XML Namespace ("urn:oasis:names:tc:SAML:profiles:SSO:request-init") */
180     extern SAML_API const XMLCh SP_REQUEST_INIT_NS[];
181 
182     /** Service Provider Request Initiation Protocol and Profile QName prefix ("init") */
183     extern SAML_API const XMLCh SP_REQUEST_INIT_PREFIX[];
184 
185     /** SAML 1.x SOAP binding ("urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding") */
186     extern SAML_API const char SAML1_BINDING_SOAP[];
187 
188     /** SAML 1.x Browser Artifact profile ("urn:oasis:names:tc:SAML:1.0:profiles:artifact-01") */
189     extern SAML_API const char SAML1_PROFILE_BROWSER_ARTIFACT[];
190 
191     /** SAML 1.x Browser POST profile ("urn:oasis:names:tc:SAML:1.0:profiles:browser-post") */
192     extern SAML_API const char SAML1_PROFILE_BROWSER_POST[];
193 
194     /** SAML 2.0 Browser SSO Profile ("urn:oasis:names:tc:SAML:2.0:profiles:SSO:browser") */
195     extern SAML_API const char SAML20_PROFILE_SSO_BROWSER[];
196 
197     /** SAML 2.0 Enhanced Client/Proxy SSO Profile ("urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp") */
198     extern SAML_API const char SAML20_PROFILE_SSO_ECP[];
199 
200     /** SAML 2.0 Logout Profile ("urn:oasis:names:tc:SAML:2.0:profiles:SSO:logout") */
201     extern SAML_API const char SAML20_PROFILE_SSO_LOGOUT[];
202 
203     /** SAML 2.0 NameID Management Profile ("urn:oasis:names:tc:SAML:2.0:profiles:SSO:nameid-mgmt") */
204     extern SAML_API const char SAML20_PROFILE_SSO_NAMEID_MGMT[];
205 
206     /** SAML 2.0 Artifact Resolution Profile ("urn:oasis:names:tc:SAML:2.0:profiles:artifact") */
207     extern SAML_API const char SAML20_PROFILE_ARTIFACT[];
208 
209     /** SAML 2.0 Query Profile ("urn:oasis:names:tc:SAML:2.0:profiles:query") */
210     extern SAML_API const char SAML20_PROFILE_QUERY[];
211 
212     /** SAML 2.0 SOAP binding ("urn:oasis:names:tc:SAML:2.0:bindings:SOAP") */
213     extern SAML_API const char SAML20_BINDING_SOAP[];
214 
215     /** SAML 2.0 PAOS binding ("urn:oasis:names:tc:SAML:2.0:bindings:PAOS") */
216     extern SAML_API const char SAML20_BINDING_PAOS[];
217 
218     /** SAML 2.0 URI binding ("urn:oasis:names:tc:SAML:2.0:bindings:URI") */
219     extern SAML_API const char SAML20_BINDING_URI[];
220 
221     /** SAML 2.0 HTTP-Artifact binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact") */
222     extern SAML_API const char SAML20_BINDING_HTTP_ARTIFACT[];
223 
224     /** SAML 2.0 HTTP-POST binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST") */
225     extern SAML_API const char SAML20_BINDING_HTTP_POST[];
226 
227     /** SAML 2.0 HTTP-POST-SimpleSign binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign") */
228     extern SAML_API const char SAML20_BINDING_HTTP_POST_SIMPLESIGN[];
229 
230     /** SAML 2.0 HTTP-Redirect binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect") */
231     extern SAML_API const char SAML20_BINDING_HTTP_REDIRECT[];
232 
233     /** SAML 2.0 HTTP-Redirect DEFLATE URL encoding ("urn:oasis:names:tc:SAML:2.0:bindings:URL-Encoding:DEFLATE") */
234     extern SAML_API const char SAML20_BINDING_URL_ENCODING_DEFLATE[];
235 };
236 
237 #endif /* __saml_xmlconstants_h__ */
238