Panoramica sulle estensioni di protezione

Un'estensione di protezione 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 protezione basato sui ruoli. Il modello di protezione basato sui ruoli di Reporting Services è simile ai modelli di protezione basati sui ruoli di altre tecnologie.

Poiché le estensioni di protezione 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 protezione in cui l'autenticazione e l'autorizzazione sono basate su form:

Processo dell'estensione di protezione di Reporting Services

Come illustrato nella figura, l'autenticazione e l'autorizzazione vengono effettuate nel modo seguente:

  1. 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.

  2. L'utente invia le credenziali al form.

  3. Le credenziali utente vengono inviate al servizio Web Reporting Services tramite il metodo LogonUser.

  4. Il servizio Web chiama l'estensione di protezione fornita dal cliente e verifica che nome utente e password siano presenti nell'autorità di protezione personalizzata.

  5. 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.

  6. Il servizio Web restituisce il cookie al browser e visualizza l'interfaccia utente appropriata in Gestione report.

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

  8. Il cookie viene trasmesso nell'intestazione HTTP al servizio Web insieme all'operazione utente richiesta.

  9. Il cookie viene convalidato e, se valido, il server di report restituisce il descrittore di protezione e altre informazioni relative all'operazione richiesta dal database del server di report.

  10. Se il cookie è valido, il server di report effettua una chiamata all'estensione di protezione per controllare se l'utente è autorizzato a eseguire l'operazione specifica.

  11. Se l'utente è autorizzato, il server di report esegue l'operazione richiesta e restituisce il controllo al chiamante.

  12. 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.

  13. L'utente continua a richiedere operazioni sul server di report fino al termine della sessione.

Quando implementare un'estensione di protezione

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.