Active Directory Federation Services Design Guide
Active Directory Federation Services Design Guide
Design Guide
Microsoft Corporation
Abstract
Active Directory Federation Services (ADFS) helps administrators meet federated identity
management challenges. In addition, ADFS provides users with a Web-based, single-
sign-on (SSO) experience when they access extranet Web sites or sites on the Internet
that are accessible through federation partnerships. This guide provides
recommendations to help you plan a new ADFS deployment based on the requirements
of your organization and the particular design that you want to create.
Information in this document, including URL and other Internet Web site references, is
subject to change without notice. Unless otherwise noted, the example companies,
organizations, products, domain names, e-mail addresses, logos, people, places, and
events depicted herein are fictitious, and no association with any real company,
organization, product, domain name, e-mail address, logo, person, place, or event is
intended or should be inferred. Complying with all applicable copyright laws is the
responsibility of the user. Without limiting the rights under copyright, no part of this
document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying,
recording, or otherwise), or for any purpose, without the express written permission of
Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other
intellectual property rights covering subject matter in this document. Except as expressly
provided in any written license agreement from Microsoft, the furnishing of this document
does not give you any license to these patents, trademarks, copyrights, or other
intellectual property.
The names of actual companies and products mentioned herein may be the trademarks
of their respective owners.
Contents
Active Directory Federation Services Design Guide......................................................... ..1
Abstract.................................................................................................... ...................1
Contents........................................................................................................................ .....3
For more information about how ADFS works and how to set up ADFS in a test lab, see
the following resources:
This guide describes a set of elements for three ADFS designs, and it helps you decide
the most appropriate design for your environment. You can use these design elements to
form one of the following comprehensive ADFS designs:
For each design, you will find guidelines for gathering required data about your
environment that you can use to plan and design your ADFS deployment. After you read
this guide and finish gathering, documenting, and mapping your organization's
requirements, you will have the information necessary to begin deploying ADFS.
See Also
Gathering Requirements
Documenting Requirements
Additional Considerations
Gathering Requirements
The first step in designing an Active Directory Federation Services (ADFS) deployment is
gathering the requirements for your design. To do this, first determine the following:
• The type of functionality that your scenario requires, which determines the
design elements that your organization selects
• The certificates that will be used for token signing, server authentication
(through Secure Sockets Layer (SSL)), and client authentication (through the
federation server proxy). For more information about the role of certificates in an
ADFS deployment, see Certificates (ADFS).
For more information about the types of applications that ADFS supports, see Application
Types.
For more information about requirements for resource applications and account stores in
an ADFS deployment, see Resource Applications and Account Stores (ADFS).
The next step in designing an ADFS deployment is documenting all the requirements. For
more information, see Documenting Requirements, which provides tables that you can
use to document your requirements.
See Also
Documenting Requirements
Resource Applications
The location of your application determines what Active Directory Federation Services
(ADFS) infrastructure must be deployed to support the application. In an ADFS end-to-
end design, there are two options for the location where the application may be hosted:
Depending on the requirements of your organization, you can also combine these two
options to complete the design of your ADFS deployment. For example, users from your
9
organization may access applications that you host, as well as applications that your
partners host.
See Also
ADFS Design Elements
The location of the user account store and the location from which users authenticate
determine how you design ADFS to support the user identities. ADFS can use either
Active Directory or Active Directory Application Mode (ADAM) as an account store.
Depending on where the account store is located and where users will access the
application from (in an intranet or on the Internet), the following options are available for
the location of the account store:
Depending on the requirements of your organization, you can combine several of these
account store options to complete the design of your ADFS deployment.
See Also
Documenting Requirements
Application Types
As part of the process of designing your deployment, determine the full set of Web
applications that will be secured by Active Directory Federation Services (ADFS). All
applications that are secured by Windows Server 2003 R2 ADFS Web Agents must be
running under Internet Information Services (IIS) 6.0. Note that several non-Microsoft
Web agents are available that enable the use of applications running on platforms other
than IIS 6.0. When you use the ADFS Web Agents, each application must be at least one
of the following application types:
• Claims-aware application
Claims-aware applications are Microsoft ASP.NET 2.0 applications that are written to
allow the querying of ADFS security token claims. After an application is presented with a
valid token, the claims-aware application can make authorization decisions based on the
claims in the token.
To determine which category each application falls into, follow these guidelines:
Claims-aware applications do not require a local user store. All information about a given
identity is contained in the token that is presented by the application. The application may
store additional information that links to the identity that is presented in the token, but a
user account in Active Directory is not required.
See Also
Documenting Requirements
Claim Definitions
Claims are statements that a federation server makes about a user. They are used by
Web applications to make authorization decisions. Claims originate from either a local
account store or an account partner.
In Active Directory Federation Services (ADFS), there are several claim types:
• Identity: An identity claim defines the user or security principal that the claim
set belongs to. ADFS supports three types of identity claims: user principal name
(UPN), e-mail, and common name.
• Custom: This claim type is a name value pair. For example, a custom claim
may indicate that a user’s employee ID number is 1234.
• Incoming claims: These are claims that a specific account partner sends to
your organization.
• Outgoing claims: These are claims that your organization sends to a specific
resource partner.
When you design an ADFS deployment, you must understand how the claims will be
extracted from the account store into the organization claim set, transformed at both the
account federation server and the resource federation server, and then ultimately
presented to the Web application. You can use the tables in Documenting Requirements
to define the claims that will be used by your federation servers.
The flow of claims through an ADFS deployment is illustrated in the following figure.
13
This section describes claims on the account partner. It refers to the top of the previous
figure.
14
Claim Extractions
Claim extractions are used to map a user or group in an account store to an organization
claim. The account store can be Active Directory or Active Directory Application Mode
(ADAM). A claim extraction is represented in the previous figure by the "Claims are
populated" arrow.
Organization Claims
Organization claims are used by the federation server — in this case, the account
federation server. Claims passing through a federation server are mapped into and out of
the organization claim set. These claims are then transformed, or mapped, into outgoing
claims. This is the core set of claims that the organization uses to map into and out of.
Outgoing Claims
Outgoing claims are included in the security token of a user. They are generated by the
account partner and destined for the resource partner. Organization claims on the
federation server of the account partner are mapped to outgoing claims that are then sent
to the resource federation server.
This section describes claims on the resource partner. It refers to the bottom of the
previous figure.
Incoming Claims
Incoming claims are received by the resource partner. They were generated by the
account federation server as outgoing claims. The claim names that you configure here
are determined by an agreement with your partner on a common namespace.
15
Organization Claims
The resource federation server transforms, or maps, incoming claims to organization
claims. Organization claims are used by the federation server — in this case, the
resource federation server. This is the core set of claims that the organization uses to
map into and out of.
There may be cases, though, in which simple mapping of claims may not be sufficient for
your scenario. In this case you may develop a claim transformation module that can
modify claim names and values as they pass through the federation server. For example,
the claim transformation module might convert a claim containing a monetary value into
another currency based on an exchange rate. Or, the module might look into a sales
database and determine the discount level for a partner.
If you determine that building a claim transformation module is necessary for your
scenario, see the ADFS software development kit (SDK) on the MSDN Web site for
additional information about how the claim transformation module functions. To find the
ADFS SDK, search for "ADFS SDK" on the MSDN Home page
(http://go.microsoft.com/fwlink/?LinkId=16188).
See Also
Documenting Requirements
16
Certificates (ADFS)
There are three sources for the certificates that you use with Active Directory Federation
Services (ADFS):
• A third-party CA
• Self-signed certificates
Each certificate source has advantages and disadvantages that are described in the
following sections.
CA in Your Organization
When you implement a CA in your organization, you provide an infrastructure for
certificate life-cycle management, renewal, trust management, and revocation. These
qualities provide a more robust infrastructure for all the certificates in your organization,
at the cost of having to deploy additional infrastructure.
Third-Party CA
Certificates that are generated by a third-party CA have many of the benefits of the
previous option. However, third-party certificates must be purchased. Of the certificates
that are used in an ADFS deployment, the server authentication certificates that are used
by the various ADFS components are frequently third-party certificates so that client
browsers are already configured to trust the certificates.
Self-signed Certificates
Self-signed certificates do not require the presence a CA. These certificates must be
configured explicitly in certain locations on the server as trusted certificates. Establishing
an infrastructure for certificate life-cycle management, renewal, trust management, and
revocation is more difficult with self-signed certificates.
The various types of certificates that are used by ADFS can come from a variety of these
three sources. For example, you may find that your server authentication certificates are
obtained from a third-party CA, but your token-signing certificate is obtained from your
organization’s CA.
17
For more information about certificates, see Public Key Infrastructure for
Windows Server 2003 on the Microsoft Web site
(http://go.microsoft.com/fwlink/?LinkId=19936).
Token-signing Certificates
Each federation server uses a token-signing certificate (both private key and public key)
to digitally sign all security tokens that it produces. Because each security token is
digitally signed by the account partner, the resource partner can verify that the security
token was in fact issued by the account partner and that it was not modified. This
prevents attackers from forging or modifying security tokens to gain unauthorized access
to resources.
Digital signatures on security tokens are also used in the account partner when there is
more than one federation server (for example, in a farm deployment). In this case the
digital signatures verify the origin and integrity of the security tokens that are issued by
other federation servers in the account partner. The digital signatures are verified with
verification certificates.
Verification Certificates
Verification certificates verify that a security token was issued by a valid federation server
and that it was not modified. Verification certificates are the public-key portion of your
own token-signing certificate, as well as the certificates of other federation servers that
you trust.
To verify that a security token was issued by a given federation server and not modified,
the federation server must have a verification certificate for the federation server that
issued the security token. For example, if federation server A issues a security token and
sends the security token to federation server B, federation server B must have a
verification certificate for federation server A.
For more information about how certificates are configured for farms, See "Deploying
ADFS Using Farms" in Additional Considerations.
See Also
ADFS Design Elements
Additional Considerations
Documenting Requirements
You can use the following tables to document your Active Directory Federation Service
(ADFS) design requirements. Make sure that the role your organization plays in the
federation agreement is clearly understood by all parties:
Functionality Yes/No
Functionality Yes/No
Resource Applications
If your organization is hosting an application or multiple applications, use the following
table to document the applications and application types that will be part of your ADFS
deployment.
20
Account Stores
If your organization is hosting account stores, use the following table to document the
account stores that will be used to access the applications.
Organization Claims
Organization claims are the normalized set of claims on the federation server. Use the
following table to document the organization claims and claim types on your federation
server.
Administrators Group
Purchasers Group
PurchaseLimit Custom
EmployeeID Custom
Claim Extractions
Claim extractions map a user or group in an account store to an organization claim. The
account store can be Active Directory or Active Directory Application Mode (ADAM). If
your organization is an account partner, use the following table to document the
Active Directory users or groups for claim extractions and their corresponding
organization claims.
22
Outgoing Claims
Organization claims on the federation server of the account partner are mapped to
outgoing claims that are sent to the resource federation server. If your organization is an
account partner, use the following table to document the organization claims and their
corresponding outgoing claims.
Note
Organization claims and outgoing claims can have the same names if it is not
necessary for the claim names to be different.
23
The following table is an example of documented outgoing claim requirements.
Administrators Admins
PurchaseLimit PurchaseLimit
EmployeeID EmployeeID
Incoming Claims
Incoming claims are received by the resource federation server from the account
federation server. When incoming claims are received by the resource federation server,
they are mapped to organization claims on the resource federation server. If your
organization is a resource partner, use the following table to document the incoming
claims and their corresponding organization claims.
PurchaseLimit PurchaseLimit
Note
Incoming claims and organization claims can have the same names if it is not
necessary for the claim names to be different. For more information about
enabling advanced transformations, see "Claim Transformation Module" in Claim
Definitions.
The following table is an example of documented requirements for users or groups that
use a Windows NT token–based application.
See Also
Gathering Requirements
25
Claim Definitions
See Also
ADFS Design Elements
Note that these design elements show logical ADFS servers. They do not provide precise
guidance about where to locate physical servers within a proposed network environment.
For example, you may want to place certain ADFS components on protected networks to
further isolate them from the Internet. Also, to increase reliability and scalability,
federation servers, federation server proxies, and Web servers can be deployed as single
computers or as server farms. For more information, see "Deploying ADFS Using Farms"
in Additional Considerations.
In addition, federation servers are depicted in the following sections as functioning either
in an account role or in a resource role. The federation server component may function in
either role; the role is determined by the configuration of the trust policy.
26
• Active Directory: The Active Directory functional level may be set to either
Windows 2000 mixed, Windows 2000 native or Windows Server 2003. A domain
is required for the resource federation server. If Windows NT token–based
applications are supported, the domain also serves as the store that contains the
resource accounts. Claims-aware applications do not require local accounts in
Active Directory.
• Web server: You must have Internet Information Services (IIS) 6.0 and either
the ADFS Web Agent for claims-aware applications, the ADFS Web Agent for
Windows NT token–based applications, or both installed on the Web server. This
Web server may also be using a compatible non-Microsoft Web agent for other
application platforms. The ADFS Web Agent confirms that it has received a valid
ADFS token before it allows access to the protected Web site.
• Users who are logged on to the corporate intranet (the Active Directory
domain) can access ADFS-secured applications at your own organization or at
partner organizations.
• Information in the Active Directory account store can be populated into users’
ADFS tokens.
• Active Directory: The Active Directory functional level may be set to either
Windows 2000 mixed, Windows 2000 native, or Windows Server 2003.
Active Directory or an instance of Active Directory Application Mode (ADAM) (not
depicted) may contain the identities that will be used to generate ADFS tokens.
Information such as groups and attributes will be populated into ADFS tokens as
group claims and custom claims.
In addition to the components in the design element that extends access to federated
applications for intranet users (which are shaded in this figure), the following components
are added:
• Perimeter DNS: This implementation of DNS serves the host names for the
perimeter network (also known as demilitarized zone (DMZ), extranet, and
screened subnet). See the following section, "Configuration of DNS for the
30
Federation Server Proxy," for additional information about how to configure DNS
for this component.
• Account federation server proxy: This ADFS component allows users on the
Internet to perform authentication. By default, this component performs forms
authentication with fallback to basic authentication. You may also configure this
component to perform SSL client authentication if users at your organization
have certificates to present.
Client systems on the corporate network communicate directly with the federation server.
Clients that are connected to the Internet communicate with the account federation server
proxy.
Corporate DNS
Hosts that are connected to the corporate network have host names in the
corp.adatum.com DNS domain that is hosted by the Corporate DNS server. The
Active Directory account store on the corporate network uses the corp.adatum.com DNS
domain that is hosted by the Corporate DNS server to store service records that are
necessary for Active Directory to function properly. The account federation server's fully
qualified domain name (FQDN) is fs.corp.adatum.com. This FQDN is stored on
Corporate DNS.
The following table lists the ADFS-related FQDNs that are stored by the Corporate DNS
server.
FQDN IP address
Note
Corporate DNS also contains other host and service records for clients,
Active Directory, and any other name resolution needs on the corporate network.
Perimeter DNS
When clients on the Internet access an ADFS-secured application, they must
authenticate to the federation server. The federation server is not accessible on the
Internet; therefore, the clients must be directed to the federation server proxy instead.
Because there is only a single endpoint that clients are directed to whether they are on
the intranet or Internet, clients on the Internet that use the Perimeter DNS server must
resolve the host name for the account federation server (fs.corp.adatum.com) to the IP
address of the account federation server proxy on the perimeter network. To forward
clients on to the account federation server proxy when they attempt to resolve
fs.corp.adatum.com, Perimeter DNS contains a limited corp.adatum.com DNS domain
with a single A record for fs (fs.corp.adatum.com) and the IP address of the account
federation server proxy on the perimeter network.
The following table lists the ADFS-related FQDNs that are stored by the Perimeter DNS
server.
FQDN IP address
Note how this design element builds on the design element that enables an application
for federated user access, which is described in a previous section. There is one
important distinction, however: the federation server is now serving in both the account
role and the resource role. The federation server is serving both an application and an
account store — in this case, ADAM — that contains the user identities.
See Also
Designs for ADFS Deployment
Additional Considerations
Note that the designs in the following sections represent some common ADFS
deployment scenarios. Your organization may require a combination of many or all of the
ADFS design elements to design a comprehensive deployment scenario that meets your
organization's particular requirements.
See Also
Federated Web SSO (B2B)
As illustrated in the following figure, you can establish a federation trust relationship
between two businesses, which results in an end-to-end federation scenario.
35
In this design there are two separate organizations that each deploys a combination of
the ADFS design elements. Assuming that A. Datum Corporation is the identity or
account provider, the A. Datum part of the Federated Web SSO design contains the
following ADFS design elements:
Assuming that Trey Research is the resource provider, the Trey Research part of the
Federated Web SSO design contains the following ADFS design elements:
See Also
ADFS Design Elements
36
In this design, ADFS design elements that provide the following functionality are
combined in the single A. Datum Corporation organization:
Note
If a trust is not in place between the corporate network and the perimeter network
and the application in the perimeter network is a Windows NT token–based
application, resource accounts or groups must be used in the perimeter network.
See Also
ADFS Design Elements
This design consists of the ADFS design element that hosts customer accounts to enable
access to your extranet applications.
See Also
ADFS Design Elements
39
Additional Considerations
Port Configurations
Because ADFS serves Web browser clients over secure Hypertext Transfer Protocol
(HTTPS), connectivity to HTTPS must be available to the federation servers and
federation server proxies. The default port for HTTPS is port 443, but other port numbers
may be configured depending on your Internet Information Services (IIS) configuration.
Your firewalls that are between clients and federation servers or federation server proxies
must be configured to allow HTTPS traffic.
Just as clients need HTTPS connectivity to the federation server, the federation server
proxy requires HTTPS connectivity to the federation server.
If any certificate that you use has certificate revocation lists (CRLs), the server with the
configured certificate must be able to contact the server that distributes the CRLs. The
type of CRL determines that ports that are used.
For information about the port requirements for the Federated Web Single Sign-On (SSO)
with Forest Trust design, see How Domain and Forest Trusts Work on the Microsoft Web
site (http://go.microsoft.com/fwlink/?LinkId=35356).
Consolidating Hardware
Depending on the requirements of your organization and your Active Directory Federation
Services (ADFS) design, you may want to combine some of the ADFS components on a
single piece of hardware. By combining some components, your organization can reduce
the number of servers and therefore the overall cost of the design.
Installation of the Federation Service and the Federation Service Proxy on a single
computer is not supported. All other ADFS components may be combined on a single
computer.
Federation Server
You can set up a federation server farm by sharing a trust policy — along with token-
signing certificates — among a set of federation servers. When you build out a farm, the
trust policy must be available to each federation server in the farm. The recommended
deployment uses a network-accessible share to which the federation servers have
Read/Write access, for example, by using Distributed File System (DFS).
Besides the trust policy file, federation servers must share token-signing certificates.
Server authentication certificates should be configured so that all federation servers use
the same certificate.
Web Server
Configure the Web server agents (for either claims-aware applications or Windows NT
token–based applications) on each Web server to point to the same federation server.
Server authentication certificates should be configured so that all Web servers use the
same certificate.
See Also
ADFS Design Elements