Juniper Secure Access as a Shib/SAML SP

Paul Riddle paulr at umbc.edu
Fri Apr 19 16:11:33 EDT 2013


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> 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/20130419/0013e1ac/attachment.html 


More information about the users mailing list