1 <?xml version="1.0" encoding="US-ASCII"?>
\r
2 <schema targetNamespace="urn:mace:shibboleth:sp:config:2.0"
\r
3 xmlns="http://www.w3.org/2001/XMLSchema"
\r
4 xmlns:conf="urn:mace:shibboleth:sp:config:2.0"
\r
5 xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
\r
6 xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
\r
7 elementFormDefault="qualified"
\r
8 attributeFormDefault="unqualified"
\r
9 blockDefault="substitution"
\r
12 <import namespace="urn:oasis:names:tc:SAML:2.0:assertion" schemaLocation="saml-schema-assertion-2.0.xsd"/>
\r
13 <import namespace="urn:oasis:names:tc:SAML:2.0:metadata" schemaLocation="saml-schema-metadata-2.0.xsd"/>
\r
17 2.0 schema for XML-based configuration of Shibboleth SP instances.
\r
18 First appearing in Shibboleth 2.0 release.
\r
22 <simpleType name="string">
23 <restriction base="string">
24 <minLength value="1"/>
\r
28 <simpleType name="listOfStrings">
\r
29 <list itemType="conf:string"/>
\r
32 <complexType name="PluggableType">
\r
34 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
36 <attribute name="type" type="conf:string" use="required"/>
\r
37 <anyAttribute namespace="##any" processContents="lax"/>
\r
40 <element name="SPConfig">
\r
43 <documentation>Root of configuration</documentation>
46 <element ref="conf:Extensions" minOccurs="0"/>
47 <element ref="conf:OutOfProcess"/>
48 <element ref="conf:InProcess"/>
49 <element ref="conf:Applications"/>
50 <element ref="conf:Credentials" minOccurs="0"/>
51 <element ref="conf:SecurityPolicies"/>
53 <attribute name="logger" type="anyURI"/>
54 <attribute name="clockSkew" type="unsignedInt"/>
55 <anyAttribute namespace="##other" processContents="lax"/>
59 <element name="Extensions">
\r
61 <documentation>Container for extension libraries and custom configuration</documentation>
\r
65 <element name="Library" minOccurs="0" maxOccurs="unbounded">
\r
68 <restriction base="conf:PluggableType">
\r
70 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
72 <attribute name="path" type="anyURI" use="required"/>
\r
73 <attribute name="fatal" type="boolean" default="true"/>
\r
78 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
83 <element name="StorageService">
\r
85 <documentation>References StorageService plugins</documentation>
\r
89 <restriction base="conf:PluggableType">
\r
91 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
93 <attribute name="id" type="ID" use="required"/>
\r
94 <attribute name="cleanupInterval" type="unsignedInt" default="900"/>
\r
95 <anyAttribute namespace="##any" processContents="lax"/>
\r
101 <element name="SessionCache">
\r
103 <documentation>References SessionCache plugins</documentation>
\r
107 <restriction base="conf:PluggableType">
\r
109 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
111 <attribute name="StorageService" type="IDREF"/>
\r
112 <attribute name="cacheTimeout" type="unsignedInt" default="28800"/>
\r
113 <anyAttribute namespace="##any" processContents="lax"/>
\r
119 <element name="ReplayCache">
121 <documentation>Ties ReplayCache to a custom StorageService</documentation>
\r
124 <attribute name="StorageService" type="IDREF" use="required"/>
\r
127 <element name="ArtifactMap">
129 <documentation>Customizes an ArtifactMap</documentation>
\r
132 <attribute name="StorageService" type="IDREF"/>
133 <attribute name="context" type="conf:string"/>
134 <attribute name="artifactTTL" type="unsignedInt" default="180"/>
137 <element name="OutOfProcess">
\r
139 <documentation>Container for shibd out-of-process configuration</documentation>
\r
143 <element ref="conf:Extensions" minOccurs="0"/>
145 <element name="UnixListener">
147 <attribute name="address" type="conf:string" use="required"/>
150 <element name="TCPListener">
152 <attribute name="address" type="conf:string" use="required"/>
153 <attribute name="port" type="unsignedInt" use="required"/>
154 <attribute name="acl" type="conf:listOfStrings" default="127.0.0.1"/>
157 <element name="Listener" type="conf:PluggableType"/>
159 <element ref="conf:StorageService" minOccurs="0" maxOccurs="unbounded"/>
160 <element ref="conf:SessionCache" minOccurs="0"/>
161 <element ref="conf:ReplayCache" minOccurs="0"/>
\r
162 <element ref="conf:ArtifactMap" minOccurs="0"/>
163 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
165 <attribute name="logger" type="anyURI"/>
166 <anyAttribute namespace="##other" processContents="lax"/>
\r
170 <element name="InProcess">
\r
173 Container for configuration of locally integrated or platform-specific
\r
174 features (e.g. web server filters)
\r
179 <element ref="conf:Extensions" minOccurs="0"/>
180 <element name="RequestMapper" type="conf:PluggableType"/>
181 <element name="Implementation" minOccurs="0">
184 <element ref="conf:ISAPI" minOccurs="0"/>
185 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
189 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
191 <attribute name="logger" type="anyURI"/>
192 <attribute name="localRelayState" type="boolean" default="false"/>
193 <anyAttribute namespace="##other" processContents="lax"/>
\r
197 <element name="ISAPI">
\r
200 <element name="Site" maxOccurs="unbounded">
\r
203 <element name="Alias" type="string" minOccurs="0" maxOccurs="unbounded"/>
\r
205 <attribute name="id" type="unsignedInt" use="required"/>
\r
206 <attribute name="name" type="conf:string" use="required"/>
\r
207 <attribute name="port" type="unsignedInt"/>
\r
208 <attribute name="sslport" type="unsignedInt"/>
\r
209 <attribute name="scheme" type="conf:string"/>
\r
212 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
214 <attribute name="normalizeRequest" type="boolean" default="true"/>
\r
215 <anyAttribute namespace="##other" processContents="lax"/>
\r
219 <element name="AccessControl" type="conf:UniOperatorType">
\r
222 A simple example access policy language extension that supersedes Apache .htaccess
\r
226 <element name="OR" type="conf:MultiOperatorType"/>
\r
227 <element name="AND" type="conf:MultiOperatorType"/>
\r
228 <element name="NOT" type="conf:UniOperatorType"/>
\r
229 <complexType name="UniOperatorType">
\r
231 <element ref="conf:AND"/>
\r
232 <element ref="conf:OR"/>
\r
233 <element ref="conf:NOT"/>
\r
234 <element ref="conf:Rule"/>
\r
237 <complexType name="MultiOperatorType">
\r
238 <choice minOccurs="2" maxOccurs="unbounded">
\r
239 <element ref="conf:AND"/>
\r
240 <element ref="conf:OR"/>
\r
241 <element ref="conf:NOT"/>
\r
242 <element ref="conf:Rule"/>
\r
245 <element name="Rule">
\r
248 <extension base="conf:listOfStrings">
\r
249 <attribute name="require" type="conf:string" use="required"/>
\r
255 <attributeGroup name="ContentSettings">
\r
256 <attribute name="authType" type="conf:string"/>
\r
257 <attribute name="requireSession" type="boolean"/>
\r
258 <attribute name="requireSessionWith" type="conf:string"/>
\r
259 <attribute name="exportAssertion" type="boolean"/>
\r
260 <attribute name="redirectToSSL" type="unsignedInt"/>
\r
261 <anyAttribute namespace="##other" processContents="lax"/>
\r
263 <element name="AccessControlProvider" type="conf:PluggableType"/>
\r
264 <element name="htaccess" type="conf:PluggableType"/>
\r
266 <element name="RequestMap">
\r
269 Built-in request mapping syntax, decomposes URLs into Host/Path/Path/...
\r
274 <choice minOccurs="0">
\r
275 <element ref="conf:htaccess"/>
\r
276 <element ref="conf:AccessControl"/>
\r
277 <element ref="conf:AccessControlProvider"/>
\r
279 <element ref="conf:Host" minOccurs="0" maxOccurs="unbounded"/>
\r
281 <attribute name="applicationId" type="conf:string" fixed="default"/>
\r
282 <attributeGroup ref="conf:ContentSettings"/>
\r
286 <element name="Host">
\r
289 <choice minOccurs="0">
\r
290 <element ref="conf:htaccess"/>
\r
291 <element ref="conf:AccessControl"/>
\r
292 <element ref="conf:AccessControlProvider"/>
\r
294 <element ref="conf:Path" minOccurs="0" maxOccurs="unbounded"/>
\r
296 <attribute name="scheme">
\r
298 <restriction base="conf:string">
\r
299 <enumeration value="http"/>
\r
300 <enumeration value="https"/>
\r
301 <enumeration value="ftp"/>
\r
302 <enumeration value="ldap"/>
\r
303 <enumeration value="ldaps"/>
\r
307 <attribute name="name" type="conf:string" use="required"/>
\r
308 <attribute name="port" type="unsignedInt"/>
\r
309 <attribute name="applicationId" type="conf:string"/>
\r
310 <attributeGroup ref="conf:ContentSettings"/>
\r
314 <element name="Path">
\r
317 <choice minOccurs="0">
\r
318 <element ref="conf:htaccess"/>
\r
319 <element ref="conf:AccessControl"/>
\r
320 <element ref="conf:AccessControlProvider"/>
\r
322 <element ref="conf:Path" minOccurs="0" maxOccurs="unbounded"/>
\r
324 <attribute name="name" type="conf:string" use="required"/>
\r
325 <attribute name="applicationId" type="conf:string"/>
\r
326 <attributeGroup ref="conf:ContentSettings"/>
\r
330 <element name="Applications">
\r
332 <documentation>Container for global settings and application-specific overrides</documentation>
\r
336 <element ref="conf:Sessions"/>
\r
337 <element ref="conf:Errors"/>
\r
338 <element ref="conf:CredentialUse" minOccurs="0"/>
\r
339 <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
340 <element name="MetadataProvider" type="conf:PluggableType"/>
341 <element name="TrustEngine" type="conf:PluggableType"/>
\r
342 <element name="AttributeResolver" type="conf:PluggableType"/>
\r
343 <element ref="conf:Application" minOccurs="0" maxOccurs="unbounded"/>
\r
345 <attribute name="id" type="conf:string" fixed="default"/>
\r
346 <attribute name="providerId" type="anyURI" use="required"/>
\r
347 <attribute name="policyId" type="conf:string" use="required"/>
\r
348 <attribute name="homeURL" type="anyURI"/>
\r
349 <anyAttribute namespace="##other" processContents="lax"/>
\r
353 <element name="Application">
\r
355 <documentation>Container for application-specific overrides</documentation>
\r
359 <element ref="conf:Sessions" minOccurs="0"/>
\r
360 <element ref="conf:Errors" minOccurs="0"/>
\r
361 <element ref="conf:CredentialUse" minOccurs="0"/>
\r
362 <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
\r
363 <element name="MetadataProvider" type="conf:PluggableType" minOccurs="0"/>
\r
364 <element name="TrustEngine" type="conf:PluggableType" minOccurs="0"/>
\r
365 <element name="AttributeResolver" type="conf:PluggableType" minOccurs="0"/>
\r
367 <attribute name="id" type="conf:string" use="required"/>
\r
368 <attribute name="providerId" type="anyURI"/>
\r
369 <attribute name="policyId" type="conf:string"/>
\r
370 <attribute name="homeURL" type="anyURI"/>
\r
371 <anyAttribute namespace="##other" processContents="lax"/>
\r
375 <element name="Sessions">
\r
377 <documentation>Container for specifying protocol handlers and session policy</documentation>
\r
380 <choice maxOccurs="unbounded">
\r
381 <element ref="conf:SessionInitiator"/>
\r
382 <element ref="md:AssertionConsumerService"/>
\r
383 <element ref="md:SingleLogoutService"/>
\r
384 <element ref="md:ManageNameIDService"/>
\r
385 <element name="Handler">
388 <restriction base="conf:PluggableType">
\r
390 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
392 <attribute name="Location" type="anyURI" use="required"/>
\r
398 <attribute name="handlerURL" type="anyURI"/>
\r
399 <attribute name="handlerSSL" type="boolean" default="true"/>
\r
400 <attribute name="cookieName" type="conf:string"/>
\r
401 <attribute name="cookieProps" type="conf:string"/>
\r
402 <attribute name="idpHistory" type="boolean" default="true"/>
\r
403 <attribute name="idpHistoryDays" type="unsignedInt"/>
\r
404 <attribute name="lifetime" type="unsignedInt" default="28800"/>
\r
405 <attribute name="timeout" type="unsignedInt" default="3600"/>
\r
406 <attribute name="checkAddress" type="boolean" default="true"/>
\r
407 <attribute name="consistentAddress" type="boolean" default="true"/>
\r
408 <anyAttribute namespace="##other" processContents="lax"/>
\r
411 <element name="SessionInitiator">
\r
413 <documentation>Used to specify handlers that can issue AuthnRequests</documentation>
\r
417 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
419 <attribute name="Location" type="anyURI" use="required"/>
\r
420 <attribute name="Binding" type="anyURI" use="required"/>
\r
421 <attribute name="wayfURL" type="anyURI"/>
\r
422 <attribute name="wayfBinding" type="anyURI"/>
\r
423 <attribute name="isDefault" type="boolean"/>
\r
424 <attribute name="id" type="conf:string"/>
\r
425 <anyAttribute namespace="##any" processContents="lax"/>
\r
429 <element name="Errors">
\r
431 <documentation>Container for error templates and associated details</documentation>
\r
435 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
437 <attribute name="session" type="anyURI" use="required"/>
\r
438 <attribute name="metadata" type="anyURI"/>
\r
439 <attribute name="rm" type="anyURI"/>
\r
440 <attribute name="access" type="anyURI"/>
\r
441 <attribute name="ssl" type="anyURI"/>
\r
442 <attribute name="supportContact" type="conf:string"/>
\r
443 <attribute name="logoLocation" type="anyURI"/>
\r
444 <attribute name="styleSheet" type="anyURI"/>
\r
445 <anyAttribute namespace="##any" processContents="lax"/>
\r
449 <attributeGroup name="CredentialUseGroup">
\r
450 <attribute name="TLS" type="conf:string"/>
\r
451 <attribute name="Signing" type="conf:string"/>
\r
452 <attribute name="signRequests" type="boolean" default="false"/>
\r
453 <attribute name="signatureAlg" type="anyURI"/>
\r
454 <attribute name="authType">
\r
456 <restriction base="conf:string">
\r
457 <enumeration value="basic"/>
\r
458 <enumeration value="digest"/>
\r
459 <enumeration value="ntlm"/>
\r
460 <enumeration value="gss"/>
\r
464 <attribute name="authUsername"/>
\r
465 <attribute name="authPassword"/>
\r
468 <element name="CredentialUse">
\r
470 <documentation>Container for specifying security methods to use with particular peers</documentation>
\r
474 <element name="RelyingParty" minOccurs="0" maxOccurs="unbounded">
\r
477 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
479 <attribute name="Name" type="conf:string" use="required"/>
\r
480 <attributeGroup ref="conf:CredentialUseGroup"/>
\r
481 <anyAttribute namespace="##other" processContents="lax"/>
\r
484 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
486 <attributeGroup ref="conf:CredentialUseGroup"/>
\r
487 <anyAttribute namespace="##other" processContents="lax"/>
\r
491 <element name="Credentials">
493 <documentation>Container for specifying sources of credentials</documentation>
\r
497 <element name="CredentialResolver" minOccurs="1" maxOccurs="unbounded">
499 <documentation>References CredentialResolver plugins</documentation>
\r
503 <restriction base="conf:PluggableType">
505 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
507 <attribute name="id" type="conf:string" use="required"/>
\r
508 <anyAttribute namespace="##any" processContents="lax"/>
517 <element name="SecurityPolicies">
519 <documentation>Container for specifying sets of policy rules to apply to incoming messages</documentation>
\r
523 <element name="Policy" minOccurs="1" maxOccurs="unbounded">
\r
525 <documentation>Specifies a set of SecurityPolicyRule plugins</documentation>
\r
529 <element name="Rule" type="conf:PluggableType" minOccurs="1" maxOccurs="unbounded"/>
531 <attribute name="id" type="conf:string" use="required"/>
\r
532 <attribute name="validate" type="boolean" default="false"/>
\r
533 <attribute name="signedAssertions" type="boolean" default="false"/>
\r
534 <attribute name="requireConfidentiality" type="boolean" default="true"/>
\r
535 <attribute name="requireTransportAuth" type="boolean" default="true"/>
\r
536 <attribute name="chunkedEncoding" type="boolean" default="true"/>
\r
537 <attribute name="connectTimeout" type="unsignedShort" default="15"/>
\r
538 <attribute name="timeout" type="unsignedShort" default="30"/>
\r
539 <anyAttribute namespace="##any" processContents="lax"/>
\r