<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 14 (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;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
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="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Nate,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Thanks for the response.&nbsp; Fortunately, in this case the external authentication engine is running on the same system as the IdP.&nbsp; As you cited, our web app
 is running in apache that is bridged to a tomcat server via AJP running the IdP.&nbsp; Unfortunately though, our authentication engine is implemented in PHP and therefore we cannot use the AuthenticationEngine-&gt;returnToAuthenticationEngine nor can we redirect the
 user back to the AuthenticationEngine servlet with the principal_name as part of the query string.&nbsp; It appears the AuthenticationEngine expects these values to be set via the setAttribute method of the HttpServletRequest class.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">The next approach I am going to take is proxying communcation to our external authentication engine via servlet running in the container.&nbsp; The Idp will forward
 external authentication requests to this servlet, which will convert the request attributes to a query string and forward the request to our PHP authentication engine.&nbsp; Our authentication engine on completion will return the result back to the servlet, which
 will set the results as attributes on the HttpServletReqest, then complete the authentication by invoking AuthenticationEngine-&gt; returnToAuthenticationEngine.&nbsp;&nbsp; Is this the correct approach conforming to the intended usage of the ExternalAuthentication handler?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Thanks,<br>
<br>
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Nicholas<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> users-bounces@shibboleth.net [mailto:users-bounces@shibboleth.net]
<b>On Behalf Of </b>Nate Klingenstein<br>
<b>Sent:</b> Monday, December 23, 2013 8:15 PM<br>
<b>To:</b> Shib Users<br>
<b>Subject:</b> Re: ExternalAuth<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Nick, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">I can't answer this one for certain but I believe ExternalAuth implies that the external authentication system has to be part of the same web environment as the IdP rather than requiring that it run in the same container(e.g. Apache -&gt;
 AJP -&gt; Tomcat, with the authentication mechanism sitting in Apache). &nbsp;This is true of at least REMOTE_USER based login.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Anything that involves one system making authentication queries out to an entirely separate system is basically building a custom SSO protocol with all the security that must come with it. &nbsp;That can be done, of course, but it's easy to
 make implementation mistakes that become security vulnerabilities, and it's not something that Extternal Auth was trying to achieve with its much simpler set of parameters.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Hope I got it right,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Nate.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div>
<p class="MsoNormal">On Dec 23, 2013, at 4:02 PM, Nick Amon &lt;<a href="mailto:namon@xceedium.com">namon@xceedium.com</a>&gt;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp;wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">I would like to integrate Shibboleth 2.4 with the authentication engine of our existing application.&nbsp; I have determined from the documentation that this is doable with the
 ExternalAuthn LoginHandler but it appears that the external authentication system must&nbsp; be Java based (i.e. a servlet) and that it is running in the same container.&nbsp; Our authentication engine is running in Apache has a PHP application.&nbsp; Would I still be able
 to use the ExternAuthn handler to forward authentication requests to it?&nbsp; How would I return control pack to the AuthEngine, by redirecting the user back to the AuthEngine URL along w/ the required authentication result parameters?</span><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</body>
</html>