Title: RE: SAML 2.0 Optional Use Cases
I would prefer Tom's suggestion provided we don't find any
holes in it. Two things to bear in mind are that there will be a small
number of people actually demonstrating at one time, so there should be minimal
chances of collisions, especially since they will be running the demos and
choosing the ID's and not the customers. Timely
defederation can also clean things up periodically.
Keep in mind we are talking about the optional cases, so
the base use cases that will not be showcasing federation also need to be
supported.
Bob
From: Thomas Wisniewski
[mailto:]
Sent: Tuesday, January 11,
2005 9:18 AM
To: Philpott, Robert; Jeff Bohren;
samldemotech
Subject: RE: SAML 2.0 Optional Use
Cases
Phillip, I understand your reasoning but I believe that it has some
additional complexity in the name format and also results in a limitation on
federating an account with more than one SP. Your proposal
was
“<vendor1>idp<vendor2>user<N>”
I
would propose we remove the vendor2 entry and use the following
instead.
“<vendor1>IdpUser<N>”
I.e.,
the receiving user should be able to federate any number of SP ids to
one (or more) IDPs. So the only user ids required would be:
-
“rsaIdpUser1” through
“rsaIdpUser5”
-
“rsaSpUser1” through
“rsaSpUser5”
Tom.
-----Original Message-----
From: Philpott, Robert
[mailto:]
Sent: Tuesday, January 11, 2005
11:31 AM
To: Jeff Bohren; samldemotech
Subject: RE: SAML
2.0 Optional Use Cases
+1 to Jeff’s
objection to self-registration.
The face time with
someone looking at the demo is almost always very short and entering data on
registration pages is way too time-consuming. It’s tough enough to get the
points across to them without spending the visitor’s time filling in forms.
In order to federate
2 user accounts, you have to be able to log into both accounts the first
time. So, to make the demos easy to run from each vendors station to any
other vendors station, I think this means we should standardize on naming
conventions for user identities across the sites as well as standardize on the
attributes.
In order for me to
demo federation, I need a local user identity at the IDP and a user identity
at the SP. We can define a convention that makes it easy to remember the names
at each IDP and SP. Each vendor will need a set of these identities to
use when they are demoing so that we don’t walk on each other. I offer a
suggested convention of “<vendor1>idp<vendor2>user<N>” and
“<vendor1>sp<vendor2>user<N>”. The former format is an
account I log into at <vendor1>’s IDP when I am <vendor2>,
etc. In the examples below, I am using 5 IDP user accounts and 5 SP
users accounts for each vendor to use. We can adjust this count as
necessary.
For example, at the
RSA site running an IDP and an SP, I’d create the following user accounts for
use when <vendor2> wants to demo federations using the RSA
IDP:
-
“rsaIdpRsaUser1”
through “rsaIdpRsaUser5”
-
“rsaIdpHpUser1”
through “rsaIdpHpUser5”
-
“rsaIdpCaUser1”
through “rsaIdpCaUser5”
-
Etc.
And I’d create the
following user accounts for use when <vendor2> wants to demo federations
using the RSA SP:
-
“rsaSpRsaUser1”
through “rsaSpRsaUser5”
-
“rsaSpHpUser1”
through “rsaSpHpUser5”
-
“rsaSpCaUser1”
through “rsaSpCaUser5”
-
Etc.
HP would need to
create the following user accounts at their site for when <vendor2>
wants to demo federations using the HP IDP:
-
“hpIdpRsaUser1”
through “hpIdpRsaUser5”
-
“hpIdpHpUser1”
through “hpIdpHpUser5”
-
“hpIdpCaUser1”
through “hpIdpCaUser5”
-
Etc.
And they’d create
accounts for when <vendor2> wants to use the HP
SP:
-
“hpSpRsaUser1”
through “hpSpRsaUser5”
-
“hpSpHpUser1” through
“hpSpHpUser5”
-
“hpSpCaUser1” through
“hpSpCaUser5”
-
Etc.
At the RSA station,
if I want to demo federation of an RSA IDP user account with an HP SP user
account, I would:
Access the HP SP
resource.
Since I’m not authenticated, I
would be asked to either log in locally or choose an IDP. I would
choose the RSA IDP and would be sent there with an <AuthnRequest> that
has a NameIDPolicy asking for a persistent identifier and AllowCreate set to
true.
At the RSA IDP site, I would log
in as “rsaIdpRsaUser1”.
The RSA IDP would see that this
account has no federation with the HP SP and create a persistent federated
identity for the account for use at the HP SP.
The RSA IDP creates an SSO
assertion (including user attributes from the rsaIdpUser1 account) and use
the POST binding to send the user back to the AssertionConsumerService at
the HP SP.
The HP SP sees that the
persistent federated identity in the assertion is not known locally and
forces the user to log in locally to complete the federation. The user
logs in using the account “hpSpRsaUser1”. The HP SP completes the
federation and lets me access the resource.
I can now kill the browser and
start a new request to access the HP SP resource.
It would again ask me to choose
an IDP or log in locally. I choose the RSA IDP and get sent there with
the same <AuthnRequest> as described in #2.
I log in at the IDP as
“rsaIdpRsaUser1”.
The RSA IDP sends me back to the
HP SP with the SSO assertion containing my persistent
identifier.
The HP SP finds my local user
account associated with the federated identifier (hpSpRsaUser1) and
transparently logs me in to the site.
The naming convention
needs to allow for all vendors to choose any other vendor’s IDP or SP to
federate with their own Sp or IDP. If one wishes to show it, it actually
allows going to any SP and federating with any IDP without stepping on each
other (i.e. an RSA employee could demo use of the CA SP (using caSpRsaUser1)
and federating this account with the HP IDP (using
hpIdpRsaUser1).
Make
sense?
Rob
Philpott
Senior Consulting
Engineer
RSA Security
Inc.
Tel: 781-515-7115
Mobile: 617-510-0893
Fax: 781-515-7020
mailto:
From: Jeff
Bohren [mailto:]
Sent: Tuesday, January 11, 2005 10:05
AM
To:
samldemotech
Subject: RE:
SAML 2.0 Optional Use Cases
Standardizing the
attributes is a great idea, but I can tell you from personal experience that
the self-registration won’t work well. The OASIS Provisioning Services TC (the
SPML TC) did an Interop at Burton two years ago and tried to
use the self-service approach. Most people watching the demo did not want to
actively participate so the demo drivers just made up people for each
demo.
I would suggest that
we standardize on a list of attributes and then just leave it up to each to
decide how to create identities for their own demos. Each vendor could either
use a predefined set of users, or create them on the fly as
needed.
Jeff
Bohren
Product
Architect
OpenNetwork
Technologies, Inc
Try the industry's
only 100% .NET-enabled identity management software. Download your free
copy of Universal IdP Standard Edition today. Go to
www.opennetwork.com/eval.
-----Original
Message-----
From: Thomas
Wisniewski [mailto:]
Sent: Tuesday, January 11, 2005 9:26
AM
To: Yuzo Koga; Thomas
Wisniewski
Cc: Mark Joynes;
samldemotech
Subject: RE:
SAML 2.0 Optional Use Cases
Yuzo. Exactly. I think we can definitely resolve which
attributes prior to the dry-run. For starters we have the following (note that
the first 2 are NOT meant to be exchanged but are there for login purposes to
the respective provider):
> - username
> - password
> - common name (e.g., john smith, type
string)
>
- email address (e.g., , type string)
> - membership level
(e.g., gold, type string)
> - spending limit (e.g., 2500, type
int)
>
- age (e.g., 31, type int)
> - shoe size (e.g., 10.5, type
string)
The attribute profile would be basic and the data
types would be only string or int.
For simplicity, we could assume that any
AttributeQuery should not contain an <Attribute> element, implying that
all attributes are returned by the IDP each time. Sound
reasonable?
Here's the example <AttributeStatement> that
should be returned based on the attributes above.
<saml:AttributeStatement>
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
Name="CommonName">
<saml:AttributeValue
xsi:type="xs:string">john smith</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
Name="EmailAddress">
<saml:AttributeValue
xsi:type="xs:string"></saml:AttributeValue>
</saml:Attribute><saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
Name="MembershipLevel">
<saml:AttributeValue
xsi:type="xs:string">gold</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
Name="SpendingLimit">
<saml:AttributeValue
xsi:type="xs:int">2500</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
Name="Age">
<saml:AttributeValue
xsi:type="xs:int">31</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
Name="ShoeSize">
<saml:AttributeValue
xsi:type="xs:string">10.5</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
Tom.
-----Original Message-----
From: Yuzo Koga [mailto:]
Sent: Tuesday, January 11, 2005
8:04 AM
To:
Thomas Wisniewski
Cc: Mark Joynes; samldemotech
Subject: Re: SAML 2.0 Optional Use
Cases
I agree with you. If we can prepare such
things,
the demo
will be very flexible and attractive.
However, with regard to exchanging attributes
between
providers, I think we need to previously know what
kind of
attributes, and with what name, are
exhanged.
I think we need a concrete scenario for
it.
Or, we should
decide at the F2F dry-run event at GSA?
Yuzo
On 2005/01/11, at 21:20, Thomas Wisniewski
wrote:
> Hey Yuzo.
>
> I was initially proposing a more advanced
scenario where the user can
> create their own id (username) and respective
values and also update
> these values. The updating of these values is
something that isn't
> absolutely necessary, however, without the user
being able to create
> their own id we could run into race conditions if
multiple folks at
> the conference are manipulating the same "sample"
identifier. I.e.,
> someone is doing SSO as alice while someone else is in the process of
> terminating
the ID federation of alice.
>
> Thoughts?
>
> Tom.
>
> -----Original Message-----
> From: Yuzo Koga [mailto:]
> Sent: Tuesday, January 11,
2005 6:13 AM
>
To: Thomas Wisniewski
> Cc: Mark Joynes; samldemotech
> Subject: Re: SAML 2.0
Optional Use Cases
>
>
>
> Hello Tom, all,
>
> Let me clarify.
>
> According to the A, an account at IDP has
following attributes,
> correct?
>
> - username
> - password
> - common
name
>
- email address
> - membership level
> - spending
limit
>
- age
>
- shoe size
>
> And, IDP can set any values (i.e. a user don't
set values)
>
to the common name, email address, and membership level,
> correct?
>
> Yuzo
>
> On 2005/01/10, at 23:18, Thomas Wisniewski
wrote:
>
> > Hi, for those vendors considering the
optional use cases (around
> > persistent
> > identifiers and attribute
queries), I would like to propose the
> > following
> > use cases. It would require
each vendor to support 4 simple
> > resources/applications.
> >
> > A. User registration.
Allow the user to perform a simple online
> > registration
> > to an SP or IDP (no SAML
processing exists in this case). User is
> > allowed
> > specifies the following
fields:
> >
- username
>
> - password
> > - password (again)
> > // the remaining attributes are
only for IDPs:
> > - spending limit
> > - age
> > - shoe size (or any other
attribute(s) that we should decide on)
> >
> > B Local user attribute management. This is a
protected application
> > that is
> > avaliable to the user once they have logged
into an IDP. This allows
> > the
> > user to see their local attributes described
in (A). I.e., at the
> > provider
> > they logged into (no SAML
processing exists in this case).
> >
> > C. User persistent Identifier management.
This is a protected
> > application
> > that is avaliable to the user
once they have logged into a provider.
> It
> > allows them to view their current ID
federations and either TERMINATE
> > and
> > existing one or FEDERATE to a new IDP. The
respective SAML MNI
> > terminate or
> > SAML SSO with ID Federation
AllowCreate=true would occur.
> >
> > NOTE: we should discuss is a 3rd option
NEW_ID (or REFRESH) should be
> > included. This is allows and IDP or SP to
change the opaque id (e.g.,
> > the
> > user wants their opaque id changed for
security purposes).
> >
> > D. User SAML attribute inquiry. This is a
protected application that
> is
> > avaliable to the user once they have logged
into a provider AND they
> > used
> > SAML authentication to some IDP. If so, it
should display the
> > attributes
> > described in (A) by doing a
SAML Attribute Query to the IDP (the
> > assumption
> > is that the IDP is also acting
as the Attribute Authority).
> >
> > Use Cases:
> >
> > 1. User Registration. The user
registers at both the IDP and SP
> (i.e.,
> > application A above). The main point is that
they can use different
> > ids at
> > the SP and IDP site.
> >
> > 2. User Federation. The user
logs into an SP and selects ID
> Federation
> > with
> > an IDP (i.e., application C above). The
flows are similar to the
> basic
> > SSL
> > case but with ID federation and using
persistent identifiers.
> >
> > 3. Single Logout. The user logs out of the
SP. The flow follows that
> > of the
> > basic case.
> >
> > 4. Single Signon. The user,
after logging out of the SP, uses SAML
> SSO
> > to
> > log back into the SP. The flow follows that
of the basic case.
> >
> > 5. Attribute Query. From the SP site the
user logged into, they view
> > their
> > IDP attributes that they set at the IDP. A
SAML Attribute Query is
> > performed
> > by the SP to the IDP
(application D above).
> >
> > 6. Change IDP Attributes. The User may be
allowed to go to the IDP
> > site and
> > change their attributes (i.e.,
application B above executed at the
> > IDP).
> > After updating these attributes, the user
(without any need to
> > re-login) can
> > go back to the link in step 5
and see their attributes have been
> > updated
> > from the SPs perspective as
well.
>
>
> > 7.
User Defederation. The user selects ID Defederation with an IDP
> > (i.e.,
> > application C above).
Either HTTP-Redirects or SOAP can be used to
> > accomplish this.
> >
> >
> > Do this sound
reasonable? It would seem to capture the essense of
> SAML
> > id
> > federation/defederation and the
dynamics or SAML attributes.
> >
> > Tom.
> >
> > Thomas Wisniewski
> > Software
Architect
>
> Phone: (201) 891-0524
> > Cell: (201) 248-3668
> >
> > Entrust
> > Securing Digital
Identities
>
> & Information
> > <http://www.entrust.com>
> >
> >
> ----
> Yuzo KOGA
<>
> NTT Information Sharing Platform
Labs.
> tel:
+81 422 59 3202, fax: +81 422 59 5652, aol: yzkoga
>
----
Yuzo KOGA
<>
NTT Information Sharing Platform Labs.
tel: +81 422 59 3202, fax: +81
422 59 5652, aol: yzkoga