16
Claims Architecture and Scenarios for SharePoint 2010 Developers SharePoint 2010 Published: August 2011 Summary: Learn how claims-based authentication in Microsoft SharePoint 2010 enables you to support advanced scenarios that require custom development. Applies to: Microsoft SharePoint Foundation 2010 | Microsoft SharePoint Server 2010 Provided by: Javier Dalzell, Schakra Inc Contents  Overview of Advanced Claims-Based Authentication Scenarios  Creating Custom Login Pages Used by the Forms-Based Authentication Feature   Customizing Authentication Selection Pages to Provide Additional Information  Adding Context-Based Claims to the User's Claims Token   Authenticating from a Client Application by Following the Pattern of Passive Authentication  Migrating ISAPI-Based Authentication Schemes to SharePoint 2010  Supporting Claims Tokens Issued by SharePoint 2010 in Claims-Aware Web Services   Enabling High-Security Authentication (2FA) in SharePoint 2010  Conclusion  About the Author  Additional Resources Overview of Advanced Claims-Based Authentication Scenarios An important aspect of claims-based authentication in Microsoft SharePoint 2010 is that solution developers can use its power programmatically to enable m ore advanced authentication scenarios. This article walks you through different scenarios that involve the following tasks:  Creating custom login pages  Customizing the authentication selection page  Adding context-based claims to the user's claims token  Authenticating from a client application  Migrating authentication schemes to SharePoint 2010 that are based o n Internet Server API (ISAPI)  Supporting the claims token that is issued by SharePoint 2010 in claims-aware web services

Claims Architecture and Scenarios for Share Point 2010 Developers

Embed Size (px)

Citation preview

Page 1: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 1/16

Claims Architecture and Scenarios for SharePoint 2010 Developers

SharePoint 2010 

Published: August 2011 

Summary: Learn how claims-based authentication in Microsoft SharePoint 2010 enables you to support advanced

scenarios that require custom development.

Applies to: Microsoft SharePoint Foundation 2010 | Microsoft SharePoint Server 2010

Provided by: Javier Dalzell, Schakra Inc 

Contents 

  Overview of Advanced Claims-Based Authentication Scenarios 

  Creating Custom Login Pages Used by the Forms-Based Authentication Feature 

  Customizing Authentication Selection Pages to Provide Additional Information 

  Adding Context-Based Claims to the User's Claims Token 

  Authenticating from a Client Application by Following the Pattern of Passive Authentication 

  Migrating ISAPI-Based Authentication Schemes to SharePoint 2010 

  Supporting Claims Tokens Issued by SharePoint 2010 in Claims-Aware Web Services 

  Enabling High-Security Authentication (2FA) in SharePoint 2010 

  Conclusion 

  About the Author 

  Additional Resources 

Overview of Advanced Claims-Based Authentication Scenarios

An important aspect of claims-based authentication in Microsoft SharePoint 2010 is that solution developers can use its

power programmatically to enable more advanced authentication scenarios.

This article walks you through different scenarios that involve the following tasks:

  Creating custom login pages

  Customizing the authentication selection page

  Adding context-based claims to the user's claims token

  Authenticating from a client application

  Migrating authentication schemes to SharePoint 2010 that are based on Internet Server API (ISAPI)

  Supporting the claims token that is issued by SharePoint 2010 in claims-aware web services

Page 2: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 2/16

  Enabling high-security authentication, including two-factor authentication (2FA), in SharePoint 2010

This article assumes that you are familiar with claims-based authentication in SharePoint 2010.

To learn more about claims-based authentication, see Claims Tips 1: Learning About Claims-Based Authentication in

SharePoint 2010. 

Although this article does not provide a walkthrough or code samples, it can help you understand the concepts behind

each of the tasks in the previous list. For walkthroughs with sample code, see Claims and Security Technical Articles forSharePoint 2010. 

Understanding Authentication Flows in SharePoint 2010

When you configure a SharePoint 2010 web application in claims mode, different authentication options are available.

These options determine the flow of the authentication process. To learn more about authentication options, see

Authorization and Authentication. 

Figure 1 shows the steps in the authentication process. It explains, in order, the different routes that the authentication

process flow can have, based on the authentication options that are available in SharePoint 2010.

Figure 1. High-level architecture of the claims-based authentication process 

Steps in the Authentication Process

1.  The client requests a SharePoint resource.

Page 3: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 3/16

2.  As part of the request pipeline, if the request is not authenticated, the authentication components route the

request based on the authentication settings for that zone.

3.  The request is then processed by the authentication components. When more than one authentication method

is configured for the given zone, the authentication selection page enables the user to choose the

authentication method. If only one authentication method is specified, the request is processed directly by the

specified authentication method.

4.  The user is authenticated by the identity provider.

5.  If authentication succeeds, the SharePoint security token service (STS) generates a claims-based token for the

user with the information provided by the identity provider. If additional claims providers are configured, the

STS augments the user's token with the claims given by the claims provider. For more information about claims

providers, see Claims Tips 2: Learning About Claims-Based Authentication in SharePoint 2010. 

6.  The claims-based token of the user is sent back to the authentication components.

7.  The authentication components redirect the request back to the resource address, with the claims-based token

issued for the user.

8.  The rest of the request pipeline is executed and a response is sent back to the requestor (client). As part of the

request pipeline, the authorization is completed.

As mentioned previously, the flow of the authentication process is defined by the options that you select during the

configuration of the zone. The following figures show how these options define the flow of the authentication.

Figure 2. Authentication flow 

Page 4: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 4/16

 

Each of the authentication types follows a specific pipeline. Figures 3, 4, and 5 can help you understand how each

authentication type works.

Windows Authentication Pipeline

When Windows authentication is the only authentication type enabled in a zone, users are silently authenticated by

using NTLM or Negotiate (Kerberos protocol) during the request pipeline. After a user is authenticated, a claims-based

token is requested from the SharePoint STS and a claims identity is created. After this point, SharePoint continues

processing the request, including making the proper access checks.

Figure 3. Windows authentication flow 

Page 5: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 5/16

 

When the Windows authentication type is enabled along with one or more other authentication types, the user is

redirected to the authentication selection page. If the user selects the option that uses Windows authentication, the

user request is redirected to the Windows authentication page, which is silent (no other UI is displayed to the user to

indicate that the user is being redirected, unless basic authentication is configured). On the Windows authentication

page, when the user is authenticated, a claims-based token is requested and the user is sent back to the requested

resource. Because the request contains a claims-based token that was issued by SharePoint STS, a claims identity is

created and the request process continues.

Figure 4 shows the Windows authentication process flow and lists the authentication steps in order.

Figure 4. Windows authentication process 

Page 6: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 6/16

 

Understanding the Windows Authentication Process

1.  The user requests a SharePoint 2010 resource.

2.  User authentication (NTLM challenge/Kerberos negotiation) occurs.

3.  The claims-based token request is sent to the SharePoint 2010 STS.

4.  SharePoint STS gets the user's security groups from the Windows token and adds them as user claims in the

token.

Note:

The group SID is what is added in the claims token.

5.  The SharePoint STS gets additional claims for the user (if an additional claims provider is registered for that web

application/zone).

6.  The claims-based token is issued.

7.  The request is processed by the rest of the components in the pipeline.

8.  The response is sent back to the user.

Forms-Based Authentication Pipeline

Page 7: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 7/16

In the case of forms-based authentication, the user is redirected to the SharePoint forms-based login page. If additional

authentication types are configured, the user is redirected to the authentication selection page first, and then to the

login page if the user selects the option that is linked to the forms-based authentication type.

The SharePoint forms-based login page collects the credentials of the user, which are then sent to the SharePoint 2010

STS. The STS calls the membership provider that is associated with that web application, to validate the user's

credentials. If this succeeds, the STS retrieves the roles that the user belongs to and adds these as claims in the claims-

based token that is sent back to the login page.

From the login page, after the claims-based token is issued, the user is sent back to the request resource and the process

continues in the same way as in Windows authentication.

Figure 5. Forms-based authentication process 

Understanding the Forms-Based Authentication Process

1.  The user requests a SharePoint 2010 resource.

2.  SharePoint redirects the user to the forms-based authentication login page.

3.  The username and password are collected from the user and sent to the SharePoint 2010 STS.

Page 8: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 8/16

4.  STS validates the user's credentials with the membership provider and, if validation succeeds, STS requests all

the roles that the user belongs to and adds those claims to the user's token.

5.  The SharePoint STS gets additional claims for the user (if an additional claims provider is registered for that web

application/zone).

6.  The claims-based token is issued to the user.

7.  The request is processed by the rest of the components in the pipeline.

8.  The response is sent back to the user.

SAML Token-Based Authentication Pipeline

Out-of-the box, with the default implementation of Active Directory Federation Services (AD FS), when SAML token-

based authentication is enabled in the zone settings, users are redirected to a "silent" authentication page, which then

redirects the user to the login page, as specified in the SAML-based authentication provider. (However any other AD FS

configuration, or any other identity provider may not behave this way). To learn more about SAML authentication

providers, see the "Implementing SAML token-based authentication" section in Plan Authentication Methods

(SharePoint Foundation 2010) on Microsoft TechNet.

If more than one SAML-based authentication provider or additional authentication types are enabled in the web

application, the user is redirected first to the authentication selection page, and then to the corresponding login page.

After the user is authenticated by the authentication provider, a SAML token is issued, and the user is redirected back to

the SharePoint 2010 SAML token –based authentication page. The SAML token is then included in the request with the

redirect. This process is known as "passive profiles". To learn more about passive profiles, see the blog post Windows

Identity Foundation 101's : WS-Federation Passive Requestor Profile (Part 1 of 2). 

The SAML authentication page requests a claims-based token from the SharePoint 2010 internal STS; the token request

contains the original SAML token that was issued by the authentication provider. SharePoint STS then validates thetoken and issues the user token. This user token is then added to the request and the SAML authentication page

redirects the user back to the original resource. After this point, the same process follows as in the other authentication

flows.

Figure 6. SAML claims-based authentication process 

Page 9: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 9/16

 

Understanding the SAML Claims-Based Authentication Process

1.  The user requests a SharePoint 2010 resource.

2.  SharePoint redirects the user to the SAML authentication page.

3.  Based on the configuration of the trusted login provider, the request is redirected to the enterprise STS login

page or to the federated STS login page.

4.  The user provides credentials and STS issues a SAML claims-based token.

5.  The external STS issues the user claims-based token.

6.  A claims-based token for the user is requested from the SharePoint STS, and the token from the external STS is

used as the authentication proof.

7.  SharePoint STS gets additional claims for the user (if an additional claims provider is registered for that web

application or zone).

8.  SharePoint STS issues the claims-based token.

9.  The request is processed by the rest of the components in the pipeline.

10. The response is sent back to the user.

Page 10: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 10/16

The identity provider is configured in SharePoint 2010 as a trusted login provider. Depending on the scenario, the

identity provider could be the enterprise STS or an external STS in the case of a federated login provider. Some examples

of federated login providers are a partner STS (to authenticate a partner user that does not exist in the enterprise user

repository) or an external authentication provider like Windows Live ID.

Although a trusted login provider could be an external identity provider (partner STS) in SharePoint 2010, we

recommend that you federate the authentication through your enterprise STS, instead of establishing the trust directly

in SharePoint 2010. Then, configure the trusts with the other STS in the enterprise STS. This has the benefit of having

only one entry point, where all corporate policies can be enforced. Another benefit is that most identity management

systems that support claims offer better tools for managing trusts with the federated STS. If you have multiple

SharePoint 2010 farms, using your enterprise STS as your "identity provider hub" enables you to manage the trusts in

one place instead of in multiple places (in each SharePoint farm).

Important:

In all authentication types, the SharePoint internal STS calls any claims provider that is enabled for that web application

or zone, and augments the user token with any claims that are given by the claims provider. To learn more about claims

providers, see Claims Tips 1: Learning About Claims-Based Authentication in SharePoint 2010. 

Now that you have learned about the authentication process flow, you can explore different authentication scenarios

and the options that you have to address these scenarios.

The following scenarios represent typical cases that help demonstrate problems and give implementation alternatives.

Analyze your scenario and, based on the specifics of your environment, decide which solutions fit best.

Creating Custom Login Pages Used by the Forms-Based Authentication Feature

SharePoint 2010 includes a default login page that is used by the forms-based authentication feature. As described in

the following scenarios, in some cases you have to make changes to this default login page.

Note:

Although it is possible to change the behavior of the login page to enable high-security authentication schemes like two-

factor authentication, it is not recommended. Instead, you should follow the approach described in the Enabling High-

Security Authentication (2FA) in SharePoint 2010 section later in this article.

There are many scenarios that could require you to make changes in the login page; some of them are discussed in the

following sections.

Addressing Authentication in Extranet Scenarios

There are multiple ways to address authentication in extranet scenarios. When possible, you should take advantage of 

the networking infrastructure by, for example, using a reverse proxy or using enterprise STS. In some situations this is

not possible; one alternative is to use forms-based authentication.

When forms-based authentication is used for an extranet, it becomes more important to customize the login page to

provide more information to the user, similar to what you see on the Microsoft Outlook Web Access login page.

Page 11: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 11/16

In extranet scenarios where partners should have access to SharePoint sites, and when the partner does not support

federated authentication, forms-based authentication is an alternative. Similar to the case described previously, it is

useful to customize the login page to show more information to the user.

Branding Login Pages

A common scenario is to want to brand the login page to match the UI guidelines of the enterprise or to add information

for the user, like a privacy notice, term of use, and instructions for how to log in or how to register as a new user.

Creating a "Remember Me" Capability

In some cases, you may want to enable users to have an option for remembering the user name and/or password,

similar to what can be found on login pages like the Windows Live ID login pages.

Consider these additional cases where login page customization could be useful:

  Troubleshooting forms-based authentication

  Adding "new user registration" logic

  Implementing a CAPTCHA mechanism

  Adding privacy notices

  Implementing "accept term of use" logic

  Adding antiphishing mechanisms (for example, site image verification)

For more information about how to create a custom login page for forms-based authentication, see Writing a Custom

Forms Login Page for SharePoint 2010 and How to Create Custom Login Page for SharePoint 2010 Form Based

Authentication (FBA). 

Customizing Authentication Selection Pages to Provide Additional Information

As explained previously, when more than one authentication provider is configured in a zone, users are redirected to a

page where they can select which authentication provider to use. When the user gets to this page, the page shows only

a selection control (see Figure 7).

Figure 7. Default authentication selection page 

Page 12: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 12/16

 

In some cases, you may want to provide additional information to aid the user in selecting the correct authentication

provider. Another improvement that you can make is to add the logic for smart home realm discovery, so that users

within a specific IP range are automatically redirected to the proper identity provider. There are other alternatives for

smart home realm discovery; the best implementation depends on your specific scenario, and also on how you

implement the home realm discovery.

Figure 8. Example of a home realm discovery page 

Adding Context-Based Claims to the User's Claims Token

Page 13: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 13/16

Contextual claims are assertions that are given to the user based on a rule. For example, a contextual claim might

contain the location of the client, such as the main corporate campus or a subsidiary. In this case, the value of the claim

is calculated depending on where the client connects. Later on, during authorization, this information could be used to

grant or deny permissions for a resource.

In high-security scenarios, these contextual claims can provide valuable information that can be used to restrict access

to resources.

Using SharePoint 2010, you can accomplish this by:

  Taking advantage of the claims provider infrastructure during claims augmentation.

  Implementing the rules of the contextual claims in the enterprise STS (or external STS).

We recommend implementing the rules of contextual claims in the enterprise STS for the following reasons:

  Provides a central point for managing the rules

  Eliminates the need to register and manage claims providers across multiple SharePoint farms

  Minimizes the risk of opening a security hole due to an improperly configured claims provider

Note:

The downside of implementing the rules of contextual claims in the enterprise STS is that you have to create a claims

mapping in SharePoint 2010 for each of the claims that you want to use. If you decide that you want to use different

claims in SharePoint 2010, you have to go through a multistep process to remove the SPTrustedIdentityTokenIssuer  

from all zones that are using it, delete it, recreate it with the correct claim mappings, and then re-add it to all zones that

were using it. Using a claims provider is more flexible and easier to change. A claims provider is also generally more

powerful to use to connect to other systems, because you are just writing Microsoft .NET Framework code.

Authenticating from a Client Application by Following the Pattern of Passive Authentication

There are scenarios where you may have to create a client application or add-in for the Microsoft Office client that is

authenticating to SharePoint 2010. As you have learned in this article, the SharePoint 2010 authentication model is

based in the WS-Federation passive profile that enables claims authentication scenarios for passive clients like Internet

Explorer. Microsoft Office also uses this model when authenticating to SharePoint 2010.

To authenticate a call to SharePoint 2010, you have to follow the pattern that is used by passive authentication. To learn

more about how to implement this pattern, see Remote Authentication in SharePoint Online Using Claims-Based

Authentication. Alternatively, you can use the pattern that is described in the blog post Using the Client Object Modelwith a Claims Based Auth Site in SharePoint 2010. 

Migrating ISAPI-Based Authentication Schemes to SharePoint 2010

In previous versions of SharePoint, additional authentication schemes were implemented in SharePoint by using the

forms-based authentication flow and using custom ISAPI filters that handled the authentication process.

SharePoint 2010 implements the Internet Information Services 7 integrated pipeline, which does not support ISAPI

filters. In addition to this, when a web application is configured for forms-based authentication, SharePoint 2010 makes

Page 14: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 14/16

an explicit call to the membership provider to validate the user's credentials. This causes some ISAPI-based

authentication solutions to not work in SharePoint 2010.

SharePoint 2010 claims-based authentication gives you an authentication extensibility point by using the SAML claims –

based authentication and the WS-Federation protocol.

Figure 9. Local security token service 

As Figure 9 shows, the authentication is done outside SharePoint 2010 in the identity provider STS. The custom

authentication scheme can be implemented on the identity provider (or become the identity provider).

Page 15: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 15/16

For more information about SAML authentication, see Configure Authentication Using a SAML Security Token on

TechNet.

Supporting Claims Tokens Issued by SharePoint 2010 in Claims-Aware Web Services

One of the key requirements for collaboration scenarios is being able to share data. In most cases, the data that you

want to use when collaborating comes from other systems. You can take advantage of the benefits of claims-based

authentication to delegate the identity of the current user to the system where the information resides. For this to work,

your system must be claims-aware and must support the WS-Federation protocol. If your system is not claims-aware,

you can create a middle-tier that exposes the data via a claims-aware web service.

After you have the data exposed via a claims-aware web service, you can use the Microsoft Business Connectivity

Services (BCS) in SharePoint 2010 to expose the data in SharePoint 2010. To learn more about how to enable this

scenario, see Consuming a Claims-Enabled WCF Web Service as a SharePoint 2010 External Content Type. 

Enabling High-Security Authentication (2FA) in SharePoint 2010

Advanced authentication schemes like two-factor authentication (2FA) and client certificate –based authentication can

be implemented in SharePoint 2010 by using SAML authentication. Identity management products, like AD FS 2.0,

support high-security authentication, including 2FA. In this scenario, and similar to the previous scenario, the external

STS is used to authenticate the user via any of the authentication methods that are supported by the provider.

For more information about configuring SharePoint 2010 for client certificate –based authentication, see Configure Client

Certificate Authentication (SharePoint Server 2010) on TechNet.

To learn more about configuring SharePoint 2010 with SAML authentication, see Configure Authentication Using a SAML

Security Token on TechNet.

For information about configuring AD FS 2.0, see AD FS 2.0 Deployment Guide on TechNet.

Conclusion

As explained in this article, you can take advantage of the benefits of claims-based authentication to enable different

authentication scenarios. You can also make customizations to improve the user experience when collaborating through

SharePoint 2010.

About the Author

Javier Dalzell works in the product solutions division of  Schakra Inc, a company that provides solutions for

SharePoint 2010, Office 365, cloud computing, and the mobile segment. Prior to joining Schakra, Javier worked with the

Microsoft SharePoint 2010 team.

Additional Resources

For more information, see the following resources:

  Steve Peschka's Blog: Share-n-dipity 

  Security Cmdlets (SharePoint Foundation 2010) 

  Security Blogs, Resource Centers, Code Samples, and SharePoint Forums 

Page 16: Claims Architecture and Scenarios for Share Point 2010 Developers

8/4/2019 Claims Architecture and Scenarios for Share Point 2010 Developers

http://slidepdf.com/reader/full/claims-architecture-and-scenarios-for-share-point-2010-developers 16/16

  Claims Tips 1: Learning About Claims-Based Authentication in SharePoint 2010 

  Claims Walkthrough: Writing Claims Providers for SharePoint 2010 

  Claims Walkthrough: Creating Claims Providers for Trusted Login Providers for SharePoint 2010 

  Forms Authentication in SharePoint Products and Technologies (Part 1): Introduction 

  Incoming Claims: Signing into SharePoint 

  Claims-Based Identity Term Definitions 

  Microsoft.SharePoint.Administration.Claims 

  Planning, Upgrade, Migration, Administration, Configuration and Setup 

  2 | Security in SharePoint 2010 (video presentations) 

  SharePoint Developer Team Blog 

  Security Resource Center | SharePoint 2010 

  SharePoint Developer Center