eb692049ced81a4e00355f2cd78e6feeeca72393
[shibboleth/cpp-sp.git] / configs / shibboleth2.xml
1 <SPConfig xmlns="urn:mace:shibboleth:2.0:native:sp:config"\r
2     xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config"\r
3     xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"\r
4     xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"    \r
5     xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"\r
6     clockSkew="180">\r
7 \r
8     <!--\r
9     By default, in-memory StorageService, ReplayCache, ArtifactMap, and SessionCache\r
10     are used. See example-shibboleth2.xml for samples of explicitly configuring them.\r
11     -->\r
12 \r
13     <!--\r
14     To customize behavior for specific resources on Apache, and to link vhosts or\r
15     resources to ApplicationOverride settings below, use web server options/commands.\r
16     See https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPConfigurationElements for help.\r
17     \r
18     For examples with the RequestMap XML syntax instead, see the example-shibboleth2.xml\r
19     file, and the https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPRequestMapHowTo topic.\r
20     -->\r
21 \r
22     <!-- The ApplicationDefaults element is where most of Shibboleth's SAML bits are defined. -->\r
23     <ApplicationDefaults entityID="https://sp.example.org/shibboleth"\r
24                          REMOTE_USER="eppn persistent-id targeted-id">\r
25 \r
26         <!--\r
27         Controls session lifetimes, address checks, cookie handling, and the protocol handlers.\r
28         You MUST supply an effectively unique handlerURL value for each of your applications.\r
29         The value defaults to /Shibboleth.sso, and should be a relative path, with the SP computing\r
30         a relative value based on the virtual host. Using handlerSSL="true", the default, will force\r
31         the protocol to be https. You should also set cookieProps to "https" for SSL-only sites.\r
32         Note that while we default checkAddress to "false", this has a negative impact on the\r
33         security of your site. Stealing sessions via cookie theft is much easier with this disabled.\r
34         -->\r
35         <Sessions lifetime="28800" timeout="3600" relayState="ss:mem"\r
36                   checkAddress="false" handlerSSL="false" cookieProps="http">\r
37 \r
38             <!--\r
39             Configures SSO for a default IdP. To allow for >1 IdP, remove\r
40             entityID property and adjust discoveryURL to point to discovery service.\r
41             (Set discoveryProtocol to "WAYF" for legacy Shibboleth WAYF support.)\r
42             You can also override entityID on /Login query string, or in RequestMap/htaccess.\r
43             -->\r
44             <SSO entityID="https://idp.example.org/idp/shibboleth"\r
45                  discoveryProtocol="SAMLDS" discoveryURL="https://ds.example.org/DS/WAYF">\r
46               SAML2 SAML1\r
47             </SSO>\r
48 \r
49             <!-- SAML and local-only logout. -->\r
50             <Logout>SAML2 Local</Logout>\r
51             \r
52             <!-- Extension service that generates "approximate" metadata based on SP configuration. -->\r
53             <Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>\r
54 \r
55             <!-- Status reporting service. -->\r
56             <Handler type="Status" Location="/Status" acl="127.0.0.1 ::1"/>\r
57 \r
58             <!-- Session diagnostic service. -->\r
59             <Handler type="Session" Location="/Session" showAttributeValues="false"/>\r
60 \r
61             <!-- JSON feed of discovery information. -->\r
62             <Handler type="DiscoveryFeed" Location="/DiscoFeed"/>\r
63         </Sessions>\r
64 \r
65         <!--\r
66         Allows overriding of error template information/filenames. You can\r
67         also add attributes with values that can be plugged into the templates.\r
68         -->\r
69         <Errors supportContact="root@localhost"\r
70             helpLocation="/about.html"\r
71             styleSheet="/shibboleth-sp/main.css"/>\r
72         \r
73         <!-- Example of remotely supplied batch of signed metadata. -->\r
74         <!--\r
75         <MetadataProvider type="XML" validate="true"\r
76               uri="http://example.org/federation-metadata.xml"\r
77               backingFilePath="federation-metadata.xml" reloadInterval="7200">\r
78             <MetadataFilter type="RequireValidUntil" maxValidityInterval="2419200"/>\r
79             <MetadataFilter type="Signature" certificate="fedsigner.pem"/>\r
80             <DiscoveryFilter type="Blacklist" matcher="EntityAttributes" trimTags="true" \r
81               attributeName="http://macedir.org/entity-category"\r
82               attributeNameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"\r
83               attributeValue="http://refeds.org/category/hide-from-discovery" />\r
84         </MetadataProvider>\r
85         -->\r
86 \r
87         <!-- Example of locally maintained metadata. -->\r
88         <!--\r
89         <MetadataProvider type="XML" validate="true" file="partner-metadata.xml"/>\r
90         -->\r
91 \r
92         <!-- Map to extract attributes from SAML assertions. -->\r
93         <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/>\r
94         \r
95         <!-- Use a SAML query if no attributes are supplied during SSO. -->\r
96         <AttributeResolver type="Query" subjectMatch="true"/>\r
97 \r
98         <!-- Default filtering policy for recognized attributes, lets other data pass. -->\r
99         <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>\r
100 \r
101         <!-- Simple file-based resolver for using a single keypair. -->\r
102         <CredentialResolver type="File" key="sp-key.pem" certificate="sp-cert.pem"/>\r
103 \r
104         <!--\r
105         The default settings can be overridden by creating ApplicationOverride elements (see\r
106         the https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApplicationOverride topic).\r
107         Resource requests are mapped by web server commands, or the RequestMapper, to an\r
108         applicationId setting.\r
109         \r
110         Example of a second application (for a second vhost) that has a different entityID.\r
111         Resources on the vhost would map to an applicationId of "admin":\r
112         -->\r
113         <!--\r
114         <ApplicationOverride id="admin" entityID="https://admin.example.org/shibboleth"/>\r
115         -->\r
116     </ApplicationDefaults>\r
117     \r
118     <!-- Policies that determine how to process and authenticate runtime messages. -->\r
119     <SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/>\r
120 \r
121     <!-- Low-level configuration about protocols and bindings available for use. -->\r
122     <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>\r
123 \r
124 </SPConfig>\r