Active Directory Federation Services How does it really work?

advertisement
Active Directory Federation Services
How does it really work?
John Craddock
johncra@xtseminars.co.uk
Application Authentication
• Within your environment Windows
Authentication provides single sign-on for all
applications
– Windows Authentication provides details of the
authenticated user and group membership
Developer Challenges
• If the developer wants Active Directory
held information about the user, it requires
attribute value extraction
– Developer must understand AD
– Hardcoded LDAP query strings
– Continual reinvention of the wheel
Access from the Internet
Kerberos,
NTLM, Basic,
Digest, Forms?
• Without a VPN, DirectAccess or authentication
proxy solution
– Kerberos fails
– Requires developers to use a different authentication
model
Application in the Cloud
• How do we handle authentication if we move an
enterprise application to the cloud?
• The Microsoft BPOS dedicated service colocates the organisation’s AD directory
– Your DCs are hosted in the Microsoft datacentre
Allowing Access by Partners
• Requires YOU to hold account and profile details for
all of your partner’s users that need to access the
application
– YOU must manage the life-cycle of those users
• Does your partner keep you informed of changes?
– The partner’s users need to remember yet another
password
The Answer
• Create an identity (includes authentication)
framework that can be consumed by all
applications regardless of their location
• Allow the identity token to carry more information
than just the user and group memberships
• Trust your partners to authenticate their users
• Solution based on industry standard protocols
• Make it work for browsers and web services
The Solution
Federation of Identity
• Many players in the game…
• Microsoft solution
– Active Directory Federation Services
• The latest release AD FS v 2.0
Issuer
Identity Provider (IP)
Security Token Service (STS)
Key Concepts
User / Subject /Principal
The Security Token
Contains claims about the user
For example:
• Name
• Group membership
• User Principal Name (UPN)
• Email address of user
• Email address of manager
• Phone number
• Other attribute values
Signed by issuer
Authentication request
ST
Active
Directory
Issues Security Token
Security Token “Authenticates”
user to the application
Relying party /
Resource provider
Trusts the Security Token
from the issuer
Claims-Aware Application
• The application makes authorization decisions
based on the claims contained in the security
token
– No longer required to make authentication decisions
• Same authorisation logic for Application
– Deployed on the Intranet or as a Cloud service
– Receiving claims from its own organization’s users or
users from trusted partners
Building Claims-Aware Applications
• Window Identity Foundation (WIF) provides a
common programming model for claims
– Used by Windows Communication Foundation (WCF)
and ASP.NET applications
– Validates the incoming security token and parses the
claims that are inside
• SharePoint Services and SharePoint 2010 can
be enabled to support claims-based identity
– Configured via wizard and PowerShell
Standards and Protocols
• ADFS v 2.0 supports both active and passive
clients
– Active clients interact via web services
– Passive clients interact via browser requests
• Support for Industry standard protocols, allows
interoperability with third-party solutions
– WS-Federation
• SharePoint requires WS-Federation v 2
– SAML 2.0
Passive
Client
Claims-aware app
ADFS STS
User
Active Directory
App trusts STS
Browse app
Not authenticated
Redirected to STS
Authenticate
Return Security Token
ST
Send Token
Return page
and cookie
ST
Query for user attributes
X.509 Certificates
Relying party
Root for B
Issuer
A
Public key of C
D
Communication
B
Signing ST
C
Encyption ST
Root for A
Public key of D
• Trust is managed through certificates
• Certificates for
– HTTPS Communications
– Security token signing and encryption
• Require PKI for A & B certificates, C & D can be selfsigned by ADFS server
Federation Metadata
• During the establishment of the issuer / relying party
trust, both parties will require configuration which
includes
–
–
–
–
End-points for communication
Claims offered by issuer
Claims accepted by replying party
Public keys for signing and encryption
• This information can be manually configured or
automatically via the exchange of federation
metadata
– Federation metadata can be automatically updated
Offered Claims Types
Extract from federationmetadata.xml
<fed:UriNamedClaimTypesOffered>
<fed:ClaimType Uri="http://schemas.xmlsoap.org/claims/EmailAddress">
<fed:DisplayName>Email Address</fed:DisplayName>
</fed:ClaimType>
<fed:ClaimType Uri="http://schemas.xmlsoap.org/claims/UPN">
<fed:DisplayName>User Principal Name</fed:DisplayName>
</fed:ClaimType>
<fed:ClaimType Uri="http://schemas.xmlsoap.org/claims/CommonName">
<fed:DisplayName>Common Name</fed:DisplayName>
</fed:ClaimType>
<fed:ClaimType Uri="http://schemas.xmlsoap.org/claims/Group">
<fed:DisplayName>Group</fed:DisplayName>
</fed:ClaimType>
</fed:UriNamedClaimTypesOffered>
Installing ADFS
• Requires Windows Server 2008 / 2008 R2
– Requires IIS 7, .NET 3.5 SP1, WIF
– See deployment guide for required hot fixes and
updates
• Issue and install server certificates for HTTPS
• Download and install ADFS 2.0
– Simple Wizard
• New / farm member / Proxy – SSL cert – Names
Configuration
Claims-aware
application
Active Directory
ADFS 2.0
Define AD as
claims provider
Define STS1 as
claims provider
APP1
STS1
Define APP1 as
Relying party
• Relationships between APP1 and STS1
established through the exchange of federation
metadata
– Can be manually configured
Demo
Configuring SharePoint as a relying party
Claims Pipeline
Specify the users that are permitted
to access the relying party
input
Issuance
Authorization Rules
Permits/denies rule processing
and claims issuance
output
ST
Issuance
Transform Rules
input
Specifies claims that will be
sent to the relying party
Resulting claims added to
security token
Claims
provider
Acceptance
Transform Rules
input
Specify incoming claims that will be
accepted from the claims provider
and the outgoing claims that will be
sent to the relying party trust
Claim Rules
• Rule templates simplify the creation of rules
• Examples of rules are:
– Permit / deny user based on incoming claim value
– Transform the incoming claim value
– Pass through / filter an incoming claim
• Multiple claim rules can be specified and are
processed in top to bottom order
– Results from previously processed claims can be
used as the input for subsequent rules
Creating Rules
Condition
Issuance Statement
• A claim rule consists of two parts, condition and
issuance statement
Demo
Creating rules to allow access to
SharePoint
Custom Claims
• Capabilities of custom rules include
– Sending claims from a SQL attribute store
– Sending claims from an LDAP attribute store using a
custom LDAP filter
– Sending claims from a custom attribute store
– Sending claims only when 2 or more incoming claims are
met
– Sending claims only when an incoming claim matches a
complex value
– Sending claims with complex changes to an incoming
claim value
– Creating claims for use in later rules
Attribute Stores
• AD FS can only use Active Directory as an
identity store for authentication
• Authentication creates a token with user and
group membership details
• The claim rules can extract further attributes
from the AD and other stores
• SQL and LDAP stores are directly supported
– Additional stores can be added through custom
extensions
Claim Rule Language
The claim rule language consists of Condition => Issuance Statement
Pass through all role Claims
c:[Type == “http://schema.microsoft.com/ws/2008/06/identity/claims/role”]
 issue(claim = c);
Change the value of the Role Claim SalesStaff to Purchasers
c:[Type == “http://schema.microsoft.com/ws/2008/06/identity/claims/role”,
Value =~ “^(?i)SalesStaff$”]
=> issue(“http://schema.microsoft.com/ws/2008/06/identity/claims/role”,
Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value =
“Purchasers”, ValueType = c.ValueType)
After a claim is issued it is added to both the input and output claims
set allowing the transformed claim to be processed by subsequent rules
To make a processed claim available just for reprocessing replace the
“issue” statement with “add”
Demo
Managing Custom Rules
How do we Let Partners in?
• So far we have looked at supporting claims
aware apps within your organization
– Creating an identity (includes authentication)
framework that can be consumed by all applications
regardless of their location
– Allowing the identity token to carry more information
than just the user and group memberships
• To allow partners to access our systems we
must trust them to authenticate their users
Federated Identity
Partner organization
Your organization
Partner ADFS
STS & IP
Your ADFS
STS
Claims Trust
Claims Trust
Relying Party Trust
• Your STS now trusts your partner to
provide a security token containing claims for
their users
• Your STS is no longer responsible for identifying
the user but still processes the claims from the
partner as previously described
Relying
Party x
Summary
Your Organization ADFS
Security Token Service (STS)
Partner user
ST
ST from Partner
Claims Trust
Client request token for
access to relying party x
Trusted
Partner
ST
ST
Returns token
for Relying Party x
Processes
Acceptance
Transform Rules
Processes
Issuance
Authorization Rules
If allowed processes
Issuance
Rules
Relying
Party x
If denied
Processing ends
Passive Client
Your
Claims-aware app
Partner user
Your
ADFS STS
Partner
ADFS STS & IP
Browse app
Not authenticated
Redirect to your STS
Home realm discovery
Redirected to partner STS requesting ST for partner user
Authenticate
Return ST for consumption by your STS
ST
Redirected to your STS
Return new ST
ST
Send Token
Return page
and cookie
Process token
ST
ST
Active
Directory
Demo
Establish federation with company B
Remember the Benefits
• Claims provide a framework that can be
consumed by all applications regardless of their
location
• Allows the identity token to carry more
information than just the user and group
memberships
• Your trusted partners manage the identity and
authentication of their users
• The solution is based on industry standard
protocols
• Works for browsers and web services
What Next?
• Build a test lab and try the Microsoft ADFS stepby-step guides
– How To Set Up The AD FS 2.0 Lab Environment for
Federated Collaboration
• Hyper-V images available for download
– Federated Document Collaboration Using Microsoft
Office SharePoint Server 2007 and AD FS 2.0
• Read the ADFS Design and Deployment guides
• Read AD FS blogs
Any Questions
• Please email technical queries to:
info@xtseminars.co.uk
• Consultancy services also available
Thanks for coming to the session
See you again
Download