<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="ES" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span lang="DE">Dear experts,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="DE"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I would like to host an application protected by Shibboleth SP behind a reverse proxy, like so:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                                                   
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><a href="https://samltest.example.org:4433/mySAMLTest">https://samltest.example.org:4433/mySAMLTest</a> ->
<a href="https://samltest.example.org/mySAMLTest">https://samltest.example.org/mySAMLTest</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">The reverse proxy is an Apache, the application an IIS site hosted on port 443.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">However, I do not get the ACS URL set properly in the SAML request. The SAML request always contains the ACS URL without the port number.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">What I have tried already in shibboleth2.xml:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><Site id="3" name="samltest.example.org" scheme=”https” port=”4433” /><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">combined with<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><RequestMap><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <Host name="samltest.example.org" scheme=”https” port=”4433” ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                <Path name="mySAMLTest" authType="shibboleth" requireSession="true"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            </Host><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Result: /mySAMLTest is not protected any more<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><Sessions lifetime="28800" timeout="3600" relayState="ss:mem"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                  checkAddress="false" handlerSSL="true" handlerURl=”https://samltest.example.org:4433/Shibboleth.sso” cookieProps="https"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Result: ACS URL https://samltest.example.org:4433/Shibboleth.sso/SAML2/POST is set properly, but when the IdP redirects to it, it returns error 404<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><Handler type="MetadataGenerator" Location="/Metadata" signing="false"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                                               <EndpointBase><a href="https://%20samltest.example.org:4433/Shibboleth.sso%3c/EndpointBase">https:// samltest.example.org:4433/Shibboleth.sso</EndpointBase</a>><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"></Handler><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Result: ACS URL in Metadata file is set properly, but in the SAML request the port number is still missing.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">From my understanding, I have to tell the Shibboleth SP somehow to add the port number to the ACS URL when creating the SAML request, I am just not able to figure out how.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Any help would be very much appreciated.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thanks in advance and br,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Elmar<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Here is the whole shibboleth2.xml:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><SPConfig xmlns="urn:mace:shibboleth:3.0:native:sp:config"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    xmlns:conf="urn:mace:shibboleth:3.0:native:sp:config"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    clockSkew="180"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                <OutOfProcess tranLogFormat="%u|%s|%IDP|%i|%ac|%t|%attr|%n|%b|%E|%S|%SS|%L|%UA|%a">
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                               <Extensions>
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                               <Library path="plugins.so" fatal="true"/>
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                               </Extensions>
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                </OutOfProcess>  <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <InProcess><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        <ISAPI normalizeRequest="true" safeHeaderNames="true"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <Site id="3" name="samltest.example.org"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        </ISAPI><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    </InProcess><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <RequestMapper type="Native"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        <RequestMap><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <Host name="samltest.example.org"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                <Path name="mySAMLTest" authType="shibboleth" requireSession="true"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            </Host><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        </RequestMap><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    </RequestMapper><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <ApplicationDefaults entityID="https://samltest.example.org:4433/shibboleth"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        REMOTE_USER="eppn subject-id pairwise-id persistent-id"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1" signing="true"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        <Sessions lifetime="28800" timeout="3600" relayState="ss:mem"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                  checkAddress="false" handlerSSL="true" cookieProps="https"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <SSO entityID="https://idp.example.org"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                 discoveryProtocol="SAMLDS" discoveryURL="https://ds.example.org/DS/WAYF"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">              SAML2<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            </SSO><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">           <Logout>SAML2 Local</Logout><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <LogoutInitiator type="Admin" Location="/Logout/Admin" acl="127.0.0.1 ::1" /><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <Handler type="MetadataGenerator" Location="/Metadata" signing="false"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                                               <EndpointBase>https://samltest.example.org:4433/Shibboleth.sso</EndpointBase><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                               </Handler><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <Handler type="Status" Location="/Status" acl="127.0.0.1 ::1"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <Handler type="Session" Location="/Session" showAttributeValues="false"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <!-- JSON feed of discovery information. --><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <Handler type="DiscoveryFeed" Location="/DiscoFeed"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        </Sessions><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        <Errors supportContact="root@localhost"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            helpLocation="/about.html"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            styleSheet="/shibboleth-sp/main.css"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        <MetadataProvider type="XML" validate="true"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                            url="https://idp.example.org/pf/federation_metadata.ping?PartnerSpId=https://samltest.example.org:4433/shibboleth" backingFilePath="metadata-saml20.xml" maxRefreshDelay="7200"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                               <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">       <CredentialResolver type="File" use="signing"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            key="sp-signing-key.pem" certificate="sp-signing-cert.pem"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        <CredentialResolver type="File" use="encryption"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            key="sp-encrypt-key.pem" certificate="sp-encrypt-cert.pem"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    </ApplicationDefaults><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"></SPConfig><o:p></o:p></span></p>
</div>
</body>
</html>