Providing ldap group names as an attribute revisited
Farrukh Najmi
farrukh at wellfleetsoftware.com
Fri Jun 14 12:36:31 EDT 2013
Hi David,
Thanks for your patient help with this thread. I am still struggling
with this due to my lack of familiarity with LDAP.
Here is how I define LDAP entries in my users.ldif file now. It defines
two persons (Joe and Jane), defines a groupOfNames for role Developer
and finally assigns Joe and Jane as members of the group Developer.
#groups definition
dn: ou=groups,dc=springframework,dc=org
objectclass: top
objectclass: organizationalUnit
ou: groups
#people definition
dn: ou=people,dc=springframework,dc=org
objectclass: top
objectclass: organizationalUnit
ou: people
#person Joe Developer1 definition
dn: uid=Developer1,ou=people,dc=springframework,dc=org
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Joe Developer1
sn: Developer1
uid: Developer1
userPassword: 123456
#person Jane Developer2 definition
dn: uid=Developer2,ou=people,dc=springframework,dc=org
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Jane Developer2
sn: Developer2
uid: Developer2
userPassword: abcdefg
#Role Developer definition
dn: cn=urn:test:Role:Developer,ou=groups,dc=springframework,dc=org
objectclass: top
objectclass: groupOfNames
cn: urn:test:Role:Developer
member: uid=*Developer1*,ou=people,dc=springframework,dc=org
member: uid=Developer2,ou=people,dc=springframework,dc=org
#Role Manager definition
dn: cn=urn:test:Role:Manager,ou=groups,dc=springframework,dc=org
objectclass: top
objectclass: groupOfNames
cn: urn:test:Role:Manager
member: uid=*Developer1*,ou=people,dc=springframework,dc=org
When I login with IdP using Developer1 credentials, I would like the
resulting <saml2:Assertion> to contain the cn (preferred) or dn of the
groupOfNames that Developer1 is a member of.
<saml2:AttributeStatement>
<saml2:Attribute FriendlyName="uid"
Name="urn:oid:0.9.2342.19200300.100.1.1"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml2:AttributeValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">Developer1</saml2:AttributeValue>
</saml2:Attribute>
<saml2:Attribute FriendlyName="isMemberOf"
Name="urn:oid:1.3.6.1.4.1.5923.1.5.1.1"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml2:AttributeValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">*urn:test:Role:Developer*</saml2:AttributeValue>
<saml2:AttributeValue
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">*urn:test:Role:Manager*</saml2:AttributeValue>
</saml2:Attribute>
</saml2:AttributeStatement>
I am quite unclear on how Shib2 IdP configurations in
attribute-resolver.xml works in order to extract attributes as shown above.
What is making this hard is that there seems to be a join (using
relational term) between groupOfNames and person
I would be grateful if you can suggest how I modify my
<resolver:DataConnector> and <resolver:AttributeDefinition> (see below)
to extract the attributes as shown above?
Thanks again for all your kind help.
<resolver:AttributeDefinition xsi:type="ad:Simple" id="uid"
sourceAttributeID="uid">
<resolver:Dependency ref="myLDAP" />
<resolver:AttributeEncoder xsi:type="enc:SAML2String"
name="urn:oid:0.9.2342.19200300.100.1.1" friendlyName="uid" />
</resolver:AttributeDefinition>
<resolver:AttributeDefinition xsi:type="ad:Simple" id="email"
sourceAttributeID="mail">
<resolver:Dependency ref="myLDAP" />
<resolver:AttributeEncoder
xsi:type="enc:SAML2String"
name="urn:oid:0.9.2342.19200300.100.1.3"
friendlyName="mail" />
</resolver:AttributeDefinition>
<resolver:AttributeDefinition id="isMemberOf" xsi:type="Simple"
xmlns="urn:mace:shibboleth:2.0:resolver:ad"
sourceAttributeID="member">
<resolver:Dependency ref="ldapGroups" />
<resolver:AttributeEncoder xsi:type="SAML2String"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
name="urn:oid:1.3.6.1.4.1.5923.1.5.1.1" friendlyName="isMemberOf" />
</resolver:AttributeDefinition>
<resolver:DataConnector id="myLDAP" xsi:type="dc:LDAPDirectory"
ldapURL="ldap://wellfleet1.wellfleetsoftware.com:10389/"
baseDN="dc=springframework,dc=org"
principal="uid=admin,ou=system"
principalCredential="ldap1"
>
<dc:FilterTemplate>
<![CDATA[
(uid=$requestContext.principalName)
]]>
</dc:FilterTemplate>
</resolver:DataConnector>
<resolver:DataConnector id="ldapGroups" xsi:type="dc:LDAPDirectory"
ldapURL="ldap://wellfleet1.wellfleetsoftware.com:10389/"
baseDN="dc=springframework,dc=org"
principal="uid=admin,ou=system"
principalCredential="ldap1"
maxResultSize="500"
mergeResults="true">
<dc:FilterTemplate>
<![CDATA[
(&(objectclass=groupOfNames)(member=uid=$requestContext.principalName,ou=people,dc=springframework,dc=org))
]]>
</dc:FilterTemplate>
</resolver:DataConnector>
--
Regards,
Farrukh Najmi
Web:http://www.wellfleetsoftware.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://shibboleth.net/pipermail/users/attachments/20130614/6754175b/attachment.html
More information about the users
mailing list