Shib IdP Proxying to another IdP help

Brent Goebel Brent.Goebel at du.edu
Tue Feb 22 17:29:58 UTC 2022


Hello,

I’m working on having my Shibboleth IdP v4.0.1 absolve to another IdP (let’s call it IdP-NEW) for authentication. Therefore any applications/sites using my Shib-IdP for authentication will now absolve to IdP-NEW for authentication.

I followed this document on how to do this: https://shibboleth.atlassian.net/wiki/spaces/KB/pages/1459979597/Using+SAML+Proxying+to+another+IdP

Some good progress was made but I hit a wall. When IdP-NEW hands the attributes off to Shib-IdP it appears to get stuck here. It’s not taking these.

The workflow that works:  You go to the URL for the Shibboleth IdP enabled application that then redirects to IdP-NEW IdP for login. Once authentication there happens with the attributes set in the IdP-NEW relying party, we see that being passed back over to Shibboleth IdP. Shibboleth IdP doesn’t appear to be translating or sending those attributes it got from IdP-NEW along over to the application.

I tried doing some additional testing and looking at different documents and haven’t been able to find what is missing. What needs to be done to have the Shib-IdP to accept that attributes from IdP-NEW and then pass those along to the application to complete authentication?

Here are the changes I made to configure and enable it, please let me know what I am missing:


  1.  Uncomment the discoveryFunction and edit the target to match the entityID of IdP-NEW.
…/conf/authn/ saml-authn-config.xml
    <bean id="shibboleth.authn.SAML.discoveryFunction" parent="shibboleth.Functions.Constant"
        c:target={IdP-NEW-entityID} />


  1.  Add attribute filter entry for IdP-NEW


  1.  Add entry to the attribute-resolver. This will transform the uid attribute from the Subject (the filtered data from the incoming assertion) into a proxied-uid attribute for use elsewhere:
                                   <AttributeDefinition xsi:type="SubjectDerivedAttribute"
                                      forCanonicalization="true"
principalAttributeName="uid"  id="proxied-uid"  />



  1.  Set the AttributesToResolve in c14n/attribute-sourced-subject-c14n-config.xml to the 'proxied-uid' attribute created.  Added a AttributeSourceIds  as well.


    <util:list id="shibboleth.c14n.attribute.AttributesToResolve">

        <value>proxied-uid</value>

    </util:list>



    <util:list id="shibboleth.c14n.attribute.AttributeSourceIds">

        <value>proxied-uid</value>

    </util:list>


  1.  Updated idp-metadata.xml to have it serve as an SP as well. Referring to what it noted under Preparation on this document: https://shibboleth.atlassian.net/wiki/spaces/KB/pages/1459979597/Using+SAML+Proxying+to+another+IdP#UsingSAMLProxyingtoanotherIdP-Preparation which was just adding the <SPSSODescriptor>  details with the certificates and AssertionConsumerService URL.



  1.  In general-authn.xml uncommented this:

        <bean id="authn/SAML" parent="shibboleth.AuthenticationFlow"

            p:nonBrowserSupported="false"

            p:passiveAuthenticationSupported="true"

            p:forcedAuthenticationSupported="true"

            p:proxyScopingEnforced="true"

            p:discoveryRequired="true" />


  1.  In idp.properties file updated the workflow to SAML

idp/authn/flows=SAML





Thanks,


Brent Goebel
Systems Engineer III
Information Technology ‖  University of Denver

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20220222/c3911d19/attachment.htm>


More information about the users mailing list