Delega dell'identità per SQL Server Reporting Services (SharePoint Server 2010)

SharePoint 2010
 

Si applica a: SharePoint Server 2010

Ultima modifica dell'argomento: 2016-11-30

In questo scenario viene configurata una coppia di server SQL Server Reporting Services (SSRS) con carico bilanciato in una configurazione con scalabilità orizzontale in modalità integrata SharePoint. I server sono configurati per accettare l'autenticazione Kerberos e delegano l'autenticazione a un cluster di SQL Server back-end.

In questo scenario la farm di SharePoint Server e l'origine dati Reporting Services si trovano nello stesso dominio. Viene pertanto configurata la delega vincolata Kerberos per consentire la delega dell'identità all'origine dati back-end. Se è richiesta l'autenticazione nelle origini dati di altri domini della stessa foresta, è necessario configurare la delega Kerberos di base (non vincolata). Poiché Reporting Services non utilizza Attestazioni per il servizio token Windows, può utilizzare la delega di base.

NotaNote
Se si esegue l'installazione in Windows Server 2008, potrebbe essere necessario installare l'hotfix seguente per l'autenticazione Kerberos:
Un'autenticazione Kerberos ha esito negativo con codice errore 0X80090302 oppure 0x8009030f in un computer in cui è in esecuzione Windows Server 2008 o Windows Vista quando viene utilizzato l'algoritmo AES (https://support.microsoft.com/kb/969083/it)

 

Area di configurazione Descrizione

Active Directory

Creare un account di servizio di SSRS

Configurare la delega vincolata Kerberos

SQL Server Reporting Services

Installare e configurare SSRS con carico bilanciato in modalità con scalabilità orizzontale

Modificare il file web.config

Modificare il file ReportingServer.config

Configurazione di SharePoint Server

Configurare l'integrazione di Reporting Services

Aggiungere un server di report all'integrazione

Configurare le impostazioni predefinite del server

Verifica della configurazione

Creare una raccolta documenti per i report

Configurare l'impostazione della raccolta siti per Reporting Services

Creare e pubblicare un report di prova in SQL Server Business Intelligence Development Studio

Visualizzare il report di prova in Internet Explorer

Diagramma dell'ambiente dello scenario

In questo scenario gli account di servizio del pool di applicazioni Internet Information Services (IIS) vengono configurati per la delega al servizio SQL Server Reporting Services (SSRS). L'account di servizio di SSRS viene configurato per la delega delle credenziali al servizio SQL Server. Si noti che SQL Server Reporting Services nella modalità integrata SharePoint non utilizza l'autenticazione basata sulle attestazioni all'interno della farm e richiede l'autenticazione Kerberos per l'autenticazione delegata. Per ulteriori informazioni, vedere Autenticazione attestazioni e Reporting Services.

In questo esempio l'origine dati a cui si connette SSRS si trova nello stesso dominio dei server SSRS. In alcuni casi invece si desidera accedere a origini dati all'esterno del dominio in cui si trova SSRS. Per l'autenticazione con delega tra domini, è necessario configurare la delega di base (senza vincoli) nell'account di servizio di SSRS. Questa operazione è possibile perché il servizio SSRS non si basa su Attestazioni per il servizio token Windows e pertanto non richiede la transizione del protocollo attraverso la delega vincolata Kerberos. Si noti inoltre che non è consentita la delega tra foreste, neanche con la delega di base.

Configurare DNS per il gruppo di server SSRS con Bilanciamento carico di rete nell'ambiente in uso. In questo esempio sono presenti due server SSRS, VMSSRS01 e VMSSRS02, con carico bilanciato che vengono risolti nello stesso VIP con Bilanciamento carico di rete (192.168.24.180/24). Il VIP verrà mappato all'host FarmReports e sarà associato all'URL http://FarmReports.

Per informazioni generali su come configurare DNS, vedere Gestione dei record DNS (le informazioni potrebbero essere in lingua inglese).

Configurare un nuovo record A DNS per l'host SSRS. In questo esempio si dispone di un host FarmReports configurato per la risoluzione nel VIP con carico bilanciato.

Come procedura consigliata, SQL Server Reporting Services deve essere eseguito con la propria identità di dominio. In questo esempio sono stati creati gli account seguenti:

 

Servizio Identità del servizio

SQL Server Reporting Services

vmlab\svcSQLRS

Per la connessione e l'autenticazione di SSRS in origini dati esterne con l'autenticazione Kerberos, è necessario che siano configurati nomi delle entità servizio per gli account di servizio del servizio Web ReportServer e di Gestione report, nonché per l'account di servizio per l'origine dati esterna. Fare riferimento agli scenari 1 e 2 (Configurazione di base e Autenticazione Kerberos per SQL OLTP) in questa serie di articoli per configurare e convalidare i nomi delle entità servizio (SPN, Service Principal Name) necessari nelle applicazioni Web SharePoint Server e negli account di servizio di SQL Server. Per i server SSRS, sono stati definiti gli SPN seguenti:

 

Host DNS Identità del pool di applicazioni IIS Nomi delle entità servizio

FarmReports.vmlab.local

vmlab\svcSQLRS

HTTP/FarmReports

HTTP/ FarmReports.vmlab.local

In questo esempio sono stati eseguiti i comandi seguenti:

SetSPN -S HTTP/FarmReports vmlab\svcSQLRS

SetSPN -S HTTP/FarmReports.vmlab.local vmlab\svcSQLRS

La delega Kerberos deve essere configurata in modo che SSRS deleghi l'identità del client all'origine dati back-end. In questo esempio SSRS esegue query sui dati di un database transazionale di SQL Server utilizzando l'identità del client ed è necessaria pertanto la delega Kerberos. In questo scenario la delega vincolata Kerberos non è un requisito poiché non è necessaria la transizione del protocollo, ma viene comunque configurata come procedura consigliata.

L'account di servizio di SSRS che esegue i servizi SSRS deve essere considerato attendibile per la delega delle credenziali a ogni servizio back-end. In questo esempio sono necessari i percorsi di delega seguenti:

 

Tipo entità Nome entità Delega al servizio

Utente

Vmlab\svcPortal10App

HTTP/FarmReports

HTTP/FarmReports.vmlab.local

Utente

Vmlab\svcSQLRS

MSSQLSVC/MySqlCluster.vmlab.local:1433

Facoltativamente, se si desidera generare un report basato sulle origini dati Analysis Services, configurare i percorsi di delega seguenti:

 

Tipo entità Nome entità Delega al servizio

Utente

Vmlab\svcSQLRS

MSOLAPSvc.3/MySqlCluster.vmlab.local

Per configurare la delega vincolata
  1. Aprire le proprietà dell'oggetto Active Directory in Utenti e computer di Active Directory.

  2. Passare alla scheda Delega.

  3. Selezionare Utente attendibile per la delega solo ai servizi specificati.

    NotaNote
    Se per l'account di servizio di SSRS si desidera eseguire l'autenticazione in origini dati nella stessa foresta, ma all'esterno del dominio in cui si trova il server SSRS, configurare la delega di base anziché la delega vincolata. A tale scopo, selezionare Computer attendibile per la delega a qualsiasi servizio. Ricordarsi che la delega Kerberos tra foreste non è consentita.
  4. Selezionare facoltativamente Utilizza un qualsiasi protocollo di autenticazione. In questo modo viene abilitata la transizione del protocollo.

  5. Fare clic sul pulsante Aggiungi per selezionare l'entità servizio che può essere utilizzata come destinazione della delega.

  6. Selezionare Utenti e computer.

  7. Selezionare l'account di servizio con cui viene eseguito il servizio di destinazione della delega. In questo esempio corrisponde all'account di servizio per SQL Server Reporting Service.

    NotaNote
    All'account di servizio selezionato deve essere applicato un SPN. In questo esempio l'SPN dell'account (HTTP/FarmReports.vmlab.local) è stato configurato in uno scenario precedente.
  8. Fare clic su OK. Verrà chiesto di selezionare gli SPN di destinazione della delega nella pagina successiva.

  9. Selezionare il servizio oppure Seleziona tutto e fare clic su OK.

    A questo punto gli SPN selezionati dovrebbero essere visibili nell'elenco Servizi ai quali l'account può presentare credenziali delegate.

  10. Ripetere questi passaggi per ogni percorso di delega identificato più indietro in questa sezione. È necessario configurare la delega dall'account di servizio di SQL Server Reporting Services a una o più origini dati back-end (SQL OLTP o SQL Analysis Services in questi scenari).

    NotaNote
    Se per l'account di servizio di SSRS si desidera eseguire l'autenticazione in origini dati nella stessa foresta, ma all'esterno del dominio in cui si trova il server SSRS, configurare la delega di base anziché la delega vincolata. A tale scopo, selezionare Computer attendibile per la delega a qualsiasi servizio. Ricordarsi che la delega Kerberos tra foreste non è consentita.

Verificare l'esistenza dell'SPN per l'account di servizio di SQL Analysis Services (vmlab\svcSQL) utilizzando il comando SetSPN seguente:

SetSPN -L vmlab\svcSQL

Dovrebbe visualizzarsi quanto segue:

MSSQLSVC/MySqlCluster MSSQLSVC/MySqlCluster.vmlab.local:1433

Verificare l'esistenza dell'SPN per l'account di servizio di SQL Server (vmlab\svcSQLAS) utilizzando il comando SetSPN seguente:

SetSPN -L vmlab\svcSQLAS

Dovrebbe visualizzarsi quanto segue:

MSOLAPSvc.3/MySqlCluster MSOLAPSvc.3/MySqlCluster.vmlab.local

SQL Server Reporting Services richiede l'installazione di SharePoint Server 2010 in ogni server SSRS per l'esecuzione di SSRS nella modalità integrata SharePoint. Installare SharePoint Server 2010 in ogni server di report e aggiungere ogni server alla farm di SharePoint Server.

Nell'ambito di questo documento non sono previste istruzioni dettagliate per la configurazione di SQL Server Reporting Services in un ambiente con carico bilanciato e scalabilità orizzontale. Per istruzioni dettagliate sull'installazione di SSRS, vedere Topologie di distribuzione di Reporting Services in modalità integrata SharePoint. Dopo aver installato SSRS, eseguire i passaggi aggiuntivi per la configurazione di SSRS descritti di seguito per completare l'installazione.

È necessario apportare le modifiche seguenti ai file web.config in ogni server SSRS. Il file web.config è contenuto nella cartella Programmi dove è installato SSRS.

Aggiungere l'elemento <machineKey>

I server SSRS in una configurazione con carico bilanciato necessitano della stessa chiave di computer in tutti i server. Questo elemento deve essere aggiunto come elemento figlio dell'elemento <system.web> in web.config. Di seguito viene riportata una chiave di computer di esempio:

<machineKey
validationKey="54AEBD3BC893726E9B84D30F4970CB58F2086C2DAEE2F8D34A65A0632F4676DDBBC38779F2972C6596931E
13BD07A772BD4B9395BE38A43E461079E45D594E53"
decryptionKey=""
validation="SHA1"
decryption="AES"
/>
ImportanteImportant
NON UTILIZZARE LA CHIAVE DI COMPUTER DI ESEMPIO NELL'AMBIENTE. Generare i valori di chiave specifici per l'ambiente in uso.

È necessario apportare le modifiche seguenti ai file ReportingServer.config in ogni server SSRS. Il file ReportingServer web.config è contenuto nella cartella Programmi dove è installato SSRS.

Per abilitare l'autenticazione Kerberos, impostare il tipo di autenticazione su "RSWindowsNegotiate". Modificare l'elemento <AuthenticationTypes/> e aggiungere <RSWindowsNegotiate/>:

<AuthenticationTypes>
    <RSWindowsNegotiate/>
</AuthenticationTypes>

Aggiungere l'URL per il server di report al tag <UrlRoot> contenuto nel tag <service> di ReportingServer.config.

<UrlRoot>http://FarmReports/reportserver</UrlRoot>

Per consentire a SQL Server Reporting Services di eseguire l'autenticazione reciprocamente in un unico computer, è necessario fare riferimento al rilevamento loopback NTLM. Anziché disabilitare il rilevamento loopback, è consigliabile configurare il valore BackConnectionHostNames nel Registro di sistema di ogni server SSRS. Per ulteriori informazioni su BackConnectionHostNames, vedere Viene visualizzato un messaggio di errore quando si utilizza SQL Server 2008 Reporting Services .

Nell'esempio vengono configurati i valori seguenti per BackConnectionHostNames:

  • FarmReports

  • FarmReports.vmlab.local

Dopo aver impostato i valori BackConnectionHostNames, riavviare il server SSRS.

In Amministrazione centrale sono disponibili le opzioni di configurazione della farm per SSRS. Si noti che in SharePoint Server 2010 non è necessario effettuare un'installazione di componenti SSRS separati per l'amministrazione e le web part SSRS. Per accedere alle opzioni della farm di SSRS, passare ad Amministrazione centrale e visualizzare Reporting Services nella sezione Impostazioni generali applicazione.

Un passaggio obbligatorio della configurazione di SQL Server Reporting Services nella modalità integrata SharePoint consiste nel concedere all'account di servizio di Reporting Services l'accesso ai database del contenuto per le applicazioni Web che ospitano i report. In questo esempio all'account di Reporting Services viene concesso l'accesso al database del contenuto dell'applicazione Web "portal" tramite Windows PowerShell.

Eseguire il comando seguente dalla Shell di gestione SharePoint 2010:

$w = Get-SPWebApplication -Identity http://portal

$w.GrantAccessToProcessIdentity("vmlab\svcSQLRS")

Nella finestra di dialogo Integrazione Reporting Services specificare l'URL con carico bilanciato del server di report. Selezionare inoltre l'opzione Attiva caratteristica in tutte le raccolte esistenti per attivare automaticamente la caratteristica Reporting Services nelle raccolte siti.

Nella finestra di dialogo Aggiungi un server di report all'integrazione specificare ogni nodo del gruppo di Reporting Services con Bilanciamento carico di rete. È necessario aprire questa finestra di dialogo per ogni server che viene aggiunto all'integrazione. Non è possibile aggiungere più server in un'unica operazione.

A questo punto l'integrazione di SSRS dovrebbe essere configurata. Per convalidare la configurazione, aprire la pagina Impostazioni predefinite server per Reporting Services. Per l'esempio in questo documento non sono necessarie modifiche.

Creare una raccolta documenti per ospitare i report SSRS nel sito di SharePoint. In questo esempio si presuppone l'esistenza di una raccolta documenti denominata "reports" in http://portal/reports.

Nel browser passare a Impostazioni sito per il sito che ospita la raccolta documenti per i report SSRS. In Impostazioni sito dovrebbe essere visibile una nuova categoria denominata Reporting Services.

Se nell'elenco delle caratteristiche della raccolta siti non è inclusa la caratteristica Reporting Services, potrebbe essere necessario attivarla da Amministrazione centrale. Per ulteriori informazioni, vedere Procedura: Attivazione della caratteristica per server di report in Impostazioni sito (http://go.microsoft.com/fwlink/?linkid=196878&clcid=0x410).

Fare clic sul collegamento delle impostazioni di sito per Reporting Services per verificare che le impostazioni siano accessibili.

NotaNote
Per questa dimostrazione non è necessario apportare modifiche a Impostazioni sito per Reporting Services.

Dopo aver configurato SSRS e l'integrazione con SharePoint Server, creare un report di prova per verificare che la delega dell'identità funzioni correttamente.

  1. Aprire SQL Server Business Intelligence Development Studio. Fare clic su File, Nuovo e quindi Progetto.

  2. Selezionare Creazione guidata progetto server di report e immettere un nome di progetto.

  3. Configurare quindi una nuova origine dati. Scegliere il tipo Microsoft SQL Server e fare clic sul pulsante Modifica.

  4. In Proprietà connessione immettere le informazioni per la connessione al cluster di SQL Server di dimostrazione creato nello scenario 2.

  5. Aprire Progettazione query, fare clic con il pulsante destro del mouse sulla finestra Query e scegliere Aggiungi tabella.

  6. Scegliere la tabella Sales (creata nello scenario 2) e quindi selezionare Tutte le colonne.

  7. Selezionare un tipo di report tabulare.

  8. In questo esempio viene eseguito il raggruppamento per area. È possibile ignorarlo, se lo si desidera.

  9. Dopo aver creato il progetto, accedere alle relative proprietà dal menu Progetto.

  10. Configurare le proprietà di progetto seguenti:

    1. TargetDatasetFolder - Impostare la proprietà sulla cartella del report di prova creata precedentemente

    2. TargetReportFolder - Impostare la proprietà sulla cartella del report di prova creata precedentemente

    3. TargetReportPartFolder - Impostare la proprietà sulla cartella del report di prova creata precedentemente

    4. TargetServerURL - Impostare la proprietà sull'URL dell'applicazione Web che ospita il report

  11. Distribuire il report nella raccolta di SharePoint. Scegliere Distribuisci <nome progetto> dal menu di generazione.

  12. Se l'operazione ha esito positivo, verrà visualizzato il messaggio di operazione riuscita nella finestra Output.

Aprire nel browser la raccolta documenti del report creata nei passaggi precedenti di questo scenario. Dovrebbe essere visibile il file di report appena pubblicato. In caso contrario, potrebbe essere necessario attivare la caratteristica Reporting Services nella raccolta siti. Per ulteriori informazioni, vedere Procedura: Attivazione della caratteristica per server di report in Impostazioni sito (http://go.microsoft.com/fwlink/?linkid=196878&clcid=0x410).

Fare clic sul report per eseguirne il rendering nel browser.

Per verificare ulteriormente la delega e la connessione dati, modificare l'origine dati in SQL Server Management Studio e aggiornare la connessione dati del report SSRS nel browser. Le modifiche apportate ai dati dovrebbero riflettersi nel report.

In alcuni ambienti potrebbe essere necessario proteggere le comunicazioni tra i server Web front-end e i server SSRS con SSL. In questo documento non è prevista una descrizione dettagliata della procedura di configurazione di SSL per Reporting Services, ma a livello generale i passaggi da eseguire sono i seguenti:

  1. Configurare ogni server di report per SSL. Vedere Configurazione di un server di report per le connessioni SSL (Secure Sockets Layer) (http://go.microsoft.com/fwlink/?linkid=196881&clcid=0x410).

  2. Aggiornare ReportingServer.config. Sostituire <UrlRoot> con il nuovo URL https://.

  3. Riavviare il servizio SQL Server Reporting Services.

  4. In Amministrazione centrale modificare le impostazioni di integrazione di Reporting Services e sostituire l'URL del servizio Web ReportServer con il nuovo URL https://.

  5. Riavviare IIS in ogni istanza di SharePoint Server che esegue il servizio applicazione Web.

Non è necessario sostituire gli SPN creati durante la configurazione di Reporting Services con HTTP nei passaggi precedenti. L'SPN per un servizio HTTP su SSL è sempre HTTP/<servizio>. È possibile osservare questo aspetto utilizzando NetMon per visualizzare il server Web front-end che comunica con Reporting Services Server.

Mostra: