Protezione estesa per l'autenticazione con Reporting Services

La protezione estesa consiste in un set di miglioramenti apportati alle versioni recenti del sistema operativo MicrosoftWindows. La protezione estesa migliora la protezione di credenziali e autenticazione da parte delle applicazioni. La caratteristica non fornisce direttamente la protezione contro attacchi specifici quale l'inoltro delle credenziali, ma rende disponibile un'infrastruttura per le applicazioni, ad esempio Reporting Services, per l'imposizione della protezione estesa per l'autenticazione.

I principali miglioramenti introdotti riguardanti l'autenticazione che fanno parte della protezione estesa sono il binding di canale e l'associazione al servizio. Il binding di canale utilizza un token CBT (Channel Binding Token) per verificare che il canale stabilito tra due endpoint non sia compromesso. L'associazione al servizio utilizza nomi SPN (Service Principal Name) per convalidare la destinazione desiderata dei token di autenticazione. Per informazioni complementari sulla protezione estesa, vedere la pagina relativa all'autenticazione integrata di Windows con protezione estesa.

SQL Server 2008 R2 Reporting Servicessupporta e impone la protezione estesa abilitata nel sistema operativo e configurata in Reporting Services. Per impostazione predefinita, Reporting Services accetta le richieste che specificano l'autenticazione Negotiate o NTLM ed è pertanto in grado di usufruire del supporto della protezione estesa offerto dal sistema operativo e dalle caratteristiche di protezione estesa di Reporting Services.

Nota importanteImportante

Per impostazione predefinita, Windows non abilita la protezione estesa. Per informazioni sull'abilitazione della protezione estesa in Windows, vedere Maggiore protezione per l'autenticazione. Per garantire che l'autenticazione abbia esito positivo, è necessario che il sistema operativo e lo stack di autenticazione del client supportino entrambi la protezione estesa. Per i sistemi operativi meno recenti potrebbe essere necessario installare più aggiornamenti per ottenere un computer in grado di utilizzare appieno la protezione estesa. Per informazioni sugli sviluppi recenti della protezione estesa, vedere la pagina relativa alle informazioni aggiornate sulla protezione estesa.

Cenni preliminari sulla protezione estesa di Reporting Services

SQL Server 2008 R2 Reporting Services supporta e impone la protezione estesa abilitata nel sistema operativo. Se il sistema operativo non supporta la protezione estesa o la caratteristica del sistema operativo non è stata abilitata, l'autenticazione eseguita dalla caratteristica di protezione estesa di Reporting Services avrà esito negativo. La protezione estesa di Reporting Services richiede inoltre un certificato SSL. Per ulteriori informazioni, vedere Configurazione di un server di report per le connessioni SSL (Secure Sockets Layer)

Nota importanteImportante

Per impostazione predefinita, Reporting Services non abilita la protezione estesa. La caratteristica può essere abilitata modificando il file di configurazione rsreportserver.config o utilizzando le API di WMI che consentono di aggiornare il file di configurazione. SQL Server 2008 R2 Reporting Servicesnon fornisce un'interfaccia utente per la modifica o la visualizzazione delle impostazioni relative alla protezione estesa. Per ulteriori informazioni, vedere la sezione relativa alle impostazioni di configurazione in questo argomento.

I problemi comuni che si verificano a causa della modifica delle impostazioni relative alla protezione estesa o alla configurazione non corretta delle impostazioni non vengono esposti con messaggi o finestre di dialogo di errore. I problemi correlati alla configurazione e alla compatibilità della protezione estesa causano problemi di autenticazione ed errori nei log di traccia di Reporting Services. Per informazioni sulla risoluzione dei problemi e sulla verifica della protezione estesa con Reporting Services, vedere Risoluzione dei problemi relativi alla protezione estesa (Reporting Services).

Nota importanteImportante

Microsoft SQL Client non è stato aggiornato per supportare la protezione estesa al momento del rilascio di SQL Server 2008 R2. SQL Client viene utilizzato per connettersi alle origini dati di SQL Server e al database del catalogo Reporting Services. Questa limitazione di SQL Client determina un impatto su Reporting Services nei modi seguenti:

Per l'istanza di SQL Server che esegue il database del catalogo di Reporting Services non è possibile abilitare la protezione estesa. In caso contrario, il server di report non sarà in grado di connettersi al database del catalogo e restituirà errori di autenticazione.

Per le istanze di Server SQL utilizzate come origini dati di report Reporting Services non è possibile abilitare la protezione estesa. In caso contrario, i tentativi di connessione effettuati dal server di report alle origini dati dei report avranno esito negativo e verranno restituiti errori di autenticazione. Per risolvere il problema è possibile modificare le origini dati Reporting Services in modo che utilizzino provider nativi anziché SQL Client. Configurare ad esempio le origini dati per il driver ODBC che comporta l'utilizzo di SQL Native Client dotato del supporto per la protezione estesa.

Aggiornamento

  • L'aggiornamento di un server Reporting Services a SQL Server 2008 R2 determina l'aggiunta delle impostazioni di configurazione con i valori predefiniti al file rsreportserver.config. Se le impostazioni già sono presenti, queste verranno mantenute nel file rsreportserver.config durante l'installazione di SQL Server 2008 R2.

  • Quando le impostazioni di configurazione vengono aggiunte al file di configurazione rsreportserver.config, la caratteristica di protezione estesa di Reporting Services è disattivata per impostazione predefinita ed è necessario abilitarla come descritto in questo argomento. Per ulteriori informazioni, vedere la sezione relativa alle impostazioni di configurazione in questo argomento.

  • Il valore predefinito per l'impostazione RSWindowsExtendedProtectionLevel è Off.

  • Il valore predefinito per l'impostazione RSWindowsExtendedProtectionScenario è Proxy.

  • Preparazione aggiornamento a SQL Server 2008 R2 non verifica se il sistema operativo o l'installazione corrente di Reporting Services dispone del supporto della protezione estesa abilitato.

Elementi non coperti dalla protezione estesa di Reporting Services

Le aree e gli scenari funzionali seguenti non sono supportati dalla caratteristica di protezione estesa di Reporting Services:

  • Gli autori di estensioni di sicurezza personalizzate di Reporting Services devono aggiungere il supporto per la protezione estesa all'estensione di sicurezza personalizzata.

  • Per supportare la protezione estesa, i componenti di terze parti aggiunti o utilizzati da un'installazione di Reporting Servicesdevono essere aggiornati dal fornitore di terze parti. Per ulteriori informazioni, contattare il fornitore di terze parti.

Scenari di distribuzione e indicazioni

Negli scenari seguenti vengono illustrate distribuzioni e topologie diverse, nonché la configurazione consigliata per proteggerle con la protezione estesa di Reporting Services.

Connessione diretta

In questo scenario viene descritta la connessione diretta a un server di report, ad esempio un ambiente Intranet.

Scenario

Diagramma dello scenario

Modalità di protezione

Comunicazione SSL diretta.

Il server di report imporrà il binding di canale dal client al server di report.

Accesso diretto alla protezione estesa con SSL

1) Applicazione client

2) Server di report

  • L'associazione al servizio non è necessaria perché il canale SSL verrà utilizzato per il binding di canale.

Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Direct.

Comunicazione HTTP diretta. Il server di report imporrà l'associazione al servizio dal client al server di report.

Protezione estesa e accesso diretto

1) Applicazione client

2) Server di report

  • Non esiste alcun canale SSL, pertanto non è possibile alcuna imposizione del binding di canale.

  • L'associazione al servizio può essere convalidata, ma non rappresenta tuttavia una difesa completa senza il binding di canale. Se si utilizza solo l'associazione al servizio si disporrà unicamente di una protezione contro le minacce di base.

Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Any.

Proxy e bilanciamento del carico di rete

Le applicazioni client si connettono a un dispositivo o a un software che esegue SSL e passa le credenziali al server per l'autenticazione, ad esempio in un ambiente Extranet, Internet o in una rete Intranet sicura. Il client si connette a un proxy o a tutti i client che utilizzano un proxy.

La situazione è analoga quando si utilizza un dispositivo per il bilanciamento del carico di rete (NLB).

Scenario

Diagramma dello scenario

Modalità di protezione

Comunicazione HTTP. Il server di report imporrà l'associazione al servizio dal client al server di report.

Accesso indiretto alla protezione estesa RS

1) Applicazione client

2) Server di report

3) Proxy

  • Non esiste alcun canale SSL, pertanto non è possibile alcuna imposizione del binding di canale.

Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Any.

  • Per garantire che l'associazione al servizio venga imposta correttamente, è necessario configurare il server di report in modo che sia a conoscenza del nome del server proxy.

Comunicazione HTTP.

Il server di report imporrà il binding di canale dal client al proxy e l'associazione al servizio dal client al server di report.

Accesso indiretto alla protezione estesa RS con SSL

1) Applicazione client

2) Server di report

3) Proxy

  • Il canale SSL al proxy è disponibile, pertanto il binding di canale al proxy può essere imposto.

  • Anche l'associazione al servizio può essere imposta.

  • Il nome del proxy deve essere noto al server di report e a tale scopo l'amministratore del server di report deve creare una prenotazione di URL per il proxy con un'intestazione host oppure configurare il nome del Proxy nella voce BackConnectionHostNames del Registro di sistema di Windows.

Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Proxy.

Comunicazione HTTPS indiretta con un proxy sicuro. Il server di report imporrà il binding di canale dal client al proxy e l'associazione al servizio dal client al server di report.

Protezione estesa, accesso indiretto, SSL e HTTPS

1) Applicazione client

2) Server di report

3) Proxy

  • Il canale SSL al proxy è disponibile, pertanto il binding di canale al proxy può essere imposto.

  • Anche l'associazione al servizio può essere imposta.

  • Il nome del proxy deve essere noto al server di report e a tale scopo l'amministratore del server di report deve creare una prenotazione di URL per il proxy con un'intestazione host oppure configurare il nome del proxy nella voce BackConnectionHostNames del Registro di sistema di Windows.

Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Proxy.

Gateway

In questo scenario vengono descritte applicazioni client che si connettono a un dispositivo o a un software che esegue SSL e autentica l'utente. Il dispositivo o il software rappresenta quindi il contesto utente o un contesto utente diverso prima di inviare una richiesta al server di report.

Scenario

Diagramma dello scenario

Modalità di protezione

Comunicazione HTTP indiretta.

Il gateway imporrà il binding di canale dal client al gateway. È disponibile un'associazione al servizio dal gateway al server di report.

Accesso indiretto alla protezione estesa RS con SSL

1) Applicazione client

2) Server di report

3) Dispositivo del gateway

  • Il binding di canale da client a server di report non è possibile perché il gateway rappresenta un contesto e crea pertanto un nuovo token NTLM.

  • Non è disponibile alcun SSL dal gateway al server di report, pertanto il binding di canale non può essere imposto.

  • L'associazione al servizio può essere imposta.

Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Any.

  • Per imporre il binding di canale, il dispositivo del gateway deve essere configurato dall'amministratore.

Comunicazione HTTPS indiretta con un gateway sicuro. Il gateway imporrà il binding di canale dal client al gateway e il server di report imporrà il binding di canale dal gateway al server di report.

Protezione estesa, accesso indiretto, SSL e HTTPS

1) Applicazione client

2) Server di report

3) Dispositivo del gateway

  • Il binding di canale da client a server di report non è possibile perché il gateway rappresenta un contesto e crea pertanto un nuovo token NTLM.

  • SSL dal gateway al server di report significa che il binding di canale può essere imposto.

  • L'associazione al servizio non è necessaria.

Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Direct.

  • Per imporre il binding di canale, il dispositivo del gateway deve essere configurato dall'amministratore.

Combinazione

In questo scenario viene descritto un ambiente Extranet o Internet in cui il client si connette a un proxy. Questo in combinazione con un ambiente Intranet in cui un client si connette al server di report.

Scenario

Diagramma dello scenario

Modalità di protezione

Accesso indiretto e diretto da client a servizio del server di report senza SSL su una delle connessioni da client a proxy o da client a server di report.

Ambiente misto con protezione estesa

1) Applicazione client

2) Server di report

3) Proxy

4) Applicazione client

  • L'associazione al servizio da client a server di report può essere imposta.

  • Il nome del proxy deve essere noto al server di report e a tale scopo l'amministratore del server di report deve creare una prenotazione di URL per il proxy con un'intestazione host oppure configurare il nome del proxy nella voce BackConnectionHostNames del Registro di sistema di Windows.

Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Any.

Accesso indiretto e diretto da client a server di report in cui il client stabilisce una connessione SSL al proxy o al server di report.

Protezione estesa combinata con SSL

1) Applicazione client

2) Server di report

3) Proxy

4) Applicazione client

  • Il binding di canale può essere utilizzato

  • Il nome del proxy deve essere noto al server di report e a tale scopo l'amministratore del server di report deve creare una prenotazione di URL per il proxy con un'intestazione host oppure configurare il nome del proxy nella voce BackConnectionHostNames del Registro di sistema di Windows.

Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Proxy.

Configurazione della protezione estesa di Reporting Services

Il file rsreportserver.config contiene i valori di configurazione che controllano il comportamento della protezione estesa di Reporting Services.

Per ulteriori informazioni sull'utilizzo e la modifica del file rsreportserver.config, vedere File di configurazione RSReportServer. Le impostazioni relative alla protezione estesa possono inoltre essere modificate e controllate utilizzando le API di WMI. Per ulteriori informazioni, vedere Metodo SetExtendedProtectionSettings (MSReportServer_ConfigurationSetting WMI).

Quando la convalida delle impostazioni di configurazione ha esito negativo, i tipi di autenticazione RSWindowsNTLM, RSWindowsKerberos e RSWindowsNegotiate vengono disabilitati nel server di report.

Impostazioni di configurazione per la protezione estesa di Reporting Services

Nella tabella seguente vengono fornite le informazioni sulle impostazioni di configurazione incluse nel file rsreportserver.config per la protezione estesa.

Impostazione

Descrizione

RSWindowsExtendedProtectionLevel

Specifica il grado di imposizione della protezione estesa. I valori validi sono Off, Allow e Require.

Il valore predefinito è Off.

Il valore Off specifica che non viene eseguita alcuna verifica del binding di canale o dell'associazione al servizio.

Il valore Allow indica il supporto della protezione estesa senza tuttavia richiederlo. Il valore Allow specifica quanto segue:

  • La protezione estesa verrà imposta per le applicazioni client in esecuzione nei sistemi operativi che supportano la protezione estesa. La modalità di imposizione della protezione è determinata dall'impostazione RsWindowsExtendedProtectionScenario.

  • L'autenticazione sarà consentita per le applicazioni client in esecuzione nei sistemi operativi che non supportano la protezione estesa.

Il valore Require specifica quanto segue:

  • La protezione estesa verrà imposta per le applicazioni client in esecuzione nei sistemi operativi che supportano la protezione estesa.

  • L'autenticazione non sarà consentita per le applicazioni client in esecuzione nei sistemi operativi che non supportano la protezione estesa.

RsWindowsExtendedProtectionScenario

Specifica le forme di protezione estesa da convalidare, ovvero binding di canale, associazione al servizio o entrambe. I valori validi sono Any, Proxy e Direct.

Il valore predefinito è Proxy.

Il valore Any specifica quanto segue:

  • L'autenticazione NTLM, Kerberos e Negotiate di Windows e un binding di canale non sono necessari.

  • L'associazione al servizio viene imposta.

Il valore Proxy specifica quanto segue:

  • Autenticazione NTLM, Kerberos e Negotiate di Windows quando è presente un token di binding di canale (CBT, Channel Binding Token).

  • L'associazione al servizio viene imposta.

Il valore Direct specifica quanto segue:

  • Autenticazione NTLM, Kerberos e Negotiate quando è presente un token CBT. È inoltre presente una connessione SSL al servizio corrente e il token CBT per la connessione SSL corrisponde al token CBT del token NTLM, Kerberos o Negotiate.

  • L'associazione al servizio non viene imposta.

NotaNota
Questa impostazione viene ignorata se RsWindowsExtendedProtectionLevel è impostata su OFF.

Voci di esempio nel file di configurazione rsreportserver.config:

<Authentication>
         <RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
         <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionLevel>
</Authentication>

Associazione al servizio e nomi SPN inclusi

L'associazione al servizio utilizza nomi SPN (Service Principal Name) per convalidare la destinazione desiderata dei token di autenticazione. Reporting Services utilizza le informazioni sulla prenotazione di URL esistenti per compilare un elenco di nomi SPN considerato valido. L'utilizzo delle informazioni sulla prenotazione di URL per la convalida dei nomi SPN e delle prenotazioni di URL consente agli amministratori di sistema di gestire entrambi gli elementi da un'unica posizione.

L'elenco di nomi SPN validi viene aggiornato all'avvio del server di report, al momento della modifica delle impostazioni di configurazione per la protezione estesa o quando viene riciclato il dominio applicazione.

L'elenco di nomi SPN validi è specifico di ogni applicazione. Ad esempio, Gestione report e il server di report necessitano ognuno di un elenco diverso di nomi SPN validi elaborati.

L'elenco di nomi SPN validi elaborati per un'applicazione è determinato dai fattori seguenti:

  • Ogni prenotazione di URL.

  • Ogni nome SPN recuperato dal controller di dominio per l'account del servizio Reporting Services.

  • Se una prenotazione di URL include caratteri jolly ("*" o "+"), il server di report aggiungerà ogni voce dalla raccolta Host.

Origini della raccolta Host.

Nella tabella seguente vengono elencate le origini potenziali per la raccolta Host.

Tipo di origine

Descrizione

ComputerNameDnsDomain

Nome di dominio DNS assegnato al computer locale. Se il computer locale è un nodo di un cluster, verrà utilizzato il nome di dominio DNS del server virtuale del cluster.

ComputerNameDnsFullyQualified

Nome DNS completo che identifica in modo univoco il computer locale. Questo nome è una combinazione del nome host DNS e del nome di dominio DNS nel formato NomeHost.NomeDominio. Se il computer locale è un nodo di un cluster, verrà utilizzato il nome DNS completo del server virtuale del cluster.

ComputerNameDnsHostname

Nome host DNS del computer locale. Se il computer locale è un nodo di un cluster, verrà utilizzato il nome host DNS del server virtuale del cluster.

ComputerNameNetBIOS

Nome del NetBIOS del computer locale. Se il computer locale è un nodo di un cluster, verrà utilizzato il nome del NetBIOS del server virtuale del cluster.

ComputerNamePhysicalDnsDomain

Nome di dominio DNS assegnato al computer locale. Se il computer locale è un nodo di un cluster, verrà utilizzato il nome di dominio DNS del computer locale, anziché il nome del server virtuale del cluster.

ComputerNamePhysicalDnsFullyQualified

Nome DNS completo che identifica in modo univoco il computer. Se il computer locale è un nodo di un cluster, verrà utilizzato il nome DNS completo del computer locale, anziché il nome del server virtuale del cluster.

Il nome DNS completo è una combinazione del nome host DNS e del nome di dominio DNS nel formato NomeHost.NomeDominio.

ComputerNamePhysicalDnsHostname

Nome host DNS del computer locale. Se il computer locale è un nodo di un cluster, verrà utilizzato il nome host DNS del computer locale, anziché il nome del server virtuale del cluster.

ComputerNamePhysicalNetBIOS

Nome del NetBIOS del computer locale. Se il computer locale è un nodo di un cluster, verrà utilizzato il nome del NetBIOS del computer locale, anziché il nome del server virtuale del cluster.

L'aggiunta di nomi SPN determina l'aggiunta al log di traccia di una voce simile alle seguenti:

rshost!rshost!10a8!01/07/2010-19:29:38:: i INFO: SPN Whitelist Added <ComputerNamePhysicalNetBIOS> - <theservername>.

rshost!rshost!10a8!01/07/2010-19:29:38:: i INFO: SPN Whitelist Added <ComputerNamePhysicalDnsHostname> - <theservername>.

Per ulteriori informazioni, vedere Procedura: Registrazione di un nome dell'entità servizio (SPN) per un server di report e Informazioni su prenotazioni e registrazione URL (Reporting Services).