Condividi tramite


Ruolo del motore di attestazioni

Al livello più elevato, il motore delle attestazioni in Active Directory Federation Services (AD FS) è un motore basato su regole dedicato alla gestione e all'elaborazione delle richieste di attestazione per il servizio federativo. Il motore delle attestazioni è l'unica entità all'interno del Servizio di Federazione responsabile dell'esecuzione di ciascun insieme di regole in tutte le relazioni di trust federate configurate e di trasmettere il risultato alla pipeline di attestazioni.

Anche se la pipeline di attestazioni è più un concetto logico del processo end-to-end per il flusso di attestazioni, le regole di attestazioni sono un elemento amministrativo effettivo che è possibile usare per personalizzare il flusso di attestazioni durante il processo di esecuzione delle regole. Per altre informazioni sul processo della pipeline, consultare il Ruolo della pipeline delle richieste.

Come illustrato nella figura seguente, l'atto di accettare attestazioni in ingresso (regole di accettazione), autorizzare i richiedenti di attestazioni (regole di autorizzazione) e rilasciare attestazioni in uscita (regole di rilascio) tramite le regole di attestazione in tutte le relazioni di trust federate nell'organizzazione viene eseguito dal motore delle attestazioni.

Illustrazione che mostra i processi eseguiti dal motore delle attestazioni.

Processo di applicazione delle regole dei reclami

Quando si configura un trust del provider di attestazioni o di una relying party nell'organizzazione con regole delle attestazioni, i set di regole delle attestazioni per tale trust fungono da gatekeeper per le attestazioni in ingresso richiamando il motore delle attestazioni per applicare la logica necessaria nelle regole delle attestazioni per determinare se emettere attestazioni e quali emettere.

La sezione seguente descrive ognuno dei passaggi che si verificano dal motore durante il flusso delle richieste attraverso il processo di esecuzione delle regole per le richieste. Ognuno dei passaggi delineati di seguito si verifica per ogni fase descritta nel processo della pipeline delle richieste. Questi passaggi sono:

  • Passaggio 1- Inizializzazione

  • Passaggio 2: esecuzione

  • Passaggio 3: risultato dell'esecuzione

Per ulteriori informazioni sul processo del pipeline, vedere Il ruolo della pipeline delle richieste.

Passaggio 1- Inizializzazione

Nel primo passaggio del processo di esecuzione delle regole delle attestazioni, il motore delle attestazioni accetta le attestazioni in ingresso aggiungendole inizialmente al set di attestazioni di input . Un set di attestazioni di input è analogo a una cache in memoria usata per archiviare temporaneamente i dati solo se un processo necessario richiede che i dati siano resi disponibili per il recupero. I dati del set di dichiarazioni di input vengono eliminati al termine dell'esecuzione della regola.

Aggiungere un'attestazione al set di attestazioni di input per un insieme di regole

Il set di attestazioni di input viene creato dal motore delle attestazioni quando deve archiviare temporaneamente i dati delle attestazioni in memoria mentre elabora la logica associata a un set di regole delle attestazioni. Il motore delle attestazioni copia tutte le attestazioni in ingresso nel set di attestazioni di input in cui possono essere recuperate dalla prima regola nel set di regole.

Nell'illustrazione seguente, ad esempio, il motore delle attestazioni legge le attestazioni di A e B dalle attestazioni in ingresso e le copia nel set di attestazioni di input. Dopo che si trovano nel set di attestazioni di input, il motore delle attestazioni recupera ed elabora le attestazioni A e B come input per la logica nella prima regola nel set di regole attestazioni.

Illustrazione che mostra che il motore delle attestazioni legge le attestazioni di A e B dalle attestazioni in ingresso e le copia nel set di attestazioni di input.

Tutte le regole in un set di regole di attestazione condividono lo stesso set di attestazioni di input. Ogni regola in tale set può aggiungere al set di attestazioni di input condiviso, influenzando così tutte le regole successive nel set.

Passaggio 2: esecuzione

In questo passaggio del processo delle regole delle attestazioni, le regole vengono elaborate quando il motore delle attestazioni procede cronologicamente attraverso tutte le regole all'interno di un determinato set di regole, una alla volta. Ogni regola all'interno di un set di regole viene eseguita una sola volta e viene eseguita nell'ordine in cui vengono visualizzate dall'alto verso il basso come visualizzato nella finestra di dialogo Modifica regole attestazione nello snap-in Gestione AD FS. La regola di attestazione che si trova all'inizio dell'insieme di regole viene elaborata per prima e successivamente vengono elaborate le altre regole fino a quando tutte sono state eseguite.

Come definito nel linguaggio delle regole di attestazione, una regola di attestazione è composta da due parti: condizione e dichiarazione di rilascio. Il motore delle attestazioni elabora innanzitutto la parte della condizione utilizzando i dati nel set di attestazioni di input per determinare se la condizione specificata nella regola è vera per le attestazioni contenute nel set di attestazioni di input (le attestazioni che soddisfano la condizione della regola vengono definite attestazioni corrispondenti). Se vengono trovate attestazioni corrispondenti, il motore delle attestazioni esegue l'istruzione di rilascio della regola per ogni set di attestazioni corrispondenti. La dichiarazione di emissione della regola può eseguire una delle attività seguenti con dichiarazioni corrispondenti.

  1. Copiare un'attestazione corrispondente nel set di attestazioni di output

  2. Trasforma i campi di attestazione e crea una nuova attestazione sia nel set di attestazioni di input che in entrambi i set di attestazioni di valutazione e output.

  3. Usare le attestazioni corrispondenti come chiave per cercare altre informazioni da un archivio attributi per creare nuove attestazioni solo nel set di attestazioni di input o sia nel set di attestazioni di input che in quello di output.

Aggiunta di un'attestazione al set di attestazioni di output per un insieme di regole

L'insieme di attestazioni di output è una posizione in memoria inizialmente vuota ed è importante perché il motore delle attestazioni restituirà solo attestazioni che risiedono nell'insieme di attestazioni di output una volta completato il processo di esecuzione. Ciò significa che tutte le attestazioni che risiedono solo nel set di attestazioni di input e non nel set di attestazioni di output verranno ignorate quando si tratta di calcolare il set finale di attestazioni in uscita.

Aggiunta di una richiesta a entrambi i set di richieste per un insieme di regole

Durante l'elaborazione di una regola, le dichiarazioni vengono aggiunte al set di dichiarazioni di input o sia al set di dichiarazioni di input che al set di dichiarazioni di output, in base all'istruzione utilizzata nel rilascio della regola. Il linguaggio delle regole attestazioni fa riferimento a queste dichiarazioni come aggiungere o emettere.

Se viene utilizzata l'istruzione add, le attestazioni vengono aggiunte solo al set di input delle attestazioni e saranno presenti solo durante l'esecuzione, cessando di esistere al termine di essa. Se viene usata l'istruzione problema, le attestazioni vengono aggiunte sia al set di attestazioni di input che al set di attestazioni di output e le attestazioni verranno restituite nel set di attestazioni di output al termine dell'esecuzione. Per ulteriori informazioni su queste istruzioni, vedere Il ruolo del linguaggio delle regole delle attestazioni.

Se la parte della condizione di una regola all'interno di un set di regole non corrisponde ad alcuna attestazione nel set di attestazioni di input, la parte dell'istruzione di rilascio della regola viene ignorata e pertanto non vengono aggiunte attestazioni al set di attestazioni di output o al set di attestazioni di input. La figura seguente e i passaggi corrispondenti mostrano cosa accade quando il motore di gestione delle attestazioni applica una regola di trasformazione.

Illustrazione che mostra cosa accade quando il motore delle richieste esegue una regola di trasformazione.

  1. Le attestazioni in ingresso vengono aggiunte all'attestazione di input impostata dal motore delle attestazioni.

  2. Quando viene eseguita la prima regola, vengono visualizzate le attestazioni A e B, che sono in quel momento le uniche attestazioni nel set di attestazioni di input ed elabora la parte condizionale della logica della regola nella regola 1.

  3. Poiché l'attestazione A è presente nel set di attestazioni di input, la condizione della regola viene determinata come true (corrispondente all'attestazione A) e una nuova attestazione C viene aggiunta sia al set di attestazioni di input che al set di attestazioni di output.

  4. La regola 2 può ora usare le attestazioni A, B e C (tutte le attestazioni nel set di attestazioni di input) come input per l'elaborazione della logica.

Per altre informazioni sulla trasformazione delle attestazioni, vedere Quando usare una regola di trasformazione delle attestazioni.

Passaggio 3: risultato dell'esecuzione

La fase finale dell'esecuzione del set di regole per le richieste inizia quando tutte le regole all'interno di un determinato set sono state eseguite e il set finale di richieste è presente nel set di richieste di output. A questo punto, il motore delle attestazioni restituisce il contesto del set di attestazioni di output come output dell'esecuzione del set di regole. Da questo punto in poi, è la pipeline delle richieste che prende in carico e trasferisce questo output finale alla fase successiva del suo processo.

Invio dell'output di esecuzione alla pipeline di attestazioni

Quando il motore delle attestazioni elabora un set di regole, tale set di regole ha posizioni dedicate in memoria per i set di attestazioni di input e output. Ciò significa che i set di attestazioni di input e output usati da un set di regole sono separati dai set di attestazioni di input e output usati in un altro set di regole.

Dopo l'esecuzione dell'intero processo per un set di regole specificato (passaggi 1, 2 e 3), le attestazioni in uscita appena rilasciate (contenuto del set di attestazioni di output) verranno usate come input per il set di regole successivo nella pipeline di attestazioni. Ciò consente il flusso delle attestazioni dall'output di un set di regole all'input per un altro set di regole, come illustrato nella figura seguente.

ruoli di AD FS

Nota

Sebbene la serie di norme di rilascio sia una fase critica nella pipeline, l'illustrazione precedente non la include, esclusivamente ai fini della semplificazione. Per un'illustrazione che mostra il set di regole di rilascio e come rientra nel flusso delle richieste, vedere Il ruolo del flusso delle richieste.

In questo caso, l'output delle regole di accettazione viene usato dalla pipeline per propagare il set finale di attestazioni prodotte dalle regole di accettazione alla seconda fase della pipeline, ovvero l'elaborazione delle regole di autorizzazione. A questo punto, l'intero processo di esecuzione delle regole delle dichiarazioni (passaggi 1, 2 e 3 precedenti) verrebbe eseguito di nuovo per il set di regole di autorizzazione. Questo ciclo continua fino al completamento del set di regole di rilascio (la fase finale nella pipeline).

Dopo che le attestazioni in uscita completate sono state restituite dal motore per il set di regole di rilascio, verranno inserite in un token SAML e il servizio federativo invierà di nuovo il token al client.

Elaborazione delle regole di autorizzazione

Se il set di regole attestazioni che viene eseguito durante il passaggio 2 del processo di esecuzione delle regole attestazioni è costituito da regole di autorizzazione (con set di attestazioni di input e output diversi rispetto alle regole di accettazione o rilascio), tali regole di autorizzazione verranno eseguite per determinare se un richiedente del token è autorizzato a ottenere un token di sicurezza per una determinata parte vincolante dal Federation Service in base alle attestazioni del richiedente.

L'obiettivo delle regole di autorizzazione è rilasciare un'attestazione di autorizzazione o negazione in base al fatto che l'utente possa ottenere o meno un token per la relying party specificata. Come illustrato nella figura seguente, l'output dell'esecuzione dell'autorizzazione viene usato dalla pipeline per determinare se il set di regole di rilascio viene eseguito o meno, in base alla presenza o all'assenza dell'attestazione di permette e/o nega, ma l'output dell'esecuzione dell'autorizzazione non viene usato come input per il set delle regole delle attestazioni.

Un'illustrazione che mostra l'output dell'esecuzione dell'autorizzazione è utilizzata dalla pipeline per determinare se il set di regole di emissione viene eseguito oppure no.

Per altre informazioni sull'autorizzazione delle attestazioni, vedere Quando usare una regola di attestazione di autorizzazione.