Reporting Services 2012 et la configuration Kerberos: désolé vous devrez utiliser la constrained delegation avec C2WTS

Introduction

Dans un environnement SharePoint 2010 et Reporting Services 2008 R2, il était courant d’utiliser la délégation Kerberos basique (Any Services – Kerberos). C’est plus simple à configurer et ça fonctionne bien.

Malheureusement, ce ne sera plus possible dès lors que vous utiliserez Reporting Services 2012 intégré à SharePoint. La communication entre SharePoint et SSRS se fait maintenant via des Claims même si votre application Web est créée en mode classique (Authentification Windows).

Reporting Services reçoit une identité de type Claim qu’il ne peut pas envoyer vers SQL Server ou Analysis Services.

Il utilise donc le nouveau service C2WTS (Claims to Windows Token Service) afin de transformer le Claim en jeton Kerberos. Ce dernier fonctionne uniquement avec la délégation Kerberos constrained, any protocol.

Fonctionnement de haut niveau

La figure suivante (SPC074 – Wisnowski) illustre un sous ensemble d’une ferme SharePoint où un WFE utilise un ou plusieurs serveurs applicatifs hébergeant des applications BI (Excel Services, PerformancePoint Services, Reporting Services etc.) appelé Service Instance. On voit que chaque serveur applicatif doit avoir une instance du service C2WTS.

image

On voit un exemple ici (SPC074 – Wisnowski):

image

Les trois figures suivantes (SPC074 – Wisnowski) sont très explicites et peuvent vous servir à documenter la procédure:

image

image

image

Stratégie pour migrer de Kerberos Basic vers Kerberos Constrained

Vous avez probablement des comptes de services (utilisateurs AD) pour chacun des services utilisés dans votre environnement, par exemple:

Service

Compte

SQL Server (engin relationnel) cs-sql
Analysis Services cs-ssas
Reporting Services cs-ssrs
SharePoint (Web Apps) cs-web

Vous avez configuré les SPNs de votre réseau sur ces comptes de services et chacun délégue vers Any Sevices (Kerberos)

En introduisant un service SharePoint nécessitant C2WTS (ex. Reporting Services 2012) quelque part dans votre environnement, vous serez obligés d’utiliser la délégation constrained, any protocol. Plutôt que de risquer de mettre en péril vos systèmes existants en tentant de les migrer vers la délégation constrained, il serait plus prudent de créer de nouveaux comptes de services qui desserviront ces nouveaux déploiements. Par exemple:

Service

Compte

SQL Server (engin relationnel) cs-sql2012
Analysis Services cs-ssas2012
Reporting Services cs-ssrs2012
SharePoint (Web Apps) cs-web2012
C2WTS cs-c2wts

Notez qu’un même SPN ne peut être enregistré sur deux comptes AD différents alors il ne sera pas possible d’avoir deux versions de SQL Server (ex. 2008 et 2012) sur la même machine avec chacun un compte de service différent (ex. cs-sql et cs-sql2012). Cela ferait échouer Kerberos.

SPN Kerberos bidon

J’ai appris quelque chose sur Keberos en lisant toute la documentation rattachée à C2WTS: il est possible de créer des SPNs bidon. Et je l’ai testé avec succès.

Pourquoi on voudrait faire cela?

  1. Lorsque le SPN n’est pas vraiment utilisé mais il faut en avoir un afin que l’onglet Delegation apparaisse pour un compte de service. C’est le cas de C2WTS et on pourrait lui donner un SPN bidon SP/C2WTS.
  2. Lorsque vous souhaitez avoir des comptes séparés pour Reporting Services et SharePoint lorsqu’ils sont sur le même serveur. Puisqu’il s’agit de deux services HTTP, on ne pouvait pas leur assigner le même SPN (ex. HTTP/webapplication.domain.com). On utilisait donc le même compte de service.

    En mode Constrained Delegation (je ne sais pas si ça marche en mode basique), il est possible d’utiliser SP/SSRS (ou autre) de faire en sorte que l’utilisateur SharePoint (ex. cs-web) délègue vers l’utilisateur SSRS (ex. cs-ssrs).

Procédure d’installation

  1. Assurez-vous que votre site IIS désactive l’authentification anonyme, active l’impersonification ASP.Net, active Windows Authentication, utilise Negotiate comme provider et désactive le Kernel mode …

    image

    image

    image

  2. Assurez-vous que votre application Web SharePoint soit bien en authentification Windows, Kerberos (Negotiate).

    Claims Based Authentication

    Claims Based Authentication

    Si ce n’est pas le cas, vous devrez lancer le Powershell SharePoint et exécuter la commande suivante:

    $setcba = Get-SPWebApplication « http://YourSiteURL »
    $setcba.UseClaimsAuthentication = 0;
    $setcba.Update();

  3. Créer un nouveau compte de service pour C2WTS (ex. cs-c2wts) et sur chaque serveur qui hébergera un service BI (ex. SSRS 2012), vous devez:

    a) Le mettre comme administrateur local (oui c’est requis, même si cela génère des avertissements sur votre ferme)

    b) Lui assigner les droits suivants dans le Local Policy:
      i) Act as part of the Operating System
      ii) Impersonate a client after authentication
      iii) Log on as a service

    c) Dans SharePoint administration, Security –> Configure Managed Services Accounts, ajoutez cs-c2wts comme un compte géré:

    d) Dans System Settings –> Manage services on server, démarrez le service :

    image

    e) Dans Security –> Manage Service Accounts, changez l’identité de C2WTS pour cs-c2wts:

    f) IISReset

  4. Configurez Keberos

    a) Ajoutez tous les SPNs sur les comptes de service

      i) SP/C2WTS sur le compte de service C2WTS (ex. cs-c2wts)

      ii) SP/SSRS sur le compte de service SSRS (ex. cs-ssrs2012)

      iii) HTTP/webapplication.domain.com et HTTP/webapplication sur le compte de service SharePoint (ex. cs-web2012)

      iv) MSSQLSvc/sqlserver.domain.com:1433 et MSSQLSvc/sqlserver:1433 sur le compte SQL (ex. cs-sql2012)

      v) MSOLAPSvc.3/ssas.domain.com et MSOLAPSvc.3/ssas sur le compte de service SSAS (ex. cs-ssas2012)

    b) Configurez la délégation constrained ainsi:

    image

    pour (peut varier dans votre environnement):

      i) Le compte de service SharePoint délègue vers SSRS

      ii) Le compte de service SSRS délègue vers SQL Server et SSAS

      iii) Le compte de service SSAS délègue vers SQL Server

      iv) Le compte de service C2WTS délègue vers SSAS et SQL Server (Le KB mentionne que la liste des SPNs vers qui il délègue n’est pas important, il faut uniquement qu’il ait le bit UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION à ON). Je n’ai pas testé cette affirmation.

      v) Si vos rapports SSRS utilise des données dans SharePoint, il faudra aussi que le compte de service SSRS délègue vers SharePoint.

  5. Si vous utilisez deux comptes de services distincts pour SharePoint et SSRS (comme moi), vous devez donner les droits au compte SSRS sur les applications Web ayant des rapports:

    $w = Get-SPWebApplication -Identity http://webapplication.domain.com
    $w.GrantAccessToProcessIdentity(« domain\cs-ssrs2012 »)

Références

Claims to Windows Token Service (C2WTS)
http://msdn.microsoft.com/en-us/library/hh231678.aspx

Claims to Windows Token Service (c2WTS) Overview
http://msdn.microsoft.com/en-us/library/ee517278.aspx

SPC074 – Wisnowski – Implementing security for your BI applications
http://www.sharepoint-server.net/SPC2012/Shared%20Documents/SPC074_Wisnowski.pptx%20-%20Implementing%20Security%20for%20your%20BI%20Applications.pptx

How to configure Claim to Windows Token Services in SharePoint 2010 with Kerberos Authentication
http://support.microsoft.com/kb/2722087

Overview of Kerberos authentication for Microsoft SharePoint 2010 Products
http://technet.microsoft.com/en-us/library/gg502594.aspx

Enabling or Disabling Claims Based Authentication
http://www.topsharepoint.com/enabling-or-disabling-claims-based-authentication

Kerberos Authentication for SharePoint 2010
http://sbrickey.com/Tech/Blog/Post/Kerberos_Authentication_for_SharePoint_2010

[SP2010] – Configuring Kerberos Authentication for BI
http://gideonjacobs.blogspot.ca/2012/11/sp2010-configuring-kerberos.html

C2WTS: Accounts used by application pools or service identities are in the local machine Administrators group
http://hermansberghem.blogspot.ca/2011/04/c2wts-accounts-used-by-application.html

What Domain Account should be used for C2WTS in SharePoint 2010?
http://social.technet.microsoft.com/forums/en-US/sharepointadminprevious/thread/b61864cd-0054-4bfc-9ef5-938c11418337/

6 réflexions sur “Reporting Services 2012 et la configuration Kerberos: désolé vous devrez utiliser la constrained delegation avec C2WTS

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s