Panoramica sulle estensioni di sicurezza
Un'estensione di sicurezza di Reporting Services consente l'autenticazione e l'autorizzazione di utenti o gruppi, ovvero consente a utenti diversi di accedere a un server di report e, sulla base delle relative identità, di eseguire diverse attività o operazioni. Per impostazione predefinita, Reporting Services utilizza un'estensione di autenticazione basata su Windows che verifica le identità degli utenti che dichiarano di avere account nel sistema tramite i protocolli degli account di Windows. In Reporting Services l'autorizzazione degli utenti viene effettuata tramite un sistema di sicurezza basato sui ruoli. Il modello di sicurezza basato sui ruoli di Reporting Services è simile ai modelli di sicurezza basati sui ruoli di altre tecnologie.
Poiché le estensioni di sicurezza si basano su un'API aperta ed estensibile, è possibile creare nuove estensioni di autenticazione e autorizzazione in Reporting Services. Di seguito viene fornito un esempio di una tipica implementazione dell'estensione di sicurezza in cui l'autenticazione e l'autorizzazione sono basate su form:
Come illustrato nella figura, l'autenticazione e l'autorizzazione vengono effettuate nel modo seguente:
Un utente tenta di accedere a Gestione report mediante un URL e viene reindirizzato a un form che ne raccoglie le credenziali per l'applicazione client.
L'utente invia le credenziali al form.
Le credenziali utente vengono inviate al servizio Web Reporting Services tramite il metodo LogonUser.
Il servizio Web chiama l'estensione di sicurezza fornita dal cliente e verifica che nome utente e password siano presenti nell'autorità di sicurezza personalizzata.
Dopo l'autenticazione, il servizio Web crea e gestisce un ticket di autenticazione (noto come "cookie"), quindi verifica il ruolo dell'utente per la home page di Gestione report.
Il servizio Web restituisce il cookie al browser e visualizza l'interfaccia utente appropriata in Gestione report.
Dopo l'autenticazione dell'utente, il browser invia richieste a Gestione report durante la trasmissione del cookie nell'intestazione HTTP. Queste richieste vengono inviate in risposta alle azioni dell'utente all'interno dell'applicazione Gestione report.
Il cookie viene trasmesso nell'intestazione HTTP al servizio Web insieme all'operazione utente richiesta.
Il cookie viene convalidato e, se valido, il server di report restituisce il descrittore di sicurezza e altre informazioni relative all'operazione richiesta dal database del server di report.
Se il cookie è valido, il server di report effettua una chiamata all'estensione di sicurezza per controllare se l'utente è autorizzato a eseguire l'operazione specifica.
Se l'utente è autorizzato, il server di report esegue l'operazione richiesta e restituisce il controllo al chiamante.
Dopo l'autenticazione dell'utente, l'accesso all'URL per il server di report utilizza lo stesso cookie. Il cookie viene trasmesso nell'intestazione HTTP.
L'utente continua a richiedere operazioni sul server di report fino al termine della sessione.
Quando implementare un'estensione di sicurezza
Se possibile, si consiglia di utilizzare l'autenticazione di Windows. Tuttavia, l'autenticazione e l'autorizzazione personalizzate per Reporting Services possono essere appropriate nei due casi seguenti:
Si dispone di un'applicazione Internet o Extranet in cui non è possibile utilizzare gli account di Windows.
Si dispone di utenti e ruoli personalizzati ed è necessario fornire uno schema di autorizzazione corrispondente in Reporting Services.