Ruolo del motore delle attestazioni

A livello generale, il motore delle attestazioni in Active Directory Federation Services (AD FS) è un motore basato su regole dedicato al servizio e all'elaborazione delle richieste di attestazione per il Servizio federativo. Il motore delle attestazioni è l'unica entità del Servizio federativo responsabile dell'esecuzione di ogni set di regole in tutte le relazioni di trust federative configurate e della trasmissione del risultato di output alla pipeline delle attestazioni.

Mentre la pipeline delle attestazioni è soprattutto un concetto logico del processo end-to-end per le attestazioni di flusso, le regole attestazione sono invece un vero e proprio elemento amministrativo che è possibile usare per personalizzare il flusso delle attestazioni durante il processo di esecuzione delle regole attestazione. Per ulteriori informazioni sul processo di pipeline, vedere ruolo delle Pipeline delle attestazioni.

Come mostrato nell'illustrazione seguente, l'azione di accettare le attestazioni in ingresso (regole di accettazione), autorizzare i richiedenti delle attestazioni (regole di autorizzazione) e rilasciare le attestazioni in uscita (regole di rilascio) in base alle regole attestazioni in tutte le relazioni di trust federative nell'organizzazione viene eseguita dal motore delle attestazioni.

Illustration that shows the processes performed by the claims engine.

Processo di esecuzione delle regole attestazioni

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

La sezione seguente illustra ogni passaggio eseguito dal motore durante il flusso delle attestazioni nel processo di esecuzione delle regole attestazioni. Ogni passaggio illustrato di seguito viene eseguito per ogni fase descritta nel processo della pipeline delle attestazioni. Nei passaggi seguenti è incluso:

  • Passaggio 1: Inizializzazione

  • Passaggio 2: Esecuzione

  • Passaggio 3: Risultato dell'esecuzione

Per ulteriori informazioni sul processo di pipeline, vedere ruolo delle Pipeline delle attestazioni.

Passaggio 1: Inizializzazione

Nel primo passaggio del processo di esecuzione delle regole attestazione il motore delle attestazioni accetta le attestazioni in ingresso aggiungendole innanzitutto al set di attestazioni di input. Un set di attestazioni di input è simile a una cache di memoria usata per archiviare temporaneamente i dati solo finché, nell'ambito di un processo obbligatorio, è necessario che i dati siano disponibili per il recupero. I dati del set di attestazioni di input vengono rimossi quando termina l'esecuzione delle regole.

Aggiunta di un'attestazione al set di attestazioni di input per un set di regole

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

Nell'illustrazione seguente, ad esempio, il motore delle attestazioni legge le attestazioni A e B dalle attestazioni in ingresso e le copia nel set di attestazioni di input. Una volta 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 del set di regole attestazioni.

Illustration that shows that the claims engine reads the claims of A and B from the incoming claims and copies them to the input claim set.

Tutte le regole di un set di regole attestazioni condividono lo stesso set di attestazioni di input. Ogni regola di tale set può essere aggiunta al set di attestazioni di input condiviso, influendo così su tutte le regole successive nel set.

Passaggio 2: Esecuzione

In questo passaggio del processo delle regole attestazioni le regole attestazioni vengono elaborate quando il motore delle attestazioni esegue una alla volta in ordine cronologico tutte le regole di un determinato set di regole. Ogni regola all'interno di un set di regole viene eseguita solo una volta e viene eseguita nell'ordine di visualizzazione dall'alto verso il basso nella finestra di dialogo Modifica regole attestazione nello snap-in di gestione di AD FS. La regola attestazioni all'inizio del set di regole viene elaborata per prima e quindi vengono elaborate le regole successive finché vengono eseguite tutte le regole.

Come definito nel linguaggio delle regole attestazioni, una regola attestazioni è costituita da due parti, la condizione e l'istruzione di rilascio. Il motore delle attestazioni elabora prima la parte della condizione usando 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 corrispondono alla condizione della regola sono dette attestazioni corrispondenti. Se vengono trovate attestazioni corrispondenti, il motore delle attestazioni esegue l'istruzione di rilascio della regola per ogni set delle attestazioni corrispondenti. L'istruzione di rilascio della regola può eseguire una delle attività seguenti con le regole corrispondenti:

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

  2. Trasformare i campi delle attestazioni e creare una nuova attestazione solo nel set di attestazioni di input oppure nei set di attestazioni sia di valutazione che di output.

  3. Usare una o più attestazioni corrispondenti come chiave per cercare altre informazioni in un archivio di attributi per poter creare una o più nuove attestazioni solo nel set di attestazioni di input oppure nei set di attestazioni sia di input che di output.

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

Il set di attestazioni di output è una posizione nella memoria inizialmente vuota ed è importante perché il motore delle attestazioni restituirà solo le attestazioni presenti nel set di attestazioni di output al termine del processo di esecuzione. Per questo motivo le attestazioni presenti solo nel set di attestazioni di input e non nel set di attestazioni di output verranno ignorate al momento di calcolare il set finale di attestazioni in uscita.

Aggiunta di un'attestazione a entrambi i set di attestazioni per un set di regole

Quando una regola viene elaborata, vengono aggiunte attestazioni nel set di attestazioni di input oppure sia nel set di attestazioni di input sia nel set di attestazioni di output in base all'istruzione usata nell'istruzione di rilascio della regola. Nel linguaggio delle regole attestazione queste istruzioni sono chiamate add o issue.

Se viene usata l'istruzione add, le attestazioni vengono aggiunte solo al set di attestazioni di input e le attestazioni esisteranno solo ai fini dell'esecuzione e smetteranno di esistere al termine dell'esecuzione. Se viene usata l'istruzione issue, 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 di regola attestazione.

Se la parte della condizione di una regola in un set di regole non corrisponde ad alcuna attestazione del set di attestazioni di input, la parte dell'istruzione di rilascio della regola viene ignorata e quindi nessuna attestazione viene aggiunta al set di attestazioni di output né al set di attestazioni di input. La figura seguente e i passaggi corrispondenti mostrano che cosa accade quando il motore delle attestazioni esegue una regola di trasformazione:

Illustration that shows what happens when the claims engine executes a transform rule.

  1. Le attestazioni in ingresso vengono aggiunte al set di attestazioni di input dal motore delle attestazioni.

  2. La prima regola, quando viene eseguita, vede le attestazioni A e B, che in quel momento sono le uniche presenti nel set di attestazioni di input, ed elabora la parte condizionale della logica della regola 1.

  3. Poiché l'attestazione A è presente nel set di attestazioni di input, viene determinato che la condizione della regola è vera (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 ora può usare le attestazioni A, B e C (tutte le attestazioni del set di attestazioni di input) come input per elaborare la logica.

Per ulteriori informazioni sulla trasformazione di attestazioni, vedere quando utilizzare una regola di attestazione di trasformazione.

Passaggio 3: Risultato dell'esecuzione

La fase finale dell'esecuzione del set di regole attestazioni inizia dopo che tutte le regole sono state eseguite in un determinato set di regole e il set di attestazioni finale è presente nel set di attestazioni 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 attestazioni a prendere il controllo e a spostare questo output finale nella fase successiva del processo.

Invio dell'output dell'esecuzione alla pipeline delle attestazioni

Quando il motore delle attestazioni elabora un set di regole, per questo set sono disponibili posizioni dedicate nella memoria per i set di attestazioni di input e di output. Ciò significa che i set di attestazioni di input e di output usati da un set di regole sono distinti da quelli usati in un altro set di regole.

Dopo l'esecuzione dell'intero processo per un determinato set di regole (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 delle attestazioni. In questo modo le attestazioni possono passare dall'output di un set di regole all'input di un altro set di regole, come mostrato nella figura seguente.

AD FS roles

Nota

Anche il set di regole di rilascio è una fase cruciale della pipeline, tuttavia non è stato inserito nella figura precedente al solo scopo di semplificarla. Per un'illustrazione che mostra il set di regole di rilascio e sulle modalità di integrazione in pipeline delle attestazioni, vedere ruolo delle Pipeline delle attestazioni.

In questo caso, l'output delle regole di accettazione viene usato dalla pipeline per il flusso del set di attestazioni finale generato dalle regole di accettazione verso la seconda fase nella pipeline, ovvero l'elaborazione delle regole di autorizzazione. A questo punto, l'intero processo di esecuzione delle regole attestazioni (passaggi 1, 2 e 3 precedenti) verrà eseguito nuovamente per il set di regole di autorizzazione. Questo ciclo continua fino al completamento del set di regole di rilascio (la fase finale nella pipeline).

Le attestazioni in uscita finalizzate, dopo essere state restituite dal motore per il set di regole di rilascio, verranno inserite in un token SAML e il Servizio federativo invierà il token di nuovo 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 di output diversi da quelli delle regole di accettazione o di rilascio), tali regole di autorizzazione verranno eseguite per stabilire se il richiedente di un token è autorizzato a ottenere un token di sicurezza per una determinata relying party dal Servizio federativo in base alle attestazioni del richiedente.

L'obiettivo delle regole di autorizzazione è rilasciare un'attestazione per il consenso o il rifiuto a seconda che all'utente sia consentito o meno ottenere un token per la relying party specifica. Come mostrato nell'illustrazione seguente, l'output dell'esecuzione dell'autorizzazione viene usato dalla pipeline per determinare se il set di regole di rilascio viene eseguito oppure no, in base alla presenza o all'assenza dell'attestazione per il consenso e/o il rifiuto, ma l'output dell'esecuzione dell'autorizzazione in se stesso non viene usato come input per il set di regole attestazioni.

Illustration that shows the output of the authorization execution is used by the pipeline to determine whether the issuance rule set is executed or not.

Per altre informazioni sull'autorizzazione delle attestazioni, vedere When to Use an Authorization Claim Rule.