Use shibboleth-sp as package name for compatibility.
[shibboleth/cpp-sp.git] / configs / win-shibboleth2.xml
index 63ab25b..000e2d9 100644 (file)
-<SPConfig xmlns="urn:mace:shibboleth:2.0:native:sp:config"\r
-    xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config"\r
-    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"\r
-    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"    \r
-    xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"\r
-    clockSkew="180">\r
-\r
-    <!-- The InProcess section conrains settings affecting web server modules/filters. -->\r
-    <InProcess logger="native.logger">\r
-        <ISAPI normalizeRequest="true" safeHeaderNames="true">\r
-            <!--\r
-            Maps IIS Instance ID values to the host scheme/name/port. The name is\r
-            required so that the proper <Host> in the request map above is found without\r
-            having to cover every possible DNS/IP combination the user might enter.\r
-            -->\r
-            <Site id="1" name="sp.example.org"/>\r
-            <!--\r
-            When the port and scheme are omitted, the HTTP request's port and scheme are used.\r
-            If these are wrong because of virtualization, they can be explicitly set here to\r
-            ensure proper redirect generation.\r
-            -->\r
-            <!--\r
-            <Site id="42" name="virtual.example.org" scheme="https" port="443"/>\r
-            -->\r
-        </ISAPI>\r
-    </InProcess>\r
-\r
-    <!-- By default, in-memory StorageService, ReplayCache, and ArtifactMap are used. -->\r
-    <SessionCache type="StorageService" cacheAssertions="false"\r
-                  cacheTimeout="3600" inprocTimeout="900" cleanupInterval="900"/>\r
-\r
-    <!-- To customize behavior, map hostnames and path components to applicationId and other settings. -->\r
-    <RequestMapper type="Native">\r
-        <RequestMap>\r
-            <!--\r
-            The example requires a session for documents in /secure on the containing host with http and\r
-            https on the default ports. Note that the name and port in the <Host> elements MUST match\r
-            Apache's ServerName and Port directives or the IIS Site name in the <ISAPI> element above.\r
-            -->\r
-            <Host name="sp.example.org">\r
-                <Path name="secure" authType="shibboleth" requireSession="true"/>\r
-            </Host>\r
-            <!-- Example of a second vhost mapped to a different applicationId. -->\r
-            <!--\r
-            <Host name="admin.example.org" applicationId="admin" authType="shibboleth" requireSession="true"/>\r
-            -->\r
-        </RequestMap>\r
-    </RequestMapper>\r
-\r
-    <!--\r
-    The ApplicationDefaults element is where most of Shibboleth's SAML bits are defined.\r
-    Resource requests are mapped by the RequestMapper to an applicationId that\r
-    points into to this section (or to the defaults here).\r
-    -->\r
-    <ApplicationDefaults policyId="default"\r
-        entityID="https://sp.example.org/shibboleth"\r
-        REMOTE_USER="eppn persistent-id targeted-id"\r
-        signing="false" encryption="false">\r
-\r
-        <!--\r
-        Controls session lifetimes, address checks, cookie handling, and the protocol handlers.\r
-        You MUST supply an effectively unique handlerURL value for each of your applications.\r
-        The value can be a relative path, a URL with no hostname (https:///path) or a full URL.\r
-        The system can compute a relative value based on the virtual host. Using handlerSSL="true"\r
-        will force the protocol to be https. You should also add a cookieProps setting of "; path=/; secure"\r
-        in that case. Note that while we default checkAddress to "false", this has a negative\r
-        impact on the security of the SP. Stealing cookies/sessions is much easier with this disabled.\r
-        -->\r
-        <Sessions lifetime="28800" timeout="3600" checkAddress="false"\r
-            handlerURL="/Shibboleth.sso" handlerSSL="false"\r
-            idpHistory="false" idpHistoryDays="7">\r
-            \r
-            <!--\r
-            SessionInitiators handle session requests and relay them to a Discovery page,\r
-            or to an IdP if possible. Automatic session setup will use the default or first\r
-            element (or requireSessionWith can specify a specific id to use).\r
-            -->\r
-\r
-            <!-- Default directs to a specific IdP (favoring SAML 2 over Shib 1). -->\r
-            <SessionInitiator type="Chaining" Location="/Login" isDefault="true" id="Login"\r
-                    relayState="cookie" entityID="https://idp.example.org/shibboleth">\r
-                <SessionInitiator type="SAML2" acsIndex="1" template="bindingTemplate.html"/>\r
-                <SessionInitiator type="Shib1" acsIndex="5"/>\r
-                <!--\r
-                To allow for >1 IdP, remove entityID property from Chaining element and add\r
-                *either* of the SAMLDS or WAYF handlers below:\r
-                \r
-                <SessionInitiator type="SAMLDS" URL="https://ds.example.org/DS/WAYF"/>\r
-                <SessionInitiator type="WAYF" acsIndex="5" URL="https://wayf.example.org/WAYF"/>\r
-                -->\r
-            </SessionInitiator>\r
-            \r
-            <!--\r
-            md:AssertionConsumerService locations handle specific SSO protocol bindings,\r
-            such as SAML 2.0 POST or SAML 1.1 Artifact. The isDefault and index attributes\r
-            are used when sessions are initiated to determine how to tell the IdP where and\r
-            how to return the response.\r
-            -->\r
-            <md:AssertionConsumerService Location="/SAML2/POST" index="1"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>\r
-            <md:AssertionConsumerService Location="/SAML2/POST-SimpleSign" index="2"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign"/>\r
-            <md:AssertionConsumerService Location="/SAML2/Artifact" index="3"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"/>\r
-            <md:AssertionConsumerService Location="/SAML2/ECP" index="4"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS"/>\r
-            <md:AssertionConsumerService Location="/SAML/POST" index="5"\r
-                Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post"/>\r
-            <md:AssertionConsumerService Location="/SAML/Artifact" index="6"\r
-                Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01"/>\r
-\r
-            <!-- LogoutInitiators enable SP-initiated local or global/single logout of sessions. -->\r
-            <LogoutInitiator type="Chaining" Location="/Logout" relayState="cookie">\r
-                <LogoutInitiator type="SAML2" template="bindingTemplate.html"/>\r
-                <LogoutInitiator type="Local"/>\r
-            </LogoutInitiator>\r
-\r
-            <!-- md:SingleLogoutService locations handle single logout (SLO) protocol messages. -->\r
-            <md:SingleLogoutService Location="/SLO/SOAP"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"/>\r
-            <md:SingleLogoutService Location="/SLO/Redirect" conf:template="bindingTemplate.html"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"/>\r
-            <md:SingleLogoutService Location="/SLO/POST" conf:template="bindingTemplate.html"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>\r
-            <md:SingleLogoutService Location="/SLO/Artifact" conf:template="bindingTemplate.html"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"/>\r
-\r
-            <!-- md:ManageNameIDService locations handle NameID management (NIM) protocol messages. -->\r
-            <md:ManageNameIDService Location="/NIM/SOAP"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"/>\r
-            <md:ManageNameIDService Location="/NIM/Redirect" conf:template="bindingTemplate.html"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"/>\r
-            <md:ManageNameIDService Location="/NIM/POST" conf:template="bindingTemplate.html"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>\r
-            <md:ManageNameIDService Location="/NIM/Artifact" conf:template="bindingTemplate.html"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"/>\r
-\r
-            <!--\r
-            md:ArtifactResolutionService locations resolve artifacts issued when using the\r
-            SAML 2.0 HTTP-Artifact binding on outgoing messages, generally uses SOAP.\r
-            -->\r
-            <md:ArtifactResolutionService Location="/Artifact/SOAP" index="1"\r
-                Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"/>\r
-\r
-            <!-- Extension service that generates "approximate" metadata based on SP configuration. -->\r
-            <Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>\r
-\r
-            <!-- Status reporting service. -->\r
-            <Handler type="Status" Location="/Status" acl="127.0.0.1"/>\r
-\r
-            <!-- Session diagnostic service. -->\r
-            <Handler type="Session" Location="/Session" showAttributeValues="false"/>\r
-\r
-        </Sessions>\r
-\r
-        <!--\r
-        Allows overriding of error template filenames. You can also add attributes with values\r
-        that can be plugged into the templates.\r
-        -->\r
-        <Errors supportContact="root@localhost"\r
-            logoLocation="/shibboleth-sp/logo.jpg"\r
-            styleSheet="/shibboleth-sp/main.css"/>\r
-        \r
-        <!-- Uncomment and modify to tweak settings for specific IdPs or groups. -->\r
-        <!-- <RelyingParty Name="SpecialFederation" keyName="SpecialKey"/> -->\r
-\r
-        <!-- Chains together all your metadata sources. -->\r
-        <MetadataProvider type="Chaining">\r
-            <!-- Example of remotely supplied batch of signed metadata. -->\r
-            <!--\r
-            <MetadataProvider type="XML" uri="http://federation.org/federation-metadata.xml"\r
-                 backingFilePath="federation-metadata.xml" reloadInterval="7200">\r
-               <MetadataFilter type="RequireValidUntil" maxValidityInterval="2419200"/>\r
-               <MetadataFilter type="Signature" certificate="fedsigner.pem"/>\r
-            </MetadataProvider>\r
-            -->\r
-\r
-            <!-- Example of locally maintained metadata. -->\r
-            <!--\r
-            <MetadataProvider type="XML" file="partner-metadata.xml"/>\r
-            -->\r
-        </MetadataProvider>\r
-\r
-        <!-- Chain the two built-in trust engines together. -->\r
-        <TrustEngine type="Chaining">\r
-            <TrustEngine type="ExplicitKey"/>\r
-            <TrustEngine type="PKIX"/>\r
-        </TrustEngine>\r
-\r
-        <!-- Map to extract attributes from SAML assertions. -->\r
-        <AttributeExtractor type="XML" validate="true" path="attribute-map.xml"/>\r
-        \r
-        <!-- Use a SAML query if no attributes are supplied during SSO. -->\r
-        <AttributeResolver type="Query" subjectMatch="true"/>\r
-\r
-        <!-- Default filtering policy for recognized attributes, lets other data pass. -->\r
-        <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>\r
-\r
-        <!-- Simple file-based resolver for using a single keypair. -->\r
-        <CredentialResolver type="File" key="sp-key.pem" certificate="sp-cert.pem"/>\r
-\r
-        <!-- Example of a second application (using a second vhost) that has a different entityID. -->\r
-        <!-- <ApplicationOverride id="admin" entityID="https://admin.example.org/shibboleth"/> -->\r
-\r
-    </ApplicationDefaults>\r
-    \r
-    <!-- Policies that determine how to process and authenticate runtime messages. -->\r
-    <SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/>\r
-\r
-</SPConfig>\r
+<SPConfig xmlns="urn:mace:shibboleth:2.0:native:sp:config"
+    xmlns:conf="urn:mace:shibboleth:2.0:native:sp:config"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"    
+    xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
+    clockSkew="180">
+
+    <!--
+    The InProcess section contains settings affecting web server modules.
+    Required for IIS, but can be removed when using other web servers.
+    -->
+    <InProcess logger="native.logger">
+        <ISAPI normalizeRequest="true" safeHeaderNames="true">
+            <!--
+            Maps IIS Instance ID values to the host scheme/name/port. 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.
+            -->
+            <Site id="1" name="sp.example.org"/>
+            <!--
+            When the port and scheme are omitted, the HTTP request's port and scheme are used.
+            If these are wrong because of virtualization, they can be explicitly set here to
+            ensure proper redirect generation.
+            -->
+            <!--
+            <Site id="42" name="virtual.example.org" scheme="https" port="443"/>
+            -->
+        </ISAPI>
+    </InProcess>
+
+    <!--
+    By default, in-memory StorageService, ReplayCache, ArtifactMap, and SessionCache
+    are used. See example-shibboleth2.xml for samples of explicitly configuring them.
+    -->
+
+    <!--
+    To customize behavior for specific resources on IIS, and to link vhosts or
+    resources to ApplicationOverride settings below, use the XML syntax below.
+    See https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPRequestMapHowTo for help.
+    
+    Apache users should rely on web server options/commands in most cases, and can remove the
+    RequestMapper element. See https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig
+    -->
+    <RequestMapper type="Native">
+        <RequestMap>
+            <!--
+            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 above.
+            -->
+            <Host name="sp.example.org">
+                <Path name="secure" authType="shibboleth" requireSession="true"/>
+            </Host>
+            <!-- Example of a second vhost mapped to a different applicationId. -->
+            <!--
+            <Host name="admin.example.org" applicationId="admin" authType="shibboleth" requireSession="true"/>
+            -->
+        </RequestMap>
+    </RequestMapper>
+
+    <!--
+    The ApplicationDefaults element is where most of Shibboleth's SAML bits are defined.
+    Resource requests are mapped by the RequestMapper to an applicationId that
+    points into to this section (or to the defaults here).
+    -->
+    <ApplicationDefaults entityID="https://sp.example.org/shibboleth"
+                         REMOTE_USER="eppn persistent-id targeted-id">
+
+        <!--
+        Controls session lifetimes, address checks, cookie handling, and the protocol handlers.
+        You MUST supply an effectively unique handlerURL value for each of your applications.
+        The value defaults to /Shibboleth.sso, and should be a relative path, with the SP computing
+        a relative value based on the virtual host. Using handlerSSL="true", the default, will force
+        the protocol to be https. You should also set cookieProps to "https" for SSL-only sites.
+        Note that while we default checkAddress to "false", this has a negative impact on the
+        security of your site. Stealing sessions via cookie theft is much easier with this disabled.
+        -->
+        <Sessions lifetime="28800" timeout="3600" relayState="ss:mem"
+                  checkAddress="false" handlerSSL="false" cookieProps="http">
+
+            <!--
+            Configures SSO for a default IdP. To allow for >1 IdP, remove
+            entityID property and adjust discoveryURL to point to discovery service.
+            (Set discoveryProtocol to "WAYF" for legacy Shibboleth WAYF support.)
+            You can also override entityID on /Login query string, or in RequestMap/htaccess.
+            -->
+            <SSO entityID="https://idp.example.org/idp/shibboleth"
+                 discoveryProtocol="SAMLDS" discoveryURL="https://ds.example.org/DS/WAYF">
+              SAML2 SAML1
+            </SSO>
+
+            <!-- SAML and local-only logout. -->
+            <Logout>SAML2 Local</Logout>
+
+            <!-- Extension service that generates "approximate" metadata based on SP configuration. -->
+            <Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>
+
+            <!-- Status reporting service. -->
+            <Handler type="Status" Location="/Status" acl="127.0.0.1 ::1"/>
+
+            <!-- Session diagnostic service. -->
+            <Handler type="Session" Location="/Session" showAttributeValues="false"/>
+
+            <!-- JSON feed of discovery information. -->
+            <Handler type="DiscoveryFeed" Location="/DiscoFeed"/>
+        </Sessions>
+
+        <!--
+        Allows overriding of error template information/filenames. You can
+        also add attributes with values that can be plugged into the templates.
+        -->
+        <Errors supportContact="root@localhost"
+            helpLocation="/about.html"
+            styleSheet="/shibboleth-sp/main.css"/>
+        
+        <!-- Example of remotely supplied batch of signed metadata. -->
+        <!--
+        <MetadataProvider type="XML" uri="http://federation.org/federation-metadata.xml"
+              backingFilePath="federation-metadata.xml" reloadInterval="7200">
+            <MetadataFilter type="RequireValidUntil" maxValidityInterval="2419200"/>
+            <MetadataFilter type="Signature" certificate="fedsigner.pem"/>
+            <DiscoveryFilter type="Blacklist" matcher="EntityAttributes" trimTags="true" 
+              attributeName="http://macedir.org/entity-category"
+              attributeNameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
+              attributeValue="http://refeds.org/category/hide-from-discovery" />
+        </MetadataProvider>
+        -->
+
+        <!-- Example of locally maintained metadata. -->
+        <!--
+        <MetadataProvider type="XML" file="partner-metadata.xml"/>
+        -->
+
+        <!-- Map to extract attributes from SAML assertions. -->
+        <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/>
+        
+        <!-- Use a SAML query if no attributes are supplied during SSO. -->
+        <AttributeResolver type="Query" subjectMatch="true"/>
+
+        <!-- Default filtering policy for recognized attributes, lets other data pass. -->
+        <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>
+
+        <!-- Simple file-based resolver for using a single keypair. -->
+        <CredentialResolver type="File" key="sp-key.pem" certificate="sp-cert.pem"/>
+
+        <!--
+        The default settings can be overridden by creating ApplicationOverride elements (see
+        the https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApplicationOverride topic).
+        Resource requests are mapped by web server commands, or the RequestMapper, to an
+        applicationId setting.
+        
+        Example of a second application (for a second vhost) that has a different entityID.
+        Resources on the vhost would map to an applicationId of "admin":
+        -->
+        <!--
+        <ApplicationOverride id="admin" entityID="https://admin.example.org/shibboleth"/>
+        -->
+    </ApplicationDefaults>
+    
+    <!-- Policies that determine how to process and authenticate runtime messages. -->
+    <SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/>
+
+    <!-- Low-level configuration about protocols and bindings available for use. -->
+    <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>
+
+</SPConfig>