Merge session cache implementations.
[shibboleth/sp.git] / configs / shibboleth2.xml.in
index 18a6ba3..85e2a92 100644 (file)
@@ -7,85 +7,78 @@
        xsi:schemaLocation="urn:mace:shibboleth:2.0:native:sp:config @-PKGXMLDIR-@/shibboleth-2.0-native-sp-config.xsd"
        logger="@-PKGSYSCONFDIR-@/syslog.logger" clockSkew="180">
 
-       <!-- The OutOfProcess section pertains to components that run in the shibd daemon. -->
+       <!-- The OutOfProcess section contains properties affecting the shibd daemon. -->
        <OutOfProcess logger="@-PKGSYSCONFDIR-@/shibd.logger">
-               
                <!--
                <Extensions>
-                       <Library path="@-LIBEXECDIR-@/adfs.so" fatal="true"/>
-                       <Library path="@-LIBEXECDIR-@/odbc-store.so" fatal="true"/>
+                       <Library path="@-PKGLIBDIR-@/adfs.so" fatal="true"/>
+                       <Library path="@-PKGLIBDIR-@/odbc-store.so" fatal="true"/>
                </Extensions>
                -->
-    
-               <!-- Only one listener can be defined. -->
-               <UnixListener address="@-PKGRUNDIR-@/shibd.sock"/>
-               
-               <!-- <TCPListener address="127.0.0.1" port="12345" acl="127.0.0.1"/> -->
-               
-               <StorageService type="Memory" id="memory" cleanupInterval="900"/>
-               <SessionCache type="StorageService" StorageService="memory" cacheTimeout="3600"/>
-               <ReplayCache StorageService="memory"/>
-               <ArtifactMap artifactTTL="180"/>
-
-               <!--
-               <StorageService type="ODBC" id="db" cleanupInterval="900">
-                       <ConnectionString>
-                       DRIVER=drivername;SERVER=dbserver;UID=shibboleth;PWD=password;DATABASE=shibboleth;APP=Shibboleth
-                       </ConnectionString>
-               </StorageService>
-               <SessionCache type="StorageService" StorageService="db" cacheTimeout="3600"/>
-               <ReplayCache StorageService="db"/>
-               <ArtifactMap StorageService="db" artifactTTL="180"/>
-               -->
        </OutOfProcess>
     
-       <!-- The InProcess section pertains to components that run inside the web server. -->
+       <!-- The InProcess section conrains settings affecting web server modules/filters. -->
        <InProcess logger="@-PKGSYSCONFDIR-@/native.logger">
-
                <!--
                <Extensions>
-                       <Library path="@-LIBEXECDIR-@/adfs-lite.so" fatal="true"/>
+                       <Library path="@-PKGLIBDIR-@/adfs-lite.so" fatal="true"/>
                </Extensions>
                -->
-               
-               <SessionCache type="Remoted" cleanupInterval="900" cacheTimeout="900"/>
-       
-               <!--
-               To customize behavior, map hostnames and path components to applicationId and other settings.
-               -->
-               <RequestMapper type="Native">
-                       <RequestMap applicationId="default">
-                               <!--
-                               The example requires a session for documents in /secure on the containing host with http and
-                               https on the default ports. Note that the name and port in the <Host> elements MUST match
-                               Apache's ServerName and Port directives or the IIS Site name in the <ISAPI> element
-                               below.
-                               -->
-                               <Host name="sp.example.org">
-                                       <Path name="secure" authType="shibboleth" requireSession="true">
-                                               <!-- Example shows the folder "/secure/admin" assigned to a separate <Application> -->
-                                               <!--
-                                               <Path name="admin" applicationId="foo-admin"/>
-                                               -->
-                                       </Path>
-                               </Host>
-                       </RequestMap>
-               </RequestMapper>
-               
-               <Implementation>
-                       <ISAPI normalizeRequest="true">
-                               <!--
-                               Maps IIS Instance ID values to the host scheme/name/port/sslport. The name is
-                               required so that the proper <Host> in the request map above is found without
-                               having to cover every possible DNS/IP combination the user might enter.
-                               The port and scheme can usually be omitted, so the HTTP request's port and
-                               scheme will be used.
-                               -->
-                               <Site id="1" name="sp.example.org"/>
-                       </ISAPI>
-               </Implementation>
+
+               <ISAPI normalizeRequest="true">
+                       <!--
+                       Maps IIS Instance ID values to the host scheme/name/port/sslport. The name is
+                       required so that the proper <Host> in the request map above is found without
+                       having to cover every possible DNS/IP combination the user might enter.
+                       The port and scheme can usually be omitted, so the HTTP request's port and
+                       scheme will be used.
+                       -->
+                       <Site id="1" name="sp.example.org"/>
+               </ISAPI>
        </InProcess>
 
+    <!-- Only one listener can be defined, to connect in process modules to shibd. -->
+    <UnixListener address="@-PKGRUNDIR-@/shibd.sock"/>
+    <!-- <TCPListener address="127.0.0.1" port="12345" acl="127.0.0.1"/> -->
+    
+    <!-- This set of components stores sessions and other persistent data in daemon memory. -->
+    <StorageService type="Memory" id="mem" cleanupInterval="900"/>
+    <SessionCache type="StorageService" StorageService="mem" cacheTimeout="3600" inprocTimeout="900" cleanupInterval="900"/>
+    <ReplayCache StorageService="mem"/>
+    <ArtifactMap artifactTTL="180"/>
+
+    <!-- This set of components stores sessions and other persistent data in an ODBC database. -->
+    <!--
+    <StorageService type="ODBC" id="db" cleanupInterval="900">
+        <ConnectionString>
+        DRIVER=drivername;SERVER=dbserver;UID=shibboleth;PWD=password;DATABASE=shibboleth;APP=Shibboleth
+        </ConnectionString>
+    </StorageService>
+    <SessionCache type="StorageService" StorageService="db" cacheTimeout="3600" inprocTimeout="900" cleanupInterval="900"/>
+    <ReplayCache StorageService="db"/>
+    <ArtifactMap StorageService="db" artifactTTL="180"/>
+    -->
+
+    <!-- To customize behavior, map hostnames and path components to applicationId and other settings. -->
+    <RequestMapper type="Native">
+        <RequestMap applicationId="default">
+            <!--
+            The example requires a session for documents in /secure on the containing host with http and
+            https on the default ports. Note that the name and port in the <Host> elements MUST match
+            Apache's ServerName and Port directives or the IIS Site name in the <ISAPI> element
+            below.
+            -->
+            <Host name="sp.example.org">
+                <Path name="secure" authType="shibboleth" requireSession="true">
+                    <!-- Example shows the folder "/secure/admin" assigned to a separate <Application> -->
+                    <!--
+                    <Path name="admin" applicationId="foo-admin"/>
+                    -->
+                </Path>
+            </Host>
+        </RequestMap>
+    </RequestMapper>
+
        <!--
        The Applications section is where most of Shibboleth's SAML bits are defined.
        Resource requests are mapped in the Local section into an applicationId that
                The system can compute a relative value based on the virtual host. Using handlerSSL="true"
                will force the protocol to be https. You should also add a cookieProps setting of "; path=/; secure"
                in that case. Note that while we default checkAddress to "false", this has a negative
-               impact on the security of the SP. Stealing cookies/sessions is much easier with this
-               disabled.
+               impact on the security of the SP. Stealing cookies/sessions is much easier with this disabled.
                -->
                <Sessions lifetime="28800" timeout="3600" checkAddress="false"
                        handlerURL="/Shibboleth.sso" handlerSSL="false"
                        exportLocation="http://localhost/Shibboleth.sso/GetAssertion"
-                       idpHistory="true" idpHistoryDays="7">
+                       idpHistory="false" idpHistoryDays="7">
                        
                        <!--
                        SessionInitiators handle session requests and relay them to a Discovery page,
                        -->
 
                        <!-- Default example directs to a specific IdP's SSO service (favoring SAML 2 over Shib 1). -->
-                       <SessionInitiator type="Chaining" Location="/Login" isDefault="true" id="idp.example.org"
+                       <SessionInitiator type="Chaining" Location="/Login" isDefault="true" id="Intranet"
                                        relayState="cookie" entityID="https://idp.example.org/shibboleth">
                                <SessionInitiator type="SAML2" defaultACSIndex="1" template="@-PKGSYSCONFDIR-@/bindingTemplate.html"/>
-                               <SessionInitiator type="Shib1" defaultACSIndex="4"/>
+                               <SessionInitiator type="Shib1" defaultACSIndex="5"/>
+                               <!-- <SessionInitiator type="ADFS"/> -->
                        </SessionInitiator>
                        
                        <!-- An example using an old-style WAYF, which means Shib 1 only unless an entityID is provided. -->
                        <SessionInitiator type="Chaining" Location="/WAYF" id="WAYF" relayState="cookie">
                                <SessionInitiator type="SAML2" defaultACSIndex="1" template="@-PKGSYSCONFDIR-@/bindingTemplate.html"/>
-                               <SessionInitiator type="Shib1" defaultACSIndex="4"/>
-                               <SessionInitiator type="WAYF" defaultACSIndex="4" URL="https://wayf.example.org/WAYF"/>
+                               <SessionInitiator type="Shib1" defaultACSIndex="5"/>
+                <!-- <SessionInitiator type="ADFS"/> -->
+                               <SessionInitiator type="WAYF" defaultACSIndex="5" URL="https://wayf.example.org/WAYF"/>
                        </SessionInitiator>
 
                        <!-- An example supporting the new-style of discovery service. -->
                        <SessionInitiator type="Chaining" Location="/DS" id="DS" relayState="cookie">
                                <SessionInitiator type="SAML2" defaultACSIndex="1" template="@-PKGSYSCONFDIR-@/bindingTemplate.html"/>
-                               <SessionInitiator type="Shib1" defaultACSIndex="4"/>
+                               <SessionInitiator type="Shib1" defaultACSIndex="5"/>
+                <!-- <SessionInitiator type="ADFS"/> -->
                                <SessionInitiator type="SAMLDS" URL="https://ds.example.org/DS"/>
                        </SessionInitiator>
                        
                                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign"/>
                        <md:AssertionConsumerService Location="/SAML2/Artifact" index="3"
                                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"/>
-                       <md:AssertionConsumerService Location="/SAML/POST" index="4"
+            <md:AssertionConsumerService Location="/SAML2/ECP" index="4"
+                Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS"/>
+                       <md:AssertionConsumerService Location="/SAML/POST" index="5"
                                Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post"/>
-                       <md:AssertionConsumerService Location="/SAML/Artifact" index="5"
+                       <md:AssertionConsumerService Location="/SAML/Artifact" index="6"
                                Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01"/>
+                   
+                   <!--
+            <md:AssertionConsumerService Location="/ADFS" index="7"
+                Binding="http://schemas.xmlsoap.org/ws/2003/07/secext"/>
+            -->
 
                        <!-- LogoutInitiators enable SP-initiated local or global/single logout of sessions. -->
                        <LogoutInitiator type="Chaining" Location="/Logout">
                                <LogoutInitiator type="SAML2" template="@-PKGSYSCONFDIR-@/bindingTemplate.html"/>
+                               <!-- <LogoutInitiator type="ADFS"/>     -->
                                <LogoutInitiator type="Local"/>
                        </LogoutInitiator>
 
                                Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"/>
 
             <!-- Extension service that generates "approximate" metadata based on SP configuration. -->
-            <Handler type="MetadataGenerator" Location="/Metadata" signing="true"/>
+            <Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>
 
             <!-- Status reporting service. -->
             <Handler type="Status" Location="/Status" acl="127.0.0.1"/>
 
+            <!-- Session diagnostic service. -->
+            <Handler type="Session" Location="/Session"/>
+
                </Sessions>
 
                <!--
                        styleSheet="/shibboleth-sp/main.css"/>
                
                <!-- Configure handling of outgoing messages and SOAP authentication. -->
-               <DefaultRelyingParty authType="TLS" artifactEndpointIndex="1" signing="front" encryption="front">
+               <DefaultRelyingParty authType="TLS" artifactEndpointIndex="1" signing="false" encryption="false">
                        <!-- Uncomment and modify to tweak settings for specific IdPs or groups. -->
-                       <!--
-                       <RelyingParty Name="SpecialFederation" keyName="SpecialKey"/>
-                       -->
+                       <!-- <RelyingParty Name="SpecialFederation" keyName="SpecialKey"/> -->
                </DefaultRelyingParty>
 
-               <!-- Chains together all your metadata sources. -->
-               <MetadataProvider type="Chaining">
-                       <!-- Dummy metadata for private testing, delete for production deployments. -->
-                       <MetadataProvider type="XML" path="@-PKGSYSCONFDIR-@/example-metadata.xml"/>
-               </MetadataProvider>
+        <!-- Chains together all your metadata sources. -->
+        <MetadataProvider type="Chaining">
+               <!-- Example of remotely supplied batch of signed metadata. -->
+               <!--
+               <MetadataProvider type="XML" uri="http://federation.org/federation-metadata.xml"
+                    backingFilePath="@-PKGRUNDIR-@/federation-metadata.xml" reloadInterval="7200">
+                  <SignatureMetadataFilter certificate="@-PKGSYSCONFDIR-@/fedsigner.pem"/>
+            </MetadataProvider>
+            -->
+
+            <!-- Example of locally maintained metadata. -->
+            <!--
+            <MetadataProvider type="XML" file="@-PKGSYSCONFDIR-@/partner-metadata.xml"/>
+            -->
+        </MetadataProvider>
 
                <!-- Chain the two built-in trust engines together. -->
                <TrustEngine type="Chaining">
                        </CredentialResolver>
                </CredentialResolver>
                -->
+               
        </Applications>
        
-       <!-- Each policy defines a set of rules to use to secure SAML and SOAP messages. -->
+       <!-- Each policy defines a set of rules to use to secure messages. -->
        <SecurityPolicies>
-               <!-- The predefined policy handles SAML 1 and 2 protocols and permits signing and client TLS. -->
+               <!-- The predefined policy enforces replay/freshness and permits signing and client TLS. -->
                <Policy id="default"
                        validate="false"
                        signedAssertions="false"