Juniper Secure Access as a Shib/SAML SP

Patrick Le ple at jhmi.edu
Tue Apr 23 11:13:52 EDT 2013


Thanks Paul! That did the trick.

Another question, do you know if it's then possible for Juniper to take the username from Shib and then query  LDAP on the backend for groups that user is a member of in order to determine authorization? We currently have Juniper using straight Active Directory authentication where permissions are controlled by AD groups. We want to use SAML/Shib for the authentication but keep AD as the source for user group authorizations and permissions.

Thanks

Patrick

From: users-bounces at shibboleth.net [mailto:users-bounces at shibboleth.net] On Behalf Of Paul Riddle
Sent: Friday, April 19, 2013 4:12 PM
To: Shib Users
Subject: Re: Juniper Secure Access as a Shib/SAML SP

Sorry for the previous incomplete message.  I hit "send" by mistake.

On Thu, Apr 18, 2013 at 7:50 PM, Patrick Le <ple at jhmi.edu<mailto:ple at jhmi.edu>> wrote:
Does anyone have any experience integrating SAML 2.0 authentication against Juniper Secure Access with Shibboleth as the IDP?

Yes, we're doing this.


I'm having issues getting the Juniper appliance to pick up the userID from the attribute assertion. On the juniper appliance under the "Auth Server" configuration page, there is a "User Name Template" field where you're supposed to define the attribute name for the userID. Examples given by juniper are:

Example: <assertionNameDN.uid>, uid from X509SubjectName.
The entire assertion name identifier if not specified; Or
<userAttr.attr>, attr from AttributeStatement attributes.


I first tried to leave the field blank so that it gets the name identifier from the entire assertion. That allows me to login, but the UserID from the juniper logs is some random string of numbers which means nothing to us because we can't correlate that back to an actual user. I tried various other methods like:

I tried all of this too.  Never got attributes to work.  The only way I got it to work was to use the Name Identifier.  In that case, you'll want to leave the "User Name Template" field blank.
Do you have a "release transient ID to anybody" rule somewhere in your attribute-filter.xml?  If so, you need to exclude the VPN, or it will populate NameID with the aforementioned random string of numbers.  You'd want to modify your release rule to look something like this:

    <AttributeFilterPolicy id="releaseTransientIdToAnyone">
        <PolicyRequirementRule xsi:type="basic:NOT">
            <basic:Rule xsi:type="basic:OR">
                <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://newvpn.umbc.edu/dana-na/auth/saml-endpoint.cgi?p=sp1" />
                <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://vpn.umbc.edu/dana-na/auth/saml-endpoint.cgi?p=sp1" />
            </basic:Rule>
        </PolicyRequirementRule>

        <AttributeRule attributeID="transientId">
            <PermitValueRule xsi:type="basic:ANY" />
        </AttributeRule>

    </AttributeFilterPolicy>
Then, in attribute-resolver.xml, you need to set a definition up that encodes your user ID as a SAML2 Name Identifier:

    <resolver:AttributeDefinition id="uidAsNameIdentifier"
        xsi:type="Simple"
        xmlns="urn:mace:shibboleth:2.0:resolver:ad">
        <resolver:Dependency ref="uid" />

        <resolver:AttributeEncoder xsi:type="SAML2StringNameID" xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
            nameFormat="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
    </resolver:AttributeDefinition>
Then in attribute-filter.xml, just set up a release rule:

    <AttributeFilterPolicy id="VPN">
        <PolicyRequirementRule xsi:type="basic:OR">
            <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://newvpn.umbc.edu/dana-na/auth/saml-endpoint.cgi?p=sp1" />
            <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://vpn.umbc.edu/dana-na/auth/saml-endpoint.cgi?p=sp1" />
        </PolicyRequirementRule>

        <AttributeRule attributeID="uidAsNameIdentifier">
            <PermitValueRule xsi:type="basic:ANY" />
        </AttributeRule>
    </AttributeFilterPolicy>



Juniper support has been less than helpful, so I'm hoping I'll get better luck on the shib users list.
If you need any further help setting up the Juniper side of things, feel free to drop me an email.  I have lots of notes.
Hope this helps,
Paul
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://shibboleth.net/pipermail/users/attachments/20130423/2ff361aa/attachment.html 


More information about the users mailing list