1 <?xml version="1.0" encoding="US-ASCII"?>
\r
2 <schema targetNamespace="urn:mace:shibboleth:2.0:native:sp:config"
\r
3 xmlns="http://www.w3.org/2001/XMLSchema"
\r
4 xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config"
\r
5 xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
\r
6 xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
\r
7 xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
\r
8 elementFormDefault="qualified"
\r
9 attributeFormDefault="unqualified"
\r
10 blockDefault="substitution"
\r
13 <import namespace="urn:oasis:names:tc:SAML:2.0:assertion" schemaLocation="saml-schema-assertion-2.0.xsd"/>
\r
14 <import namespace="urn:oasis:names:tc:SAML:2.0:protocol" schemaLocation="saml-schema-protocol-2.0.xsd"/>
\r
15 <import namespace="urn:oasis:names:tc:SAML:2.0:metadata" schemaLocation="saml-schema-metadata-2.0.xsd"/>
\r
19 2.0 schema for XML-based configuration of Shibboleth Native SP instances.
\r
20 First appearing in Shibboleth 2.0 release.
\r
24 <simpleType name="string">
\r
25 <restriction base="string">
\r
26 <minLength value="1"/>
\r
30 <simpleType name="listOfStrings">
\r
31 <list itemType="conf:string"/>
\r
34 <simpleType name="listOfURIs">
\r
35 <list itemType="anyURI"/>
\r
38 <simpleType name="bindingBoolean">
\r
39 <restriction base="string">
\r
40 <enumeration value="true"/>
\r
41 <enumeration value="false"/>
\r
42 <enumeration value="front"/>
\r
43 <enumeration value="back"/>
\r
47 <complexType name="PluggableType">
\r
49 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
51 <attribute name="type" type="conf:string" use="required"/>
\r
52 <anyAttribute namespace="##any" processContents="lax"/>
\r
55 <element name="SPConfig">
\r
58 <documentation>Root of configuration</documentation>
\r
61 <element ref="conf:Extensions" minOccurs="0"/>
\r
62 <element ref="conf:OutOfProcess"/>
\r
63 <element ref="conf:InProcess"/>
\r
64 <element ref="conf:Applications"/>
\r
65 <element ref="conf:SecurityPolicies"/>
\r
67 <attribute name="logger" type="anyURI"/>
\r
68 <attribute name="clockSkew" type="unsignedInt"/>
\r
69 <anyAttribute namespace="##other" processContents="lax"/>
\r
73 <element name="Extensions">
\r
75 <documentation>Container for extension libraries and custom configuration</documentation>
\r
79 <element name="Library" minOccurs="0" maxOccurs="unbounded">
\r
82 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
84 <attribute name="path" type="anyURI" use="required"/>
\r
85 <attribute name="fatal" type="boolean" default="true"/>
\r
86 <anyAttribute namespace="##any" processContents="lax"/>
\r
89 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
94 <element name="StorageService">
\r
96 <documentation>References StorageService plugins</documentation>
\r
100 <restriction base="conf:PluggableType">
\r
102 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
104 <attribute name="id" type="ID" use="required"/>
\r
105 <attribute name="cleanupInterval" type="unsignedInt" default="900"/>
\r
106 <anyAttribute namespace="##any" processContents="lax"/>
\r
112 <element name="SessionCache">
\r
114 <documentation>References SessionCache plugins</documentation>
\r
118 <restriction base="conf:PluggableType">
\r
120 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
122 <attribute name="StorageService" type="IDREF"/>
\r
123 <attribute name="cacheTimeout" type="unsignedInt" default="28800"/>
\r
124 <anyAttribute namespace="##any" processContents="lax"/>
\r
130 <element name="ReplayCache">
\r
132 <documentation>Ties ReplayCache to a custom StorageService</documentation>
\r
136 <attribute name="StorageService" type="IDREF" use="required"/>
\r
140 <element name="ArtifactMap">
\r
142 <documentation>Customizes an ArtifactMap</documentation>
\r
146 <attribute name="StorageService" type="IDREF"/>
\r
147 <attribute name="context" type="conf:string"/>
\r
148 <attribute name="artifactTTL" type="unsignedInt" default="180"/>
\r
152 <element name="OutOfProcess">
\r
154 <documentation>Container for shibd out-of-process configuration</documentation>
\r
158 <element ref="conf:Extensions" minOccurs="0"/>
\r
160 <element name="UnixListener">
\r
162 <attribute name="address" type="conf:string" use="required"/>
\r
165 <element name="TCPListener">
\r
167 <attribute name="address" type="conf:string" use="required"/>
\r
168 <attribute name="port" type="unsignedInt" use="required"/>
\r
169 <attribute name="acl" type="conf:listOfStrings" default="127.0.0.1"/>
\r
172 <element name="Listener" type="conf:PluggableType"/>
\r
174 <element ref="conf:StorageService" minOccurs="0" maxOccurs="unbounded"/>
\r
175 <element ref="conf:SessionCache" minOccurs="0"/>
\r
176 <element ref="conf:ReplayCache" minOccurs="0"/>
\r
177 <element ref="conf:ArtifactMap" minOccurs="0"/>
\r
178 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
180 <attribute name="logger" type="anyURI"/>
\r
181 <anyAttribute namespace="##other" processContents="lax"/>
\r
185 <element name="InProcess">
\r
188 Container for configuration of locally integrated or platform-specific
\r
189 features (e.g. web server filters)
\r
194 <element ref="conf:Extensions" minOccurs="0"/>
\r
195 <element ref="conf:SessionCache" minOccurs="0"/>
\r
196 <element name="RequestMapper" type="conf:PluggableType"/>
\r
197 <element name="Implementation" minOccurs="0">
\r
200 <element ref="conf:ISAPI" minOccurs="0"/>
\r
201 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
205 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
207 <attribute name="logger" type="anyURI"/>
\r
208 <attribute name="unsetHeaderValue" type="string"/>
\r
209 <attribute name="checkSpoofing" type="boolean"/>
\r
210 <anyAttribute namespace="##other" processContents="lax"/>
\r
214 <element name="ISAPI">
\r
217 <element name="Site" maxOccurs="unbounded">
\r
220 <element name="Alias" type="string" minOccurs="0" maxOccurs="unbounded"/>
\r
222 <attribute name="id" type="unsignedInt" use="required"/>
\r
223 <attribute name="name" type="conf:string" use="required"/>
\r
224 <attribute name="port" type="unsignedInt"/>
\r
225 <attribute name="sslport" type="unsignedInt"/>
\r
226 <attribute name="scheme" type="conf:string"/>
\r
229 <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
231 <attribute name="normalizeRequest" type="boolean" default="true"/>
\r
232 <anyAttribute namespace="##other" processContents="lax"/>
\r
236 <element name="AccessControl" type="conf:UniOperatorType">
\r
239 A simple example access policy language extension that supersedes Apache .htaccess
\r
243 <element name="OR" type="conf:MultiOperatorType"/>
\r
244 <element name="AND" type="conf:MultiOperatorType"/>
\r
245 <element name="NOT" type="conf:UniOperatorType"/>
\r
246 <complexType name="UniOperatorType">
\r
248 <element ref="conf:AND"/>
\r
249 <element ref="conf:OR"/>
\r
250 <element ref="conf:NOT"/>
\r
251 <element ref="conf:Rule"/>
\r
254 <complexType name="MultiOperatorType">
\r
255 <choice minOccurs="2" maxOccurs="unbounded">
\r
256 <element ref="conf:AND"/>
\r
257 <element ref="conf:OR"/>
\r
258 <element ref="conf:NOT"/>
\r
259 <element ref="conf:Rule"/>
\r
262 <element name="Rule">
\r
265 <extension base="conf:listOfStrings">
\r
266 <attribute name="require" type="conf:string" use="required"/>
\r
272 <attributeGroup name="ContentSettings">
\r
273 <attribute name="authType" type="conf:string"/>
\r
274 <attribute name="requireSession" type="boolean"/>
\r
275 <attribute name="requireSessionWith" type="conf:string"/>
\r
276 <attribute name="exportAssertion" type="boolean"/>
\r
277 <attribute name="redirectToSSL" type="unsignedInt"/>
\r
278 <attribute name="isPassive" type="boolean"/>
\r
279 <attribute name="forceAuthn" type="boolean"/>
\r
280 <attribute name="authnContextClassRef" type="anyURI"/>
\r
281 <attribute name="authnContextComparison" type="samlp:AuthnContextComparisonType"/>
\r
282 <anyAttribute namespace="##other" processContents="lax"/>
\r
284 <element name="AccessControlProvider" type="conf:PluggableType"/>
\r
285 <element name="htaccess" type="conf:PluggableType"/>
\r
287 <element name="RequestMap">
\r
290 Built-in request mapping syntax, decomposes URLs into Host/Path/Path/...
\r
295 <choice minOccurs="0">
\r
296 <element ref="conf:htaccess"/>
\r
297 <element ref="conf:AccessControl"/>
\r
298 <element ref="conf:AccessControlProvider"/>
\r
300 <element ref="conf:Host" minOccurs="0" maxOccurs="unbounded"/>
\r
302 <attribute name="applicationId" type="conf:string" fixed="default"/>
\r
303 <attributeGroup ref="conf:ContentSettings"/>
\r
307 <element name="Host">
\r
310 <choice minOccurs="0">
\r
311 <element ref="conf:htaccess"/>
\r
312 <element ref="conf:AccessControl"/>
\r
313 <element ref="conf:AccessControlProvider"/>
\r
315 <element ref="conf:Path" minOccurs="0" maxOccurs="unbounded"/>
\r
317 <attribute name="scheme">
\r
319 <restriction base="conf:string">
\r
320 <enumeration value="http"/>
\r
321 <enumeration value="https"/>
\r
322 <enumeration value="ftp"/>
\r
323 <enumeration value="ldap"/>
\r
324 <enumeration value="ldaps"/>
\r
328 <attribute name="name" type="conf:string" use="required"/>
\r
329 <attribute name="port" type="unsignedInt"/>
\r
330 <attribute name="applicationId" type="conf:string"/>
\r
331 <attributeGroup ref="conf:ContentSettings"/>
\r
335 <element name="Path">
\r
338 <choice minOccurs="0">
\r
339 <element ref="conf:htaccess"/>
\r
340 <element ref="conf:AccessControl"/>
\r
341 <element ref="conf:AccessControlProvider"/>
\r
343 <element ref="conf:Path" minOccurs="0" maxOccurs="unbounded"/>
\r
345 <attribute name="name" type="conf:string" use="required"/>
\r
346 <attribute name="applicationId" type="conf:string"/>
\r
347 <attributeGroup ref="conf:ContentSettings"/>
\r
351 <element name="Applications">
\r
353 <documentation>Container for global settings and application-specific overrides</documentation>
\r
357 <element ref="conf:Sessions"/>
\r
358 <element ref="conf:Errors" minOccurs="0"/>
\r
359 <element ref="conf:DefaultRelyingParty"/>
\r
360 <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
\r
361 <element name="MetadataProvider" type="conf:PluggableType"/>
\r
362 <element name="TrustEngine" type="conf:PluggableType"/>
\r
363 <element name="AttributeExtractor" type="conf:PluggableType" minOccurs="0"/>
\r
364 <element name="AttributeResolver" type="conf:PluggableType" minOccurs="0"/>
\r
365 <element name="AttributeFilter" type="conf:PluggableType" minOccurs="0"/>
\r
366 <element name="CredentialResolver" type="conf:PluggableType" minOccurs="0"/>
\r
367 <element ref="conf:Application" minOccurs="0" maxOccurs="unbounded"/>
\r
369 <attribute name="id" type="conf:string" fixed="default"/>
\r
370 <attribute name="entityID" type="anyURI" use="required"/>
\r
371 <attribute name="policyId" type="conf:string" use="required"/>
\r
372 <attributeGroup ref="conf:ApplicationGroup"/>
\r
373 <anyAttribute namespace="##other" processContents="lax"/>
\r
377 <element name="Application">
\r
379 <documentation>Container for application-specific overrides</documentation>
\r
383 <element ref="conf:Sessions" minOccurs="0"/>
\r
384 <element ref="conf:Errors" minOccurs="0"/>
\r
385 <element ref="conf:DefaultRelyingParty" minOccurs="0"/>
\r
386 <element ref="conf:NotifyOnLogout" minOccurs="0" maxOccurs="unbounded"/>
\r
387 <element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
\r
388 <element name="MetadataProvider" type="conf:PluggableType" minOccurs="0"/>
\r
389 <element name="TrustEngine" type="conf:PluggableType" minOccurs="0"/>
\r
390 <element name="AttributeExtractor" type="conf:PluggableType" minOccurs="0"/>
\r
391 <element name="AttributeResolver" type="conf:PluggableType" minOccurs="0"/>
\r
392 <element name="AttributeFilter" type="conf:PluggableType" minOccurs="0"/>
\r
393 <element name="CredentialResolver" type="conf:PluggableType" minOccurs="0"/>
\r
395 <attribute name="id" type="conf:string" use="required"/>
\r
396 <attribute name="entityID" type="anyURI"/>
\r
397 <attribute name="policyId" type="conf:string"/>
\r
398 <attributeGroup ref="conf:ApplicationGroup"/>
\r
399 <anyAttribute namespace="##other" processContents="lax"/>
\r
403 <attributeGroup name="ApplicationGroup">
\r
404 <attribute name="homeURL" type="anyURI" default="/"/>
\r
405 <attribute name="REMOTE_USER" type="conf:listOfStrings"/>
\r
406 <attribute name="unsetHeaders" type="conf:listOfStrings"/>
\r
407 <attribute name="redirectErrors" type="anyURI"/>
\r
408 <attribute name="localLogout" type="anyURI"/>
\r
409 <attribute name="globalLogout" type="anyURI"/>
\r
412 <element name="Sessions">
\r
414 <documentation>Container for specifying protocol handlers and session policy</documentation>
\r
417 <choice minOccurs="0" maxOccurs="unbounded">
\r
418 <element ref="conf:SessionInitiator"/>
\r
419 <element ref="conf:LogoutInitiator"/>
\r
420 <element ref="md:AssertionConsumerService"/>
\r
421 <element ref="md:ArtifactResolutionService"/>
\r
422 <element ref="md:SingleLogoutService"/>
\r
423 <element ref="md:ManageNameIDService"/>
\r
424 <element name="Handler">
\r
427 <restriction base="conf:PluggableType">
\r
429 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
431 <attribute name="Location" type="anyURI" use="required"/>
\r
437 <attribute name="handlerURL" type="anyURI"/>
\r
438 <attribute name="handlerSSL" type="boolean" default="true"/>
\r
439 <attribute name="exportLocation" type="conf:string"/>
\r
440 <attribute name="exportACL" type="conf:listOfStrings" default="127.0.0.1"/>
\r
441 <attribute name="cookieName" type="conf:string"/>
\r
442 <attribute name="cookieProps" type="conf:string"/>
\r
443 <attribute name="idpHistory" type="boolean" default="true"/>
\r
444 <attribute name="idpHistoryDays" type="unsignedInt"/>
\r
445 <attribute name="lifetime" type="unsignedInt" default="28800"/>
\r
446 <attribute name="timeout" type="unsignedInt" default="3600"/>
\r
447 <attribute name="checkAddress" type="boolean" default="true"/>
\r
448 <attribute name="consistentAddress" type="boolean" default="true"/>
\r
449 <anyAttribute namespace="##other" processContents="lax"/>
\r
453 <attribute name="policyId" type="conf:string">
\r
455 <documentation>Used to reference Policy elements from profile endpoints.</documentation>
\r
459 <element name="SessionInitiator">
\r
461 <documentation>Used to specify handlers that can issue AuthnRequests or perform discovery</documentation>
\r
465 <restriction base="conf:PluggableType">
\r
467 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
469 <attribute name="Location" type="anyURI"/>
\r
470 <attribute name="id" type="conf:string"/>
\r
471 <attribute name="isDefault" type="boolean"/>
\r
472 <attribute name="relayState" type="conf:string"/>
\r
473 <attribute name="entityIDParam" type="conf:string"/>
\r
474 <attribute name="entityID" type="anyURI"/>
\r
475 <attribute name="URL" type="anyURI"/>
\r
476 <attribute name="outgoingBindings" type="conf:listOfURIs"/>
\r
477 <attribute name="template" type="anyURI"/>
\r
478 <attribute name="postArtifact" type="boolean"/>
\r
479 <attribute name="acsByIndex" type="boolean"/>
\r
480 <attribute name="defaultACSIndex" type="unsignedShort"/>
\r
481 <anyAttribute namespace="##any" processContents="lax"/>
\r
487 <element name="LogoutInitiator">
\r
489 <documentation>Used to specify handlers that can issue LogoutRequests</documentation>
\r
493 <restriction base="conf:PluggableType">
\r
495 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
497 <attribute name="Location" type="anyURI"/>
\r
498 <attribute name="outgoingBindings" type="conf:listOfURIs"/>
\r
499 <attribute name="template" type="anyURI"/>
\r
500 <attribute name="postArtifact" type="boolean"/>
\r
501 <anyAttribute namespace="##any" processContents="lax"/>
\r
507 <element name="Errors">
\r
509 <documentation>Container for error templates and associated details</documentation>
\r
513 <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
\r
515 <attribute name="session" type="anyURI" use="required"/>
\r
516 <attribute name="metadata" type="anyURI"/>
\r
517 <attribute name="rm" type="anyURI"/>
\r
518 <attribute name="access" type="anyURI"/>
\r
519 <attribute name="ssl" type="anyURI"/>
\r
520 <attribute name="supportContact" type="conf:string"/>
\r
521 <attribute name="logoLocation" type="anyURI"/>
\r
522 <attribute name="styleSheet" type="anyURI"/>
\r
523 <anyAttribute namespace="##any" processContents="lax"/>
\r
527 <element name="Notify">
\r
529 <documentation>Used to specify locations to receive application notifications</documentation>
\r
533 <attribute name="Channel" use="required">
\r
535 <restriction base="string">
\r
536 <enumeration value="front"/>
\r
537 <enumeration value="back"/>
\r
541 <attribute name="Location" type="anyURI" use="required"/>
\r
542 <anyAttribute namespace="##any" processContents="lax"/>
\r
546 <element name="DefaultRelyingParty">
\r
548 <documentation>Container for specifying security methods to use with particular peers</documentation>
\r
552 <element name="RelyingParty" minOccurs="0" maxOccurs="unbounded">
\r
555 <attribute name="Name" type="conf:string" use="required"/>
\r
556 <attributeGroup ref="conf:RelyingPartyGroup"/>
\r
557 <anyAttribute namespace="##other" processContents="lax"/>
\r
561 <attributeGroup ref="conf:RelyingPartyGroup"/>
\r
562 <anyAttribute namespace="##other" processContents="lax"/>
\r
566 <attributeGroup name="RelyingPartyGroup">
\r
567 <attribute name="authType" type="conf:string"/>
\r
568 <attribute name="authUsername" type="conf:string"/>
\r
569 <attribute name="authPassword" type="conf:string"/>
\r
570 <attribute name="signRequests" type="conf:bindingBoolean"/>
\r
571 <attribute name="signResponses" type="conf:bindingBoolean"/>
\r
572 <attribute name="signatureAlg" type="anyURI"/>
\r
573 <attribute name="digestAlg" type="anyURI"/>
\r
574 <attribute name="encryptRequests" type="conf:bindingBoolean"/>
\r
575 <attribute name="encryptResponses" type="conf:bindingBoolean"/>
\r
576 <attribute name="encryptionAlg" type="anyURI"/>
\r
577 <attribute name="keyName" type="conf:string"/>
\r
578 <attribute name="artifactEndpointIndex" type="unsignedShort"/>
\r
581 <element name="SecurityPolicies">
\r
583 <documentation>Container for specifying sets of policy rules to apply to incoming messages</documentation>
\r
587 <element name="Policy" minOccurs="1" maxOccurs="unbounded">
\r
589 <documentation>Specifies a set of SecurityPolicyRule plugins</documentation>
\r
593 <element name="Rule" type="conf:PluggableType" minOccurs="1" maxOccurs="unbounded"/>
\r
595 <attribute name="id" type="conf:string" use="required"/>
\r
596 <attribute name="validate" type="boolean" default="false"/>
\r
597 <attribute name="signedAssertions" type="boolean" default="false"/>
\r
598 <attribute name="requireConfidentiality" type="boolean" default="true"/>
\r
599 <attribute name="requireTransportAuth" type="boolean" default="true"/>
\r
600 <attribute name="chunkedEncoding" type="boolean" default="true"/>
\r
601 <attribute name="connectTimeout" type="unsignedShort" default="15"/>
\r
602 <attribute name="timeout" type="unsignedShort" default="30"/>
\r
603 <anyAttribute namespace="##any" processContents="lax"/>
\r