All About Attributes (in federated identity) Nate Klingenstein [email protected] 30 January 2007 OGF...

22
All About Attributes All About Attributes (in federated identity) Nate Klingenstein [email protected] 30 January 2007 OGF 19 Chapel Hill

Transcript of All About Attributes (in federated identity) Nate Klingenstein [email protected] 30 January 2007 OGF...

Page 1: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

All About AttributesAll About Attributes

(in federated identity)

Nate [email protected]

30 January 2007

OGF 19 Chapel Hill

Page 2: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

All About Attributes

• Origination

• Transformation

• Transport

• Consumption

• Practical Guidelines

Page 3: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

What’s an Attribute?

• Most attributes are atoms of information– At least one name

• Sometimes more…• Often unique per protocol

– At least one value• Sometimes more…

– May include other bits, like scope or nesting

• Practically anything can be stuffed into this structure– But all parties need to understand it

• The data surrounding an attribute are as important as the attribute itself

Page 4: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Some Useful Attributes

• CN(common name): Nate Klingenstein• DN(distinguished name): C=, O=, OU=…• eduPerson(Scoped)Affiliation: student,

staff, faculty, etc. (@supervillain.edu)• eduPersonPrincipalName:

[email protected]• eduPersonEntitlement:

urn:mace:dir:entitlement:common-lib-terms– Groups– Privileges

• Email: [email protected]

Page 5: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Who Makes Attributes?

• X.520• eduPerson (MACE/Internet2/EDUCAUSE)• Your applications• Your favorite corporate suite• Your friendly local federation• Your service provider• Your identity provider• You?

Page 6: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

An Attribute by any other Name…

eduPersonAffiliation: staff

1.3.6.1.4.1.5923.1.1.1.10: staff

https://middleware.internet2.edu/attributes/eduPerson/eduPersonAffiliation: staff

urn:mace:dir:attribute-def:eduPersonScopedAffiliation: [email protected]

Page 7: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

An Attribute by any other Name…

<saml:Attribute xmlns:xacmlprof="urn:oasis:names:tc:SAML:2.0:profiles:attribute:XACML"

xmlns:ldapprof="urn:oasis:names:tc:SAML:2.0:profiles:attribute:LDAP"

xacmlprof:DataType="http://www.w3.org/2001/XMLSchema#string”

ldapprof:Encoding="LDAP" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" Name="urn:oid:2.5.4.42" FriendlyName="givenName"> <saml:AttributeValue xsi:type="xs:string">

By-Tor</saml:AttributeValue>

</saml:Attribute>

Page 8: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

In the Beginning…

• Attributes originate at a system of record– Database, directory, student information

system, virtual organization, etc.– The ultimate (digital) authority

• Everything really starts with people– I&A– Credentialing– Data entry– Governments, corporations, organizations,

other users, self-asserted, etc.

Page 9: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

At the End

• Everything distills to an action by the SP

• Final attribute format desired may vary– Set of name/value pairs– Boolean– Something more complicated

• XACML?• Structured XML?

• Issuance information required may vary

• The SP is always a PDP and the PEP– And has ultimate control

Page 10: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

How Applications Get Them

• Shibboleth 1.3– Individual attributes exported as HTTP Header

variables according to AAP.xml– Attribute assertion may also be exported

• Shibboleth 2.0– Apache SP

• Individual attributes exported as subprocess environment variables according to…?

• Assertions available through (chunking? Localhost?)

– Java SP• Individual attributes and assertions stored as attributes of the

session object

• Commercial product approaches will vary

Page 11: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

What’s in Between?

• Issuers and Consumers• Assertions

– Attributes can be contained in and depend on them– Provide context and meaning for attributes

• Authentication– Both end user and server– Relative, not absolute

• Protocols, Bindings, Requests/Queries• All to support movement, transformation, and use

by the SP from the system of record

Page 12: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

SAML 1.1 Attribute Assertion

<Response xmlns="urn:oasis:names:tc:SAML:1.0:protocol" InResponseTo="_b9d9777ac0b78d5b3b820e1eef63e275" IssueInstant="2007-01-29T19:20:05.716Z" MajorVersion="1" MinorVersion="1" ResponseID="_ba0e957d89d6f63ec8154ab962183eb4" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Status><StatusCode Value="samlp:Success"/></Status><Assertion xmlns="urn:oasis:names:tc:SAML:1.0:assertion" AssertionID="_631d3b6cd865fa9cd5b101899fa8e157" IssueInstant="2007-01-29T19:20:05.716Z" Issuer="https://idp.testshib.org/shibboleth/testshib/idp" MajorVersion="1" MinorVersion="1"><Conditions NotBefore="2007-01-29T19:20:05.716Z" NotOnOrAfter="2007-01-29T19:50:05.716Z"><AudienceRestrictionCondition><Audience>https://sp.testshib.org/shibboleth/testshib/sp</Audience><Audience>urn:mace:shibboleth:testshib</Audience></AudienceRestrictionCondition></Conditions><AttributeStatement><Subject><NameIdentifier Format="urn:mace:shibboleth:1.0:nameIdentifier" NameQualifier="https://idp.testshib.org/shibboleth/testshib/idp">_9a46e887ae1bad9d81e25a8b1b12d819</NameIdentifier></Subject><Attribute AttributeName="urn:mace:dir:attribute-def:eduPersonEntitlement" AttributeNamespace="urn:mace:shibboleth:1.0:attributeNamespace:uri"><AttributeValue>urn:mace:dir:entitlement:common-lib-terms</AttributeValue></Attribute><Attribute AttributeName="urn:mace:dir:attribute-def:eduPersonScopedAffiliation" AttributeNamespace="urn:mace:shibboleth:1.0:attributeNamespace:uri"><AttributeValue Scope="testshib.org">Member</AttributeValue></Attribute><Attribute AttributeName="urn:mace:dir:attribute-def:eduPersonAffiliation" AttributeNamespace="urn:mace:shibboleth:1.0:attributeNamespace:uri"><AttributeValue>Member</AttributeValue></Attribute><Attribute AttributeName="urn:mace:dir:attribute-def:eduPersonPrincipalName" AttributeNamespace="urn:mace:shibboleth:1.0:attributeNamespace:uri"><AttributeValue Scope="testshib.org">myself</AttributeValue></Attribute></AttributeStatement></Assertion></Response>

Page 13: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Sometimes also in between: Third Parties

• Many forms already on campus; when it’s all in the family, it’s just metadirectories & provisioning– Data Warehousing– Central Directories/Databases

• Proxies– What NAT’s do for IP…

• Portals• Scope vs. Issuer• ID-WSF

– Attribute aggregation– Delegation– Client issuance

• Provider/User Agent Convergence

Page 14: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Conservation of Information

• Information is inevitably destroyed– Where did this attribute originate?– What chain did it traverse to get to me?– Who was trusted along the way?– What other parameters is this attribute based

upon?• Successful user authentication• Successful server authentication

• Privacy and secrecy vs. knowledge– Your use cases may vary, but you should

know how much you know

Level of Assurance Grist

Page 15: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Practical Approach

1. Determine who needs to know what, who can say what, and what can’t be revealed• Metadata can help

2. Decide on common protocols & bindings3. Check whether someone has already

defined an attribute name/value space that meets your needs

4. If so, use it; if not, name your attribute wisely and constrain values if necessary

5. Populate if needed; set release and access control policies

Page 16: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Example #1

• A store wants to sell discount books and school shirts to university students• Who, exactly, is a student?

• How precisely do you care?

• The university and store collaborate to craft the trust agreement

• If eduPersonScopedAffiliation isn’t good enough, http://www.cheapbooks.edu/attributes/ourstudent or an eduPersonEntitlement• The university provisions the attribute to eligible users

• Attribute information is released to the store, which maintains attribute-based access control• Beats accounts and IP Addresses

Page 17: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Example #1

• System of record: SIS• Attributes needed:

eduPersonScopedAffiliation• Other information needed:

• Check issuer against attribute scope so OSU can’t buy Florida shirts?

• Access control rule:• require scopedaffiliation *.edu

Page 18: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Example #2

• A consortium of scientists from eighteen different universities is collaborating to devise a mind-control TV channel, forming the MCTV WG• Re-use institutional identifiers & authentication via a

VO

• They collectively purchase grid cycles for brain wave analysis from a third party cluster

• The VO wants to audit resource use by member• Who speaks authoritatively for which

information?• Issuer/scope duality• Conservation of information

• Who needs to know what?

Page 19: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Example #2

• Systems of Record: Enterprise Directory(via HR), VO database

• Attributes needed:• eduPersonPrincipalName• https://third.party.cluster/attributes/flops

• Other information needed: weeeeelll…• How do you aggregation your attributes?

• Access control is usually done inside the application for better error handling

Page 20: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Guiding Principles

• Attribute-enable applications

• Be pragmatic and trusting– Because it’s easy to audit and punish

• The more common attributes, the more powerful federated identity is– Recycle, reduce, re-use

• Name everything properly

• Use strings whenever possible– Applications and people seem to like them

• Keep flows as simple as possible

Page 21: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Question for You

• gridPerson?

Page 22: All About Attributes (in federated identity) Nate Klingenstein ndk@internet2.edu 30 January 2007 OGF 19 Chapel Hill.

Any Questions?

Nate Klingenstein

[email protected]