Quando usare la delega di identità

Che cos'è la delega di identità?

Delega dell'identità è una funzionalità di Active Directory Federation Services ADFS che consente l'amministrazione di account specificati per rappresentare gli utenti. L'account che rappresenta l'utente viene chiamato delegato. Questa funzionalità di delega è fondamentale per molte applicazioni distribuite per le quali è disponibile una serie di verifiche del controllo di accesso che devono essere eseguite in sequenza per ogni applicazione, database o servizio che fa parte della catena di autorizzazione per la richiesta di origine. Esistono molti scenari reali in cui il “front-end” di un'applicazione Web deve recuperare dati da un “back-end” più sicuro, come un servizio Web che è connesso a un database Microsoft SQL Server.

Ad esempio, un sito Web per l'ordinazione di parti esistente può essere migliorato a livello di codice in modo da consentire alle organizzazioni partner di visualizzare la propria cronologia degli acquisti e lo stato dell'account. Per motivi di sicurezza tutti i dati finanziari dei partner vengono archiviati in un database protetto in un server Structured Query Language (SQL) dedicato. In questa situazione, il codice dell'applicazione front-end non riconosce i dati finanziari dell'organizzazione partner. Quindi, è necessario recuperare i dati da un altro computer ubicato in un'altra posizione nella rete che ospita (in questo caso) il servizio Web per il database delle parti (back-end).

Affinché questo processo di recupero dei dati abbia esito positivo, deve verificarsi una successione di autorizzazione di “handshake” tra l'applicazione Web e il servizio Web per il database delle parti, come illustrato nella figura seguente.

identity delegation

Poiché la richiesta originale è stata effettuata al server Web stesso, che con maggiore probabilità si trova in un'organizzazione completamente diversa da quella dell'utente che sta provando ad accedere al server Web, il token di sicurezza che viene inviato insieme alla richiesta non soddisfa i criteri di autorizzazione necessari per accedere a qualsiasi altro computer oltre il server Web. Quindi, l'unico metodo che consente di soddisfare la richiesta dell'utente di origine è l'inserimento di un server federativo intermedio nell'organizzazione partner risorse per il nuovo rilascio di un token di sicurezza con privilegi di accesso appropriati.

Come funziona la delega di identità?

Le applicazioni Web nelle architetture di applicazioni multilivello spesso chiamano i servizi Web per accedere a dati o funzionalità comuni. È importante che tali servizi Web conoscano l'identità utente originale in modo che il servizio possa prendere decisioni di autorizzazione e facilitare il controllo. In questo caso, l'applicazione Web front-end rappresenta l'utente per il servizio Web in qualità di delegato. ADFS facilita questo scenario, concedendo agli account di Active Directory come un utente a un altro componente. Nella figura seguente è illustrato uno scenario di delega di identità.

Illustration that shows an identity delegation scenario.

  1. Frank prova ad accedere alla cronologia di ordinazione delle parti da un'applicazione Web di un'altra organizzazione. Il computer client richiede e riceve un token da AD FS per l'applicazione Web front-end di ordinazione delle parti.

  2. Il computer client invia una richiesta all'applicazione Web, includendo il token ottenuto nel passaggio 1, per dimostrare l'identità del client.

  3. L'applicazione Web deve comunicare con il servizio Web per completare la transazione per il client. L'applicazione Web contatta ADFS per ottenere un token di delega per interagire con il servizio Web. I token di delega sono token di sicurezza rilasciati affinché un delegato possa agire come un utente. ADFS restituisce un token di delega con attestazioni relative al client, per il servizio Web di destinazione.

  4. L'applicazione Web utilizza il token ottenuto da ADFS nel passaggio 3 per accedere al servizio Web che funge da client. Esaminando il token di delega, il servizio Web può stabilire che l'applicazione Web funge da client. Il servizio Web esegue il proprio criterio di autorizzazione, registra la richiesta e fornisce i dati di cronologia sulle parti necessarie originariamente richiesti da Frank all'applicazione Web e quindi a Frank.

Per un determinato delegato, ADFS può limitare i servizi Web per cui l'applicazione Web potrebbe richiedere un token di delega. Il computer client non ha un account di Active Directory per eseguire questa operazione. Infine, come indicato in precedenza, il servizio Web può facilmente determinare l'identità del delegato che opera come utente. In questo modo i servizi Web possono presentare un comportamento diverso a seconda che comunichino direttamente con il computer client o tramite un delegato.

Configurazione di AD FS per la delega di identità

È possibile utilizzare lo snap di gestione di ADFS per configurare ADFS per la delega dell'identità ogni volta che è necessario facilitare il processo di recupero dati. Dopo la configurazione, ADFS può generare nuovi token di sicurezza che verranno inclusi nel contesto di autorizzazione che il back fine servizio può essere necessario prima che possa fornire accesso ai dati protetti.

ADFS non limitano gli utenti che possono essere rappresentati. Dopo aver configurato ADFS per la delega di identità, esegue le seguenti:

  • Determina i server ai quali è possibile delegare l'autorità di richiedere token per rappresentare un utente.

  • Stabilisce e mantiene separati sia il contesto dell'identità per l'account del client delegato che per il server che agisce come delegato.

È possibile configurare la delega di identità con l'aggiunta di regole di autorizzazione di delega per un trust della relying party nello snap-in di gestione di AD FS. Per altre informazioni su come eseguire questa operazione, vedere Checklist: Creating Claim Rules for a Relying Party Trust.

Configurazione dell'applicazione Web front-end per la delega di identità

Per gli sviluppatori sono disponibili diverse opzioni che consentono di programmare in modo appropriato l’applicazione o il servizio front-end Web per reindirizzare le richieste di delega a un computer AD FS. Per altre informazioni su come personalizzare un'applicazione Web in modo che funzioni con la delega dell'identità, vedere Windows Identity Foundation SDK.

Vedi anche

Guida alla progettazione di AD FS in Windows Server 2012