<div dir="ltr"><div dir="ltr">That reuseCondition script definitely helped! I'm no longer getting the error.<input name="virtru-metadata" type="hidden" value="{"email-policy":{"disableCopyPaste":false,"disablePrint":false,"disableForwarding":false,"enableNoauth":false,"expandedWatermarking":false,"expires":false,"sms":false,"expirationNum":1,"expirationUnit":"days","isManaged":false,"persistentProtection":false},"attachments":{},"compose-id":"41","compose-window":{"secure":false}}"><div>We will be doing extensive testing of this. I'll send updates if we find anything.</div><div><br></div><div>Many thanks!</div><div><br></div><div>Joanne</div><div><br></div><div>---</div><div><br></div><div><div dir="ltr">Joanne Schwendner</div><div dir="ltr">Identity Services</div><div dir="ltr">Office of Information Technology</div><div dir="ltr">Brown University</div><div dir="ltr"><br style="color:rgb(32,33,36)"></div></div></div><br><div class="gmail_quote" style=""><div dir="ltr" class="gmail_attr">On Fri, Sep 20, 2024 at 11:47 AM Cantor, Scott via users <<a href="mailto:users@shibboleth.net" target="_blank">users@shibboleth.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Ok, I think the problem is my example isn't complete, I seem to have missed a piece.<br>
<br>
I haven't 100% satisfied myself that I'm not overlooking something but I don't think it works if you don't supply a special condition to guard Duo reuse.<br>
<br>
My bean is the basic one that would be expected for the MFA flow approach, which checks that reuse only happens if the original result satisifies the new request.<br>
<br>
Put the script bean at the end into global.xml and then set the property in duo-oidc.properties:<br>
<br>
idp.authn.DuoOIDC.reuseCondition = my.DuoOIDCReuseCondition<br>
<br>
That needs to be cleaned up and made simpler but I haven't had time to revisit it. The MFA flow does very little "extra" checking when you tell it to run something and it has a result to reuse, it just relies on the condition you can attach for now. It's designed to be a sharp knife and is a bit too sharp at the moment.<br>
<br>
I'll get it added to the REFEDS article.<br>
<br>
-- Scott<br>
<br>
<bean id="my.DuoOIDCReuseCondition" parent="shibboleth.Conditions.Scripted" factory-method="inlineScript"><br>
<constructor-arg><br>
<value><br>
<![CDATA[<br>
var reuse = false;<br>
var authnCtx = input.getSubcontext("net.shibboleth.idp.authn.context.AuthenticationContext");<br>
if (authnCtx != null) {<br>
var mfaCtx = authnCtx.getSubcontext("net.shibboleth.idp.authn.context.MultiFactorAuthenticationContext");<br>
if (mfaCtx != null) {<br>
var active = mfaCtx.getActiveResults().get("authn/DuoOIDC");<br>
if (active != null) {<br>
reuse = authnCtx.isAcceptable(active);<br>
}<br>
}<br>
}<br>
reuse;<br>
]]><br>
</value><br>
</constructor-arg><br>
</bean><br>
<br>
<br>
<br>
-- <br>
For Consortium Member technical support, see <a href="https://shibboleth.atlassian.net/wiki/x/ZYEpPw" rel="noreferrer" target="_blank">https://shibboleth.atlassian.net/wiki/x/ZYEpPw</a><br>
To unsubscribe from this list send an email to <a href="mailto:users-unsubscribe@shibboleth.net" target="_blank">users-unsubscribe@shibboleth.net</a><br>
</blockquote></div>
</div>