Protezione estesa per l'autenticazione con Reporting Services

La protezione estesa consiste in un set di miglioramenti apportati alle versioni recenti del sistema operativo Microsoft Windows. La protezione estesa migliora la protezione di credenziali e autenticazione da parte delle applicazioni. La funzionalità 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 l'associazione di canale e l'associazione al servizio. Nell'associazione di canale è utilizzato un token CBT (Channel Binding Token) per verificare che il canale stabilito tra due endpoint non sia compromesso. Nell'associazione al servizio sono utilizzati nomi SPN (Service Principal Name) per convalidare la destinazione desiderata dei token di autenticazione. Per informazioni complementari sulla protezione estesa, vedere Autenticazione integrata di Windows con protezione estesa.

SQL Server Reporting Services (SSRS) supporta e applica 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 funzionalità di protezione estesa di Reporting Services.

Importante

Per impostazione predefinita, Windows non abilita la protezione estesa. Per informazioni su come abilitare la protezione estesa in Windows, vedere Protezione estesa 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 ultimi sviluppi della protezione estesa, vedere la pagina relativa alle informazioni aggiornate sulla protezione estesa.

Abilitare la crittografia con la protezione estesa

Si applica a: SQL Server

Per migliorare la sicurezza quando si usa autenticazione di Windows, impostare Protezione estesa su Obbligatorio e Forza crittografia su in Gestione configurazione SQL Server.

Queste impostazioni forniscono la configurazione più sicura per SQL Server.

Annotazioni

In SQL Server 2022 (16.x) e versioni successive usare Force Strict Encryption anziché Forza crittografia per abilitare una maggiore sicurezza tramite TDS 8.0.

Aggiornare le stringhe di connessione per soddisfare queste modifiche.

Per ulteriori informazioni consulta:

Informazioni generali sulla protezione estesa di Reporting Services

SSRS supporta e impone la protezione estesa abilitata nel sistema operativo. Se il sistema operativo non supporta la protezione estesa o la funzionalità non è stata abilitata nel sistema operativo, l'autenticazione eseguita dalla funzionalità di protezione estesa di Reporting Services avrà esito negativo. La protezione estesa di Reporting Services richiede anche un certificato TLS/SSL. Per altre informazioni, vedere Configurare connessioni TLS in un server di report in modalità nativa

Importante

Per impostazione predefinita, Reporting Services non abilita la protezione estesa. La funzionalità può essere attivata modificando il file di configurazione rsreportserver.config o usando le API di WMI che consentono di aggiornare il file di configurazione. SSRS non offre un'interfaccia utente per la modifica o la visualizzazione delle impostazioni relative alla protezione estesa. Per altre 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.

Importante

È possibile che alcune tecnologie di accesso ai dati non supportino la protezione estesa. Per connettersi alle origini dati di SQL Server e al database del catalogo Reporting Services viene utilizzata una tecnologia di accesso ai dati. Un errore della tecnologia di accesso ai dati per supportare la protezione estesa influisce su Reporting Services nei seguenti modi:

  • Nel server SQL Server che esegue il database del catalogo di Reporting Services la protezione estesa non può essere abilitata; in caso contrario, il server di report non riuscirà a connettersi correttamente al database del catalogo e restituirà errori di autenticazione.
  • Per le istanze di SQL Server usate 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 non riusciranno e verranno restituiti errori di autenticazione.

La documentazione per una tecnologia di accesso ai dati deve disporre di informazioni sul supporto per la protezione estesa.

Aggiornamento

  • L'aggiornamento di un server Reporting Services a SQL Server 2016 determina l'aggiunta delle impostazioni di configurazione con i valori predefiniti al file rsreportserver.config. Le impostazioni già presenti vengono mantenute nel file rsreportserver.config durante l'installazione di SQL Server 2016.

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

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

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

  • Upgrade Advisor non verifica se il sistema operativo o l'installazione corrente di Reporting Services supportino l'abilitazione di Extended Protection.

Elementi non coperti dalla protezione estesa di Reporting Services

Le aree e gli scenari funzionali seguenti non sono supportati dalla funzionalità 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 usati da un'installazione di Reporting Services devono essere aggiornati dal fornitore di terze parti. Per ulteriori informazioni, contattare il fornitore di terze parti.

Scenari di distribuzione e consigli

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

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 TLS diretta.

Il server di reportistica impone il Channel Binding tra client e server di reportistica.
Diagramma che mostra la comunicazione TLS diretta.

1) Applicazione client

2) Server di reportistica
Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Direct.



- L'associazione al servizio non è necessaria perché il canale TLS viene usato per l'associazione di canale.
Comunicazione HTTP diretta. Il server di report impone l'associazione del servizio dal client al server di report. Diagramma che mostra la comunicazione HTTP.

1) Applicazione client

2) Server di reportistica
Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Any.



- Non esiste alcun canale TLS, pertanto non è possibile alcuna imposizione dell'associazione di canale.

- Il Service Binding può essere convalidato, ma senza il Channel binding non costituisce una difesa completa e, da solo, protegge solo dalle minacce di base.

Proxy e bilanciamento del carico di rete

Le applicazioni client si connettono a un dispositivo o a un software che esegue TLS 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 impone il binding del servizio tra client e server di report. Diagramma che mostra la comunicazione HTTP indiretta.

1) Applicazione client

2) Server di report

3) Proxy
Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Any.



- Non esiste alcun canale TLS, pertanto non è possibile alcuna imposizione dell'associazione di canale.

- 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 reportistica impone il binding del canale tra client e proxy e il binding del servizio tra client e server di reportistica.
Diagramma che mostra la comunicazione SSL indiretta.

1) Applicazione client

2) Server di reportistica

3) Proxy
Set
Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Proxy.



- Il canale TLS al proxy è disponibile, pertanto l'associazione di canale al proxy può essere imposta.

- 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.
Comunicazione HTTPS indiretta con un proxy sicuro. Il server di reportistica impone il binding del canale dal client al proxy e il binding del servizio dal client al server di reportistica. Diagramma che mostra la comunicazione HTTPS indiretta con un proxy sicuro.

1) Applicazione client

2) Server di reportistica

3) Proxy
Set
Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Proxy.



- Il canale TLS verso il proxy è disponibile, pertanto il binding del canale al proxy può essere imposto.

- È inoltre possibile imporre il binding del servizio.

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.

Gateway

In questo scenario vengono descritte applicazioni client che si connettono a un dispositivo o a un software che esegue TLS 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 impone il channel binding tra il client e il gateway. È disponibile un binding del servizio tra il gateway e il server di reportistica.
Diagramma che mostra la comunicazione SSL indiretta.

1) Applicazione client

2) Server di reportistica

3) Dispositivo del gateway
Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Any.



- 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 TLS dal gateway al server di report, pertanto l'associazione di canale non può essere imposta.

- L'associazione al servizio può essere imposta.

- Per imporre l'associazione di canale, il dispositivo del gateway deve essere configurato dall'amministratore.
Comunicazione HTTPS indiretta con un gateway sicuro. Il gateway impone il binding di canale dal client al gateway e il server di report impone il binding di canale dal gateway al server di report. Diagramma che mostra la comunicazione HTTPS indiretta con un gateway sicuro.

1) Applicazione client

2) Server di reportistica

3) Dispositivo del gateway
Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Direct.



- L'associazione di canale dal client al server di report non è possibile perché il gateway assume un contesto di rappresentazione e crea quindi un nuovo token NTLM.

- TLS dal gateway al server di reportistica significa che il binding del canale può essere imposto.

- L'associazione al servizio non è necessaria.

- Per imporre l'associazione di canale, il dispositivo del gateway deve essere configurato dall'amministratore.

Combinazione

Questo scenario descrive gli ambienti Extranet o Internet in cui il client connette un proxy 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 dal client al servizio del server di report senza TLS su nessuna delle due connessioni, dal client al proxy o dal client al server di report. 1) Applicazione client

2) Server di reportistica

3) Proxy

4) Applicazione client
Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Any.



- 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.
Accesso indiretto e diretto da client a server di report in cui il client stabilisce una connessione TLS al proxy o al server di report. Diagramma che mostra l'accesso indiretto e diretto dal client al server di report.

1) Applicazione client

2) Server di reportistica

3) Proxy

4) Applicazione client
Impostare RSWindowsExtendedProtectionLevel su Allow o Require.

Impostare RSWindowsExtendedProtectionScenario su Proxy.



-Channel Binding 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.

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 altre informazioni sull'utilizzo e la modifica del file rsreportserver.config, vedere File di configurazione RsReportServer.config. Le impostazioni relative alla protezione estesa possono inoltre essere modificate e controllate utilizzando le API di WMI. Per altre informazioni, vedere Metodo SetExtendedProtectionSettings (MSReportServer_ConfigurationSetting WM);.

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: impostazione predefinita. Specifica che non viene eseguita alcuna verifica dell'associazione di canale o di servizio.

Allow supporta la protezione estesa ma non la richiede. Specifica:

- La protezione estesa viene 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.

Require specifica:

- La protezione estesa viene imposta per le applicazioni client in esecuzione nei sistemi operativi che supportano la protezione estesa.

-L'autenticazione non è consentita per le applicazioni in esecuzione su sistemi operativi che non supportano la protezione estesa.
RsWindowsExtendedProtectionScenario Specifica le forme di protezione estesa da convalidare, cioè l'associazione di canale, l'associazione al servizio o entrambe. I valori validi sono:

Proxy: impostazione predefinita. Specifica:

- Autenticazione NTLM, Kerberos e Negotiate di Windows quando è presente un token di associazione di canale.

-L'associazione al servizio è obbligatoria.

Any specifica:

- L'autenticazione NTLM, Kerberos e Negotiate di Windows e l'associazione di canale non sono necessari.

-L'associazione al servizio è obbligatoria.

Direct specifica:

- Autenticazione Windows NTLM, Kerberos e Negotiate quando è presente un CBT, è presente una connessione TLS al servizio corrente e il CBT della connessione TLS corrisponde al CBT del token NTLM, Kerberos o Negotiate.

- L'associazione al servizio non viene imposta.



Nota: l'impostazione RsWindowsExtendedProtectionScenario 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 del servizio e SPN inclusi

Il binding del servizio utilizza i Service Principal Name (SPN) per convalidare la destinazione prevista dei token di autenticazione. Reporting Services usa le informazioni sulla prenotazione di URL esistenti per compilare un elenco di nomi SPN considerati validi. Le informazioni sulla prenotazione URL per la convalida sia degli SPN sia delle prenotazioni URL consentono agli amministratori di sistema di gestirli entrambi da un unico punto.

L'elenco di nomi SPN validi viene aggiornato quando si verifica una delle azioni seguenti:

  • Il server di report si avvia.
  • Le impostazioni di configurazione per la protezione estesa vengono modificate.
  • Il dominio dell'applicazione viene riutilizzato.

L'elenco degli SPN validi è specifico per ciascuna applicazione. Ad esempio, Report Manager e Report Server dispongono ciascuno di un elenco distinto di SPN validi calcolato.

I seguenti fattori determinano gli SPN validi calcolati per un'applicazione:

  • Ogni prenotazione di URL.

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

  • Se una prenotazione di URL include caratteri jolly ("*" o "+"), il server di report aggiunge 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.
Nome DNS completo del computer 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 che usa il 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 che usa il 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 in un cluster, questa origine è il nome NetBIOS del computer locale, non il nome del server virtuale del cluster.

Per ulteriori informazioni, vedere Registrare un nome dell'entità servizio (SPN) per un server di report e Informazioni su prenotazioni URL e registrazione (Gestione configurazione del server di report).