Franchise access being authenticated by our Shibboleth IdP

Keith Carr kecarr at sgul.ac.uk
Thu Feb 23 10:39:54 GMT 2012


On 23/02/12, Peter Schober  <peter.schober at univie.ac.at> wrote:
> * Keith Carr <kecarr at sgul.ac.uk> [2012-02-23 02:28]:
> > Two different users in two separate notes/leaves of LDAP would only
> > tell you to which group of users the user belonged.
> 
> Based on what you write the granularity is "franchise", not individual
> users. So identifying the franchise based on "data"/"metadata" of the
> subject could replace the database tables, IMO.
> 
This is quite correct; granularity is based on "franchise" - but I am using an LDAP attribute to identify to which franchise they belong, not the database.

    <resolver:AttributeDefinition id="shibbolethset"
                                  xsi:type="Simple"
                                  xmlns="urn:mace:shibboleth:2.0:resolver:ad"
                                  sourceAttributeID="shibbolethset"
                                  dependencyOnly="true">

        <resolver:Dependency ref="myLDAP" />

        <resolver:AttributeEncoder xsi:type="SAML1String"
                                   xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
                                   name="shibbolethset" />
        <resolver:AttributeEncoder xsi:type="SAML2String"
                                   xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
                                   name="shibbolethset"
                                   friendlyName="shibbolethset" />
    </resolver:AttributeDefinition>

The database is used purely to identify if the particular "franchise" (group) has access to the resource being requested. So it is saying for a request for resource (SP) "1" franchise_a has access but franchise_b does not. Then for resource "2" franchise_a has access and so does franchise_b.

> 
> 
> > Since those two users (in separate notes/leaves) may or may not have
> > access to a particular resource (SP) I would have to write
> > JavaScript to assertain whether the notes/leaves had access to a
> > resource. Multiply this by ten, or one hundred resources (SP's) and
> > the JavaScript starts to become very hard to maintain due to it's
> > size.
> 
> That's why I mentioned the mapped attribute defintion. I would
> probably assign an attribute identifying the franchise in the script,
> 
This is what I was proposing with:

    <resolver:AttributeDefinition id="requestEnt"
                                  xsi:type="Simple"
                                  xmlns="urn:mace:shibboleth:2.0:resolver:ad"
                                  sourceAttributeID="requestEnt"
                                  dependencyOnly="true">

        <resolver:AttributeEncoder xsi:type="SAML1String"
                                   xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
                                   name="requestEnt" />
        <resolver:AttributeEncoder xsi:type="SAML2String"
                                   xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
                                   name="requestEnt"
                                   friendlyName="requestEnt" />

        <Script>
        <![CDATA[
            importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);
            if (requestEnt == null) {
                requestEnt = new BasicAttribute("requestEnt");
            }

            requester = requestContext.inboundMessageIssuer;
            requestEnt.getValues().add(requester);
        ]]>
        </Script>
    </resolver:AttributeDefinition>

> 
> and in a seperate attribute create all the necessary entitlements
> based on that franchise attribute. That's not expected to grow
> unweildly soon, as for each "SourceValue" (the franchise) you'll have
> several ReturnValues (e.g. entitlements or whatever), one per line.
> 
I'm not sure I understand what you mean here?

> 
> 
> Anyway I just though I'll mention the possibility of reusing existing
> information instead of setting up yet another repository of data that
> needs to be managed somehow (sync'ed from a SOR or providing
> management interfaces for the people managing contracts, etc.).
> 
Yes I totally agree - I would rather reuse existing information where it exists.

> 
> If I'd create such a system for grants/permissions I'd certainly
> want to design it to be granular to each netid/subject, and also
> factor group memberships and/or other organizational data into its
> (calculated) output. Just my 2¢.
> -peter
> 
Your input is much appreciated.
-Keith

> 
> --
> To unsubscribe from this list send an email to users-unsubscribe at shibboleth.net
> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://shibboleth.net/pipermail/users/attachments/20120223/80d38d84/attachment-0001.html 


More information about the users mailing list