<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=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;}
@font-face
{font-family:"Times New Roman \(Body CS\)";
panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:Menlo;
panose-1:2 11 6 9 3 8 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:"Consolas",serif;}
span.gmail-code-quote
{mso-style-name:gmail-code-quote;}
span.EmailStyle21
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;
font-weight:normal;
font-style:normal;}
p.p1, li.p1, div.p1
{mso-style-name:p1;
margin:0in;
font-size:8.5pt;
font-family:Menlo;
color:black;}
span.s1
{mso-style-name:s1;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@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="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="p1"><span style="font-size:9.0pt;font-family:"Arial",sans-serif">Hi Jeff,<o:p></o:p></span></p>
<p class="p1"><span style="font-size:9.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="p1"><span style="font-size:9.0pt;font-family:"Arial",sans-serif">In <span class="s1">
authn/mfa-authn-config.xml, have you set the flow to use DuoOIDC?</span><o:p></o:p></span></p>
<p class="p1"><span class="s1"><span style="font-size:9.0pt;font-family:"Arial",sans-serif">nextFlow = "authn/DuoOIDC";</span></span><span style="font-size:9.0pt;font-family:"Arial",sans-serif"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="p1"><span class="s1"><span style="font-size:9.0pt;font-family:"Arial",sans-serif">Hong</span></span><span style="font-size:9.0pt;font-family:"Arial",sans-serif"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">users <users-bounces@shibboleth.net> on behalf of Jeff Chapin via users <users@shibboleth.net><br>
<b>Date: </b>Wednesday, January 18, 2023 at 10:58 AM<br>
<b>To: </b>Shib Users <users@shibboleth.net><br>
<b>Cc: </b>Jeff Chapin <jeff.chapin@uni.edu><br>
<b>Subject: </b>Shibboleth 4.2.1 and Duo with Nimbus Client issues<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal">All,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I am in the process of installing Shibboleth 4.2.1, and I am attempting to configure Duo (via the Nimbus client), and I am running into issues. <br>
<br>
I have installed the module, and I have configured a custom Http Client to work with out outbound proxy. I *appear* to be communicating with Duo, but I am getting the following error from Duo in response to the health check:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<pre style="background:#F4F5F7;max-height:30em;white-space:pre-wrap;overflow:auto"><span style="font-size:9.0pt;color:#172B4D">2023-01-12 13:48:57,330 - 10.1.142.23 - DEBUG [org.apache.http.wire:87] - http-outgoing-0 << </span><span class="gmail-code-quote"><span style="font-size:9.0pt;color:#009100">"{"</span></span><span style="font-size:9.0pt;color:#172B4D">stat</span><span class="gmail-code-quote"><span style="font-size:9.0pt;color:#009100">": "</span></span><span style="font-size:9.0pt;color:#172B4D">FAIL</span><span class="gmail-code-quote"><span style="font-size:9.0pt;color:#009100">", "</span></span><span style="font-size:9.0pt;color:#172B4D">code</span><span class="gmail-code-quote"><span style="font-size:9.0pt;color:#009100">": 40002, "</span></span><span style="font-size:9.0pt;color:#172B4D">timestamp</span><span class="gmail-code-quote"><span style="font-size:9.0pt;color:#009100">": 1673552937, "</span></span><span style="font-size:9.0pt;color:#172B4D">message</span><span class="gmail-code-quote"><span style="font-size:9.0pt;color:#009100">": "</span></span><span style="font-size:9.0pt;color:#172B4D">invalid_client</span><span class="gmail-code-quote"><span style="font-size:9.0pt;color:#009100">", "</span></span><span style="font-size:9.0pt;color:#172B4D">message_detail</span><span class="gmail-code-quote"><span style="font-size:9.0pt;color:#009100">": "</span></span><span style="font-size:9.0pt;color:#172B4D">Failed to verify signature.</span><span class="gmail-code-quote"><span style="font-size:9.0pt;color:#009100">"}"</span></span><span style="font-size:9.0pt;color:#172B4D"><o:p></o:p></span></pre>
</div>
<div>
<p class="MsoNormal"><br>
This leads me to believe that we are correctly contacting Duo -- but it does not like what we are sending. <br>
<br>
My duo-oidc.properties contains:<o:p></o:p></p>
</div>
<blockquote style="margin-left:30.0pt;margin-right:0in">
<div>
<p class="MsoNormal">idp.duo.oidc.apiHost = <a href="http://api-REDACTED.duosecurity.com">
api-REDACTED.duosecurity.com</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">idp.duo.oidc.clientId = DREDACTEDA<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">idp.duo.oidc.redirectURL = <a href="https://REDACTED.uni.edu/idp/profile/Authn/Duo/2FA/duo-callback">
https://REDACTED.uni.edu/idp/profile/Authn/Duo/2FA/duo-callback</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">idp.duo.oidc.audit.enabled = true<br>
<br>
<o:p></o:p></p>
</div>
</blockquote>
<div>
<div>
<p class="MsoNormal">My secret.properties contains:<o:p></o:p></p>
</div>
</div>
<blockquote style="margin-left:30.0pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal">idp.duo.oidc.secretKey = 9REDACTEDX<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</blockquote>
<p class="MsoNormal">I have confirmed that the clientID and the secretKey match the Client ID and Client Secret in the Duo control panel, and that the Universal Prompt is enabled for this pool. <br>
<br>
<br>
We have MFA set in our idp.properties:<o:p></o:p></p>
<blockquote style="margin-left:30.0pt;margin-right:0in">
<div>
<p class="MsoNormal">idp.authn.flows= MFA<o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">and we are specifying nextFlow = "authn/DuoOIDC"; in our checkSecondFactor script, so it should be using this config.<br>
<br>
This brings me to my questions:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">1) Is there anything obvious I am overlooking?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">2) Is there any way to crank up the logging for net.shibboleth.idp.plugin.authn.duo.nimbus so that I can see what clientID we are sending to Duo? If we are pulling that value from somewhere else, seeing what is sent would help locate *where*<br>
<br>
Thanks for your time,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Jeff<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<div>
<div>
<div>
<pre>Jeff Chapin,<o:p></o:p></pre>
<p class="MsoNormal">Panther eSports Adviser <br>
Systems/Applications Administrator<br>
ITS-IS, University of Northern Iowa<br>
Phone: 319-273-3162 Email: <a href="mailto:Jeff.Chapin@uni.edu" target="_blank">Jeff.Chapin@uni.edu</a>
<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>