Claims-Based Identity: An Overview of Microsoft Code Name "Geneva"

David Chappell
Chappell & Associates
www.davidchappell.com
ARC206
Agenda
Introducing “Geneva” and Claims-Based Identity
Using “Geneva”: Scenarios
A Closer Look at the “Geneva” Technologies
What is "Geneva"?
Three related technologies:
The “Geneva” Server
The next release of Active Directory Federation Services
(AD FS)
CardSpace “Geneva”
The next release of CardSpace
The “Geneva” Framework
The goal of “Geneva” is to help make claimsbased identity real
What is Identity?
An identity is a set of information about some
entity, such as a user
Most applications work with identity
Identity information drives important aspects of an
application’s behavior, such as:
Determining what a user is allowed to do
Controlling how the application interacts with the user
Defining the Problem
Working with identity is too hard
Applications must use different identity technologies in
different situations:
Active Directory (Kerberos) inside a Windows domain
Username/password on the Internet
WS-Federation and the Security Assertion Markup Language
(SAML) between organizations
Why not define one approach that can be used in all of
these cases?
Claims-based identity allows this
It can make life simpler for developers
Tokens and Claims
Representing identity on the wire
A token is a set of bytes that expresses
information about an identity
This information consists of one or more claims
Each claim contains some information about the
entity to which this token applies
Indicates who
created this token
and guards
against changes
Token
Claim 1
Claim 2
Claim 3
...
Claim n
Signature
Example Claims
Name
Group
Age
Identity Providers and STSs
An identity provider is an authority that makes claims
about an entity
Common identity providers today:
On your company’s network: Your employer
On the Internet: Most often, you
An identity provider implements a security token
service (STS)
It’s software that issues tokens
Requests for tokens are made via WS-Trust
Many token formats can be used
The SAML format is increasingly popular
Getting a Token
Illustrating an identity provider and an STS
Identity Provider
2) Get
information
Security Token
Service (STS)
Account/
Attribute Store
3) Create and
return token
1) Authenticate
and request
token
Token
Browser or Client
User
Acquiring and Using a Token
4) Use claims in token
Identity Provider
Application
STS
Identity
Library
2) Submit
token
Token
1) Get token
Token
Browser or Client
User
3) Verify token’s
signature and
check whether
this STS is trusted
List of
Trusted STSs
Why Claims Are an Improvement
In today’s world, an application typically gets
only simple identity information
Such as a user’s name
To get more, the application must query:
A remote database, e.g., a directory service
A local database
With claims-based identity, each application can
ask for exactly the claims that it needs
The STS puts these in the token it creates
How Applications Can Use Claims
Some examples
A claim can identify a user
A claim can convey group or role membership
A claim can convey personalization information
Such as the user’s display name
A claim can grant or deny the right to do something
Such as access particular information or invoke
specific methods
A claim can constrain the right to do something
Such as indicating the user’s purchasing limit
Supporting Multiple Identities
Using an identity selector
5) Use claims in token
Identity Providers
STS
STS
Application
STS
Identity
Library
1) Access
application and
learn token
requirements
Token
3) Get token
for selected
identity
4) Submit
token
Token
Browser or Client
Identity Selector
2) Select an identity
that matches those
requirements
User
The "Geneva" Technologies
Identity Providers
5) Use claims
in token
“Geneva”
Server
STS
STS
Application
STS
“Geneva”
Framework
1) Access
application and
learn token
requirements
Token
3) Get token
for selected
identity
Browser or Client
CardSpace
“Geneva”
2) Select an identity
that matches those
requirements
User
4) Submit
token
Token
Using "Geneva" in an Enterprise
Active Directory
Domain Services
“Geneva”
Server
5) Find claims
required by
application
and create
token
1) Login to
domain and
get Kerberos
ticket
8) Use claims
in token
Application
STS
4) Present
Kerberos ticket
and request
token for
selected identity
“Geneva”
Framework
6) Receive
token
Token
7) Submit
token
Token
Browser or Client
CardSpace
“Geneva”
3) Select an identity
that matches those
requirements
User
2) Access
application and
learn token
requirements
Allowing Internet Access
5) Use claims
in token
Active Directory “Geneva”
Domain Services
Server
STS
Token
3) Get token
for selected
identity
Internet
Browser or Client
CardSpace
“Geneva”
2) Select an identity
that matches those
requirements
User
Application
4) Submit
token
“Geneva”
Framework
Token
1) Access
application and
learn token
requirements
Using an External Identity Provider
5) Use claims
in token
Identity Providers
Windows
Live ID
Other
STS
STS
Application
4) Submit
token
Internet
Token
3) Get token
for selected
identity
Browser or Client
CardSpace
“Geneva”
2) Select an identity
that matches those
requirements
User
Token
1) Access
application and
learn token
requirements
“Geneva”
Framework
Identity Across Organizations
Describing the problem
A user in one Windows forest must access an
application in another Windows forest
A user in a non-Windows world must access an
application in a Windows forest (or vice-versa)
Identity Across Organizations
Possible solutions
One option: duplicate accounts
Requires separate login, extra administration
A better approach: identity federation
One organizations accepts identities provided by
the other
No duplicate accounts
Single sign-on for users
Identity Federation (1)
Organization X
Organization Y
Active Directory “Geneva”
Domain Services
Server
STS
STS
5) Use claims in token
Token
3) Get token for
selected identity
4) Submit
token
Token
“Geneva”
Framework
Browser or Client
CardSpace
“Geneva”
2) Select an
identity that
matches those
requirements
User
Application
1) Access application
and learn token
requirements
Trusted STSs:
-Organization Y
-Organization X
Identity Federation (2)
Organization X
Active Directory “Geneva”
Domain Services
Server
STS
Token for
STS Y
2) Access
Organization Y
STS and learn
token
requirements
5) Request token
for application
Organization Y
Token for
STS Y
Token
6) Issue token
for application
STS
Trusted STSs:
-Organization X
8) Use claims in token
4) Get token for
Organization Y STS
Browser or Client
CardSpace
“Geneva”
3) Select an
identity that
matches those
requirements
User
7) Submit
token
Token
Application
“Geneva”
Framework
1) Access application
and learn token
requirements
Trusted STSs:
-Organization Y
Delegation
Active Directory “Geneva”
Domain Services Server
5) Check policy for
user, application X,
and application Y
STS
Token for
X
1) Get token
for
application X
Browser or
Client
Token for
X
4) Request
token for
application Y
6) If policy allows,
issue token for
application Y
Application X
Token for
X
2) Submit token
User
Token for
Y
“Geneva”
Framework
8) Use claims in token
7) Submit token
Token for
Y
3) Access
application and
learn token
requirements
Application Y
“Geneva”
Framework
Changes in the "Geneva" Server
From AD FS
AD FS today supports only passive clients (i.e.,
browsers) using WS-Federation
And it doesn’t provide an STS
The “Geneva” Server:
Supports both active and passive clients
Provides an STS
Supports both WS-Federation and the SAML 2.0
protocol
Improves management of trust relationships
By automating some exchanges
CardSpace "Geneva"
Selecting identities
CardSpace “Geneva” provides a standard user
interface for choosing an identity
Using the metaphor of cards
Choosing a card selects an identity (i.e., a token)
Information Cards
Behind each card a user sees is an
information card
It’s an XML file that represents a relationship with
an identity provider
It contains what’s needed to request a token for a
particular identity
Information cards don’t contain:
Claims for the identity
Whatever is required to authenticate to the identity
provider’s STS
Information Cards
An illustration
Identity Providers
Browser or Client
STS
STS
STS
CardSpace “Geneva”
Information Card 1
Information Card 2
Information Card 3
Information Card 4
User
Creating Industry Agreement
The Information Card Foundation is a multivendor group dedicated to making this
technology successful
Its board members include Google, Microsoft,
Novell, Oracle, and PayPal
A Web site can display a standard icon to
indicate that it accepts card-based logins:
Changes in CardSpace "Geneva"
From the first CardSpace release
CardSpace “Geneva” is available separately from
the .NET Framework
It’s smaller and faster
CardSpace “Geneva” contains optimizations for
applications that users visit repeatedly
A Web site can display the card you last used to log
in the site
The CardSpace “Geneva” screen needn’t appear
The self-issued identity provider has
been dropped
The "Geneva" Framework
The goal: Make it easier for developers to create
claims-aware applications
Originally known as “Zermatt”
The “Geneva” Framework provides:
Support for verifying a token’s signature and
extracting its claims
Classes for working with claims
Support for creating a custom STS
More
Conclusions
Changing how applications (and people) work
with identity is not a small thing
Widespread adoption of claims-based identity will
take time
Yet all of the pieces required to make claimsbased identity real on Windows are coming:
The “Geneva” Server
CardSpace “Geneva”
The “Geneva” Framework
References
Introducing “Geneva”: An Overview of the “Geneva” Server,
CardSpace “Geneva”, and the “Geneva” Framework
http://download.microsoft.com/download/7/d/0/7d0b5166-6a8a418a-addd-95ee9b046994/GenevaBeta1_Whitepaper_Chappell.docx
Keith Brown’s “Geneva” Framework White Paper for Developers
http://download.microsoft.com/download/7/d/0/7d0b5166-6a8a418a-addd95ee9b046994/GenevaFrameworkWhitepaperForDevelopers.pdf
About the Speaker
David Chappell is Principal of Chappell & Associates
(www.davidchappell.com) in San Francisco, California. Through
his speaking, writing, and consulting, he helps people around the
world understand, use, and make better decisions about new
technology. David has been the keynote speaker for many events
and conferences on five continents, and his seminars have been
attended by tens of thousands of IT decision makers, architects,
and developers in forty countries. His books have been published
in a dozen languages and used regularly in courses at MIT, ETH
Zurich, and other universities. In his consulting practice, he has
helped clients such as Hewlett-Packard, IBM, Microsoft, Stanford
University, and Target Corporation adopt new technologies,
market new products, train their sales staffs, and create business
plans. Earlier in his career, David wrote networking software,
chaired a U.S. national standards working group, and played
keyboards with the Peabody-award-winning Children’s Radio
Theater. He holds a B.S. in Economics and an M.S. in Computer
Science, both from the University of Wisconsin-Madison.
Resources
www.microsoft.com/teched
www.microsoft.com/learning
Sessions On-Demand & Community
Microsoft Certification & Training Resources
http://microsoft.com/technet
http://microsoft.com/msdn
Resources for IT Professionals
Resources for Developers
www.microsoft.com/learning
Microsoft Certification and Training Resources
Complete an
evaluation on
CommNet and
enter to win!
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should
not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.