Configurare l'autenticazione di Windows nel server di report

Per impostazione predefinita, tramite Reporting Services vengono accettate richieste che consentono di specificare l'autenticazione con negoziazione o NTLM. Se nella distribuzione sono incluse applicazioni client e browser che utilizzano tali provider di sicurezza, è possibile utilizzare i valori predefiniti senza alcuna configurazione aggiuntiva. Supponiamo di voler usare un provider di sicurezza diverso per la sicurezza integrata di Windows o se si modificano i valori predefiniti e si desidera ripristinare le impostazioni originali. È possibile usare le informazioni contenute in questo articolo per specificare le impostazioni di autenticazione nel server di report.

Per utilizzare la sicurezza integrata di Windows, ogni utente che richiede l'accesso a un server di report deve disporre di un account utente di dominio o locale di Windows valido o essere membro di un account di gruppo di dominio. In alternativa, devono essere membri di un account di gruppo di dominio o locale di Windows. È possibile includere account di altri domini, purché tali domini siano di tipo trusted. Per accedere a operazioni specifiche del server di report, gli account devono disporre dell'accesso al computer relativo e devono quindi essere assegnati a ruoli.

Devono essere soddisfatti anche i seguenti requisiti:

  • I file RSReportServer.config devono avere AuthenticationType impostato su RSWindowsNegotiate, RSWindowsKerberos o RSWindowsNTLM. Per impostazione predefinita, il file RSReportServer.config include l'impostazione RSWindowsNegotiate se l'account del servizio del server di report è NetworkService o LocalSystem; in caso contrario, viene utilizzata l'impostazione RSWindowsNTLM. Se sono presenti applicazioni che utilizzano solo l'autenticazione Kerberos, è possibile aggiungere RSWindowsKerberos.

    Importante

    Quando si usa RSWindowsNegotiate, si verificherò un errore di autenticazione Kerberos se il servizio del server di report è stato configurato per essere eseguito con un account utente di dominio e non è stato registrato un nome dell'entità servizio (SPN) per l'account. Per altre informazioni, vedere Risoluzione di errori di autenticazione Kerberos durante la connessione a un server di report in questo argomento.

  • ASP.NET deve essere configurato per usare l'autenticazione di Windows. Per impostazione predefinita, i file Web.config per il servizio Web ReportServer includono l'impostazione <authentication mode="Windows">. Se l'impostazione viene modificata in <authentication mode="Forms">, l'autenticazione di Windows per Reporting Services avrà esito negativo.

  • Nei file Web.config per il servizio Web ReportServer deve essere presente l'impostazione <identity impersonate= "true" />.

  • Nell'applicazione client o nel browser deve essere supportata la sicurezza integrata di Windows.

  • Il portale Web non richiede più configurazione.

Per modificare le impostazioni di autenticazione del server di report, modificare gli elementi XML e i valori nel file RSReportServer.config. È possibile copiare e incollare gli esempi disponibili in questo articolo per implementare combinazioni specifiche.

Le impostazioni predefinite funzionano in modo ottimale se tutti i computer client e server si trovano nello stesso dominio o in un dominio di tipo trusted. Inoltre, il server di report deve essere distribuito per l'accesso Intranet attraverso un firewall aziendale. I domini singoli e di tipo trusted sono un requisito per il passaggio delle credenziali di Windows. Le credenziali possono essere passate più volte se si abilita il protocollo Kerberos versione 5 per i server. In caso contrario, le credenziali possono essere passate solo una volta prima che scadano. Per altre informazioni sulla configurazione delle credenziali per più connessioni del computer, vedere Specificare le credenziali e le informazioni sulla connessione per le origini dati del report.

Le istruzioni seguenti sono relative a un server di report in modalità nativa. Se il server di report è distribuito in modalità integrata SharePoint, è necessario utilizzare le impostazioni di autenticazione predefinite che specificano la sicurezza integrata di Windows. Per supportare server di report in modalità integrata SharePoint, il server di report utilizza caratteristiche interne nell'estensione di autenticazione di Windows predefinita.

Protezione estesa per l'autenticazione

A partire da SQL Server 2008 R2 (10.50.x), è disponibile il supporto per la protezione estesa per l'autenticazione. La funzionalità di SQL Server supporta l'uso dell'associazione di canale e dell'associazione a servizi per migliorare la protezione dell'autenticazione. Le funzionalità di Reporting Services devono essere usate con un sistema operativo che supporti la protezione estesa. La configurazione di Reporting Services per la protezione estesa è determinata da specifiche impostazioni nel file RSReportServer.config. È possibile aggiornare il file modificandolo o utilizzando le API di WMI. Per altre informazioni, vedere Protezione estesa per l'autenticazione con Reporting Services.

Configurare un server di report per l'utilizzo della sicurezza integrata di Windows

  1. Aprire RSReportServer.config in un editor di testo.

  2. Individuare <Authentication>.

  3. Tra le strutture XML seguenti, copiare quella che corrisponde meglio alle proprie esigenze. È possibile specificare RSWindowsNegotiate, RSWindowsNTLM e RSWindowsKerberos in qualsiasi ordine. Se si desidera autenticare la connessione anziché ogni singola richiesta, è necessario abilitare la persistenza dell'autenticazione in modo che tutte le richieste per cui è necessaria l'autenticazione verranno consentite per la durata della connessione.

    La prima struttura XML è la configurazione predefinita quando l'account del servizio del server di report è NetworkService o LocalSystem:

    <Authentication>
        <AuthenticationTypes>
            <RSWindowsNegotiate />
        </AuthenticationTypes>
        <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
    

    La seconda struttura XML è la configurazione predefinita quando l'account del servizio del server di report non è NetworkService o LocalSystem:

    <Authentication>
        <AuthenticationTypes>
                <RSWindowsNTLM />
        </AuthenticationTypes>
        <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
    

    La terza struttura XML specifica tutti i pacchetti di sicurezza utilizzati nella sicurezza integrata di Windows:

    <AuthenticationTypes>
        <RSWindowsNegotiate />
        <RSWindowsKerberos />
        <RSWindowsNTLM />
    </AuthenticationTypes>
    

    La quarta struttura XML specifica l'autenticazione NTLM solo per distribuzioni che non supportano l'autenticazione Kerberos o per risolvere errori di autenticazione Kerberos:

    <AuthenticationTypes>
        <RSWindowsNTLM />
    </AuthenticationTypes>
    
  4. Incollare la struttura sulle voci esistenti per <Authentication>.

    Non è possibile utilizzare Custom con i tipi RSWindows.

  5. Modificare le impostazioni per la protezione estesa nel modo appropriato. La protezione estesa è disabilitata per impostazione predefinita. Se queste voci non sono presenti, è possibile che sul computer corrente non sia in esecuzione una versione di Reporting Services che supporta la protezione estesa. Per altre informazioni, vedere Protezione estesa per l'autenticazione con Reporting Services

    <RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
    <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>
    
  6. Salvare il file.

  7. Se è stata configurata una distribuzione con scalabilità orizzontale, ripetere questi passaggi per gli altri server di report presenti nella distribuzione.

  8. Riavviare il server di report per cancellare qualsiasi sessione attualmente aperta.

Risoluzione di errori di autenticazione Kerberos durante la connessione a un server di report

In un server di report configurato per l'autenticazione con negoziazione o Kerberos, se si verifica un errore di autenticazione Kerberos la connessione client al server di report avrà esito negativo. Di seguito vengono riportate le condizioni che indicano la presenza di errori di autenticazione Kerberos:

  • Il servizio del server di report è in esecuzione come account utente di dominio di Windows, ma non è stato registrato un nome SPN per l'account.

  • Il server di report è configurato con l'impostazione RSWindowsNegotiate.

  • Nell'intestazione dell'autenticazione della richiesta inviata al server di report dal browser viene scelta l'autenticazione Kerberos anziché l'autenticazione NTLM.

È possibile rilevare l'errore se è stata abilitata la registrazione Kerberos. Un altro sintomo dell'errore consiste in più richieste delle credenziali e successivamente nella visualizzazione di una finestra del browser vuota.

Per verificare se si è verificato un errore di autenticazione Kerberos, <RSWindowsNegotiate> dal file di configurazione, quindi riprovare a stabilire la connessione.

Dopo avere confermato la presenza del problema, è possibile risolverlo nei modi seguenti:

  • Registrare un nome SPN per il servizio del server di report con l'account utente di dominio. Per altre informazioni, vedere Registrare un nome dell'entità servizio (SPN) per un server di report.

  • Modificare l'account del servizio in modo che venga eseguito con un account predefinito, ad esempio Servizio di rete. Gli account predefiniti eseguono il mapping del nome SPN HTTP al nome SPN dell'host, definito quando un computer viene collegato a una rete. Per altre informazioni, vedere Configurare un account del servizio (Configuration Manager del server di report).

  • Utilizzare NTLM, NTLM in genere funzionerà nei casi in cui l'autenticazione Kerberos ha esito negativo. Per utilizzare NTLM, rimuovere RSWindowsNegotiate dal file RSReportServer.config e verificare che sia specificato solo RSWindowsNTLM. Se si sceglie questo approccio, è possibile continuare a utilizzare un account utente di dominio per il servizio del server di report anche se per tale account non si definisce un nome SPN.

Riassumendo, è necessario eseguire comandi simili all'esempio seguente. Sostituire i valori a seconda del caso.

setspn -S HTTP/<SSRS Server FDQN> <SSRS Service Account>
setspn -S HTTP/<host header for Report server web site> <SSRS Service Account>
setspn -S HTTP/<SharePoint Server FDQN> <SharePoint Application Pool Account>
setspn -S HTTP/<host header for SharePoint site>  <SharePoint Application Pool Account>
setspn -S HTTP/Dummy <Claims to Windows Taken Service Account>

Informazioni sui log

Esistono diverse origini di informazioni di registrazione che possono consentire la risoluzione dei problemi relativi a Kerberos.

Attributo User-Account-Control

Stabilire se l'account del servizio di Reporting Services dispone del set di attributi sufficiente in Active Directory. Rivedere il file di log di traccia del servizio Reporting Services per trovare il valore registrato per l'attributo UserAccountControl. Il valore registrato è in formato decimale. È necessario convertire il valore decimale in formato esadecimale e trovare quindi tale valore nell'arricolo MSDN in cui viene descritto l'attributo UserAccountControl.

  • La voce del log di analisi del servizio Reporting Services sarà simile alla seguente:

    appdomainmanager!DefaultDomain!8f8!01/14/2010-14:42:28:: i INFO: The UserAccountControl value for the service account is 590336
    
  • Un'opzione per la conversione del valore decimale in formato esadecimale è rappresentata dalla Calcolatrice di Microsoft Windows. Calcolatrice Windows supporta diverse modalità che includono le opzioni Dec e Hex. Selezionare l'opzione Dec, incollare o digitare il valore decimale nel file di log, quindi selezionare l'opzione “Hex”.

  • Fare quindi riferimento all'argomento Attributo UserAccountControl per derivare l'attributo per l'account del servizio.

Nomi SPN configurati in Active Directory per l'account del servizio di Reporting Services.

Per registrare i nomi SPN nel file di log di traccia del servizio Reporting Services, è possibile abilitare temporaneamente la funzionalità Protezione estesa di Reporting Services.

  • Modificare il file di configurazione rsreportserver.config impostando gli elementi seguenti:

    <RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
    <RSWindowsExtendedProtectionScenario>Any</RSWindowsExtendedProtectionScenario>
    
  • Riavviare il servizio Reporting Services.

Se non si vuole continuare a usare la Protezione estesa, ripristinare le impostazioni predefinite per i valori di configurazione e riavviare l'account del servizio Reporting Services.

<RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>

Per altre informazioni, vedere Protezione estesa per l'autenticazione con Reporting Services.

Scelta tra l'autenticazione negoziata Kerberos o NTLM da parte del browser

Quando si utilizza Internet Explorer per connettersi al server di report, nell'intestazione di autenticazione viene specificata l'autenticazione negoziata Kerberos o NTLM. Di seguito vengono riportati i casi in cui viene utilizzata l'autenticazione NTLM anziché l'autenticazione Kerberos:

  • Invio della richiesta a un server di report locale.

  • Invio della richiesta a un indirizzo IP del computer del server di report anziché a un'intestazione host oppure a un nome del server.

  • Blocco delle porte utilizzate per l'autenticazione Kerberos da parte del software firewall.

  • Autenticazione Kerberos non abilitata nel sistema operativo di un server specifico.

  • Presenza nel dominio di versioni precedenti di sistemi operativi client e server Windows che non supportano la caratteristica di autenticazione Kerberos disponibile nelle versioni più recenti del sistema operativo.

Internet Explorer potrebbe inoltre scegliere l'autenticazione negoziata Kerberos o NTLM in base alla configurazione delle impostazioni LAN, dell'URL e del proxy.

URL del server di report

Se nell'URL è incluso un nome di dominio completo o se nell'URL è specificato localhost, Internet Explorer seleziona l'autenticazione NTLM. Se nell'URL è specificato il nome di rete del computer, Internet Explorer seleziona l'autenticazione con negoziazione, che ha esito positivo o negativo in base all'esistenza o meno di un nome SPN per l'account del servizio del server di report.

Impostazioni LAN e del proxy nel client

Le impostazioni LAN e del proxy specificate in Internet Explorer possono determinare la scelta dell'autenticazione NTLM rispetto all'autenticazione Kerberos. Poiché le impostazioni LAN e del proxy variano tra le organizzazioni, non è possibile tuttavia determinare con precisione le impostazioni esatte che contribuiscono agli errori di autenticazione Kerberos. Un'organizzazione potrebbe ad esempio applicare impostazioni del proxy che trasformano gli URL Intranet in URL con nome di dominio completo che vengono risolti durante le connessioni Internet. Se per tipi diversi di URL vengono utilizzati provider di autenticazione differenti, alcune connessioni potrebbero avere esito positivo sebbene sia previsto un esito negativo.

Potrebbero verificarsi errori di connessione che si ritiene siano dovuti a errori di autenticazione. In tal caso, è possibile provare diverse combinazioni di impostazioni LAN e proxy per isolare il problema. In Internet Explorer le impostazioni LAN e del proxy sono presenti nella finestra di dialogo Impostazioni rete locale (LAN) . Per aprire tale finestra, selezionare Impostazioni LAN nella scheda Connessione in Opzioni Internet.

Informazioni aggiuntive per Kerberos e server di report