<html 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=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Helvetica;
panose-1:0 0 0 0 0 0 0 0 0 0;}
@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:0in;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
h1
{mso-style-priority:9;
mso-style-link:"Heading 1 Char";
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:24.0pt;
font-family:"Calibri",sans-serif;
font-weight:bold;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
p.p1, li.p1, div.p1
{mso-style-name:p1;
margin:0in;
font-size:9.0pt;
font-family:Helvetica;
color:#3F7F5F;}
p.p2, li.p2, div.p2
{mso-style-name:p2;
margin:0in;
font-size:9.0pt;
font-family:Helvetica;
color:#2A00FF;}
p.p3, li.p3, div.p3
{mso-style-name:p3;
margin:0in;
font-size:9.0pt;
font-family:Helvetica;}
p.p4, li.p4, div.p4
{mso-style-name:p4;
margin:0in;
font-size:9.0pt;
font-family:Helvetica;}
span.s1
{mso-style-name:s1;
color:black;}
span.s2
{mso-style-name:s2;
color:#7F0055;}
span.s3
{mso-style-name:s3;
color:#3F7F5F;}
span.apple-tab-span
{mso-style-name:apple-tab-span;}
span.apple-converted-space
{mso-style-name:apple-converted-space;}
span.Heading1Char
{mso-style-name:"Heading 1 Char";
mso-style-priority:9;
mso-style-link:"Heading 1";
font-family:"Calibri",sans-serif;
font-weight:bold;}
p.error, li.error, div.error
{mso-style-name:error;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:12.0pt;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I am installing Shibboleth IdP 3.4.6 as docker in ECS. The instance is protected by CAS. I can see in the logs that my person id is injected in the header (HBS_PERSON_ID: 388284)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">10.140.158.15 - - [24/Aug/2021:13:40:32 +0000] "GET /idp/profile/SAML2/Redirect/SSO?SAMLRequest=fZJPb4IwGMa%2FCuldShGca4SE6WEmbhphO%2ByyFHiVJtCyvsVt336gbnOHee7z531%2B6QxFU7c86WyltvDWAVrno6kV8uNDRDqjuBYokSvRAHJb8DR5WHHf9XhrtNWFromTIIKxUqu5Vtg1YFIwB1nA03YVkcraFjmlpipEW8KBuVWOLpQdTSuZ57oGW7mImg7BPt2s04w4i%2F4SqcSQ%2BZvQi3r%2FYEe7d7XZU1m2tD9jJ2s427dQSgOFpWm6Js5yEZHXIGBjUfjhdBp64QR24Vj44S3LhV%2BWjE1EL0PsYKnQCmUj4ns%2BG3nTkR9kbMwDj7ObF%2BJszmvvpCql2l9Hk59EyO%2BzbDM6TXoGg8c5vYDEswEwPxabC%2BTXY8U3ZxL%2FTxVbij9gZ%2FSi51Ta8sc%2BeLnY6FoWn05S1%2Fp9bkBYiAgjND5Z%2Fn6K%2BAs%3D&RelayState=ss%3Amem%3Adbb6174dc2ff9956c9ba1810e6b6383b3751444a2fd2f451e35840dd013fd231
HTTP/1.1" 302 - remote_ip:10.140.158.15 x-forwarded-for:199.94.1.20,10.140.158.155, 3.236.67.126 x-forwarded-host:ssodev.hbsstg.org x-forwarded-proto:https HBS_PERSON_ID: 388284
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">10.140.158.111 - - [24/Aug/2021:13:40:33 +0000] "GET /idp/profile/SAML2/Redirect/SSO?execution=e1s1 HTTP/1.1" 302 - remote_ip:10.140.158.111 x-forwarded-for:199.94.1.20,10.140.158.155, 3.236.67.126 x-forwarded-host:ssodev.hbsstg.org
x-forwarded-proto:https HBS_PERSON_ID: 388284 <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">10.140.158.15 - - [24/Aug/2021:13:40:33 +0000] "GET /idp/Authn/RemoteUser?conversation=e1s1 HTTP/1.1" 302 - remote_ip:10.140.158.15 x-forwarded-for:199.94.1.20,10.140.158.155, 3.236.67.126 x-forwarded-host:ssodev.hbsstg.org
x-forwarded-proto:https HBS_PERSON_ID: 388284 <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">10.140.158.111 - - [24/Aug/2021:13:40:34 +0000] "GET /idp/profile/SAML2/Redirect/SSO?execution=e1s1&_eventId_proceed=1 HTTP/1.1" 200 5059 remote_ip:10.140.158.111 x-forwarded-for:199.94.1.20,10.140.158.155,
3.236.67.126 x-forwarded-host:ssodev.hbsstg.org x-forwarded-proto:https HBS_PERSON_ID: 388284<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Here is the conf/authn/remoteuser-authn-config.xml file:<o:p></o:p></span></p>
<p class="p1"><span class="apple-converted-space"><span style="color:black"> </span>
</span><!-- Check getRemoteUser() for identity (the typical case). --><o:p></o:p></p>
<p class="p2"><span class="apple-converted-space"><span style="color:black"> </span>
</span><span class="s1"><<b>util</b>:</span><span class="s2"><b>constant</b></span><span class="s1">
</span><span class="s2"><b>id</b></span><span class="s1">=</span>"shibboleth.authn.RemoteUser.checkRemoteUser"<span class="s1">
</span><span class="s2"><b>static-field</b></span><span class="s1">=</span>"java.lang.Boolean.TRUE"<span class="s1">/></span><o:p></o:p></p>
<p class="p3"><o:p> </o:p></p>
<p class="p1"><span class="apple-converted-space"><span style="color:black"> </span>
</span><!-- Populate one or both of the lists below to define HTTP headers or Servlet Attributes to check. --><o:p></o:p></p>
<p class="p3"><span class="apple-converted-space"> </span><o:p></o:p></p>
<p class="p2"><span class="apple-converted-space"><span style="color:black"> </span>
</span><span class="s1"><<b>util</b>:</span><span class="s2"><b>list</b></span><span class="s1">
</span><span class="s2"><b>id</b></span><span class="s1">=</span>"shibboleth.authn.RemoteUser.checkHeaders"<span class="s1">></span><o:p></o:p></p>
<p class="p4"><span class="apple-converted-space"> </span><span class="s3"><!--</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space"> </span><value>User-Identity</value><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space"> </span>--><o:p></o:p></p>
<p class="p4"><span class="apple-tab-span"> </span>
<<b>value</b>>HBS_PERSON_ID</<b>value</b>><o:p></o:p></p>
<p class="p4"><span class="apple-converted-space"> </span></<b>util</b>:<span class="s2"><b>list</b></span>><o:p></o:p></p>
<p class="p3"><o:p> </o:p></p>
<p class="p2"><span class="apple-converted-space"><span style="color:black"> </span>
</span><span class="s1"><<b>util</b>:</span><span class="s2"><b>list</b></span><span class="s1">
</span><span class="s2"><b>id</b></span><span class="s1">=</span>"shibboleth.authn.RemoteUser.checkAttributes"<span class="s1">></span><o:p></o:p></p>
<p class="p4"><span class="apple-converted-space"> </span><span class="s3"><!--</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space"> </span><value>User-Identity</value><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space"> </span>--><o:p></o:p></p>
<p class="p4"><span class="apple-tab-span"> </span>
<<b>value</b>>HBS_PERSON_ID</<b>value</b>><o:p></o:p></p>
<p class="p4"><span class="apple-converted-space"> </span></<b>util</b>:<span class="s2"><b>list</b></span>><o:p></o:p></p>
<p class="p3"><span class="apple-converted-space"> </span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space"><span style="color:black"> </span>
</span><!-- Simple transforms to apply to username before validation. --><o:p></o:p></p>
<p class="p2"><span class="apple-converted-space"><span style="color:black"> </span>
</span><span class="s1"><<b>util</b>:</span><span class="s2"><b>constant</b></span><span class="s1">
</span><span class="s2"><b>id</b></span><span class="s1">=</span>"shibboleth.authn.RemoteUser.Lowercase"<span class="s1">
</span><span class="s2"><b>static-field</b></span><span class="s1">=</span>"java.lang.Boolean.FALSE"<span class="s1">/></span><o:p></o:p></p>
<p class="p2"><span class="apple-converted-space"><span style="color:black"> </span>
</span><span class="s1"><<b>util</b>:</span><span class="s2"><b>constant</b></span><span class="s1">
</span><span class="s2"><b>id</b></span><span class="s1">=</span>"shibboleth.authn.RemoteUser.Uppercase"<span class="s1">
</span><span class="s2"><b>static-field</b></span><span class="s1">=</span>"java.lang.Boolean.FALSE"<span class="s1">/></span><o:p></o:p></p>
<p class="p2"><span class="apple-converted-space"><span style="color:black"> </span>
</span><span class="s1"><<b>util</b>:</span><span class="s2"><b>constant</b></span><span class="s1">
</span><span class="s2"><b>id</b></span><span class="s1">=</span>"shibboleth.authn.RemoteUser.Trim"<span class="s1">
</span><span class="s2"><b>static-field</b></span><span class="s1">=</span>"java.lang.Boolean.TRUE"<span class="s1">/></span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Here is my conf/idp.properties file:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:Helvetica">idp.authn.flows=<span style="color:#2A00FF">RemoteUser</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">This is what I get in my SP after signing into CAS and getting redirected through IdP:<o:p></o:p></span></p>
<h1>opensaml::FatalProfileException<o:p></o:p></h1>
<p>The system encountered an error at Tue Aug 24 09:40:34 2021<o:p></o:p></p>
<p>To report this problem, please contact the site administrator at <a href="mailto:root@localhost">
root@localhost</a>. <o:p></o:p></p>
<p>Please include the following message in any email:<o:p></o:p></p>
<p class="error">opensaml::FatalProfileException at (https://rhcapdev1.hbs.edu/Shibboleth.sso/SAML2/POST)<o:p></o:p></p>
<p>SAML response reported an IdP error.<o:p></o:p></p>
<p>Error from identity provider:<o:p></o:p></p>
<p class="MsoNormal"><strong><span style="font-family:"Calibri",sans-serif">Status:</span></strong> urn:oasis:names:tc:SAML:2.0:status:Requester<br>
<strong><span style="font-family:"Calibri",sans-serif">Sub-Status:</span></strong> urn:oasis:names:tc:SAML:2.0:status:AuthnFailed<br>
<strong><span style="font-family:"Calibri",sans-serif">Message:</span></strong> An error occurred.<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Can someone please let me know what am I missing in the setup.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Note: Our current production setup uses Apache with AJP to inject person id in the header.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Thanks for your help.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Sunil<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
</div>
</body>
</html>