IDPv3 with ADFSv3 proxy
Christopher Bland
chris at fdu.edu
Fri Aug 16 08:47:08 EDT 2019
Hi All,
I have a legacy ADFSv3 server which proxies Office365. After switching over to my new IDP (v3.4.4) I find I am having an issue with application based authentication. I seems that when I login to the web interface the AuthnRequest look like this
<?xml version="1.0" encoding="UTF-8"?>
<samlp:AuthnRequest
Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
Destination="https://idp.fdu.edu/idp/profile/SAML2/Redirect/SSO"
ID="id-2333c098-3bce-42fe-9a31-1bcddb688e92"
IssueInstant="2019-08-16T10:05:32.091Z" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">http://sso.fdu.edu/adfs/services/trust</Issuer>
<samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
</samlp:AuthnRequest>
However, when Word, Excel, Teams, etc.. try to log in it looks like this
<samlp:AuthnRequest
Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
Destination="https://idp.fdu.edu/idp/profile/SAML2/Redirect/SSO"
ForceAuthn="true" ID="id-4f135dfe-dfbd-4bb4-8a22-78cfac58b6a9"
IssueInstant="2019-08-16T08:21:25.632Z" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">http://sso.fdu.edu/adfs/services/trust</Issuer>
<samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
<samlp:RequestedAuthnContext>
<samlp:AuthnContextClassRef xmlns:samlp="urn:oasis:names:tc:SAML:2.0:assertion">http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password</samlp:AuthnContextClassRef>
</samlp:RequestedAuthnContext>
</samlp:AuthnRequest>
Which causes my IDP to - DEBUG [net.shibboleth.idp.authn.impl.SelectAuthenticationFlow:408] - Profile Action SelectAuthenticationFlow: Forced authentication requested, selecting an inactive flow
I have read a few posts and looked at the v2 MicrosoftInterop<https://wiki.shibboleth.net/confluence/display/SHIB2/MicrosoftInterop> docs where the solution was to create a handler just for ADFS. On person posted changing the Password handler like this as to add the context but Scott noted “that would make it the *only* method”.
<bean id="authn/Password" parent="shibboleth.AuthenticationFlow"
p:passiveAuthenticationSupported="true"
p:forcedAuthenticationSupported="true" >
<property name="supportedPrincipals">
<list>
<bean parent="shibboleth.SAML2AuthnContextClassRef"
c:classRef="http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password" />
</list>
</property>
</bean>
In a similar post where the poster was dealing with MFA the poster referenced the v2 MicrosoftInterop doc and not wanting to create a sperate handler. In that thread Scott posted
I haven't done that, and I haven't supported any of their made up attributes. It's been pretty much vanilla integrations for me on campus. I also have a variety of vendors using ADFS and none of them have ever issued requests with a non-standard context class.
Basically, you can treat ADFS like any other SP for the most part.
So my question is this: in the AuthenticationFlowSelection<https://wiki.shibboleth.net/confluence/display/IDP30/AuthenticationFlowSelection> doc it mentions in the Comparison Configuration section that I can ignore context. Is the best method to deal with this to. create a ignore rule like below and does it work like I think it does and turns my application based AuthnRequest into regular authn/Password requests?
<util:list id="shibboleth.IgnoredContexts">
<value>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</value>
<value> http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password </value>
</util:list>
What are other institutions doing?
-Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20190816/fd814eff/attachment.html>
More information about the users
mailing list