Risoluzione dei problemi AD FS - Sintassi delle regole sulle attestazioni
Un'attestazione è una dichiarazione che un soggetto effettua relativa a se stesso o a un altro soggetto. Le attestazioni vengono rilasciate da una relying party, vengono attribuiti loro uno o più valori e creati pacchetti in token di sicurezza rilasciati dal server AD FS. Questo articolo si occupa della sintassi e della creazione delle attestazioni. Per altre informazioni sul rilascio di attestazioni, vedere Risoluzione dei problemi AD FS - Rilascio di attestazioni.
Nota
È possibile usare ClaimsXRay nel sito della Guida AD FS per prestare assistenza nell'ambito dei problemi relativi attestazioni.
Modalità di elaborazione delle regole attestazioni
Regole attestazione vengono elaborate tramite la pipeline di attestazioni utilizzando il motore delle attestazioni. Il motore delle attestazioni è un componente logico del servizio federativo che esamina il set di attestazioni in ingresso fornite da un utente e quindi, in base alla logica di ogni regola, produce un set di attestazioni di output.
Come creare una regola attestazioni
Le regole attestazioni vengono create separatamente per ogni relazione di trust federativa nel servizio federativo e non vengono condivise tra più trust. È possibile creare una regola da un modello di regola attestazione, iniziare da zero per la regola utilizzando il linguaggio di regola attestazione di creazione o l'utilizzo di Windows PowerShell per personalizzare una regola.
Informazioni sui componenti del linguaggio delle regole attestazioni
Il linguaggio di regola attestazione include i componenti seguenti, separati dal “ =>” operatore:
Una condizione: usata per controllare le attestazioni di input e determinare se eseguire l'istruzione di rilascio della regola. Rappresenta un'espressione logica che deve restituire true per eseguire la parte del corpo della regola.
Istruzione di rilascio.
Esempio
c:[type == "Name", value == "domain user"] => issue(type = "Role", value = "employee");
L’attestazione ha le seguenti caratteristiche:
- Condizione -
c:[type == "Name", value == "domain user"]
- valuta se il nome dell'account di Windows è un utente di dominio. - Rilascio -
issue(type = "Role", value = "employee")
- se la condizione è true, aggiunge una nuova richiesta alla richiesta di input con il ruolo di dipendente.
Per ulteriori informazioni sulle attestazioni e sulla sintassi, vedere Il ruolo del linguaggio di regola attestazione.
Editor delle regole di attestazione
Il controllo della sintassi viene eseguito dall'editor delle regole di attestazione dopo aver completato l’attestazione e aver selezionato OK. Pertanto, se la sintassi non è corretta, l'editor lo segnala.
Registri eventi
Quando si cerca di risolvere un’attestazione utilizzando i registri, l'approccio migliore è quello di cercare l'output dell’attestazione. È possibile cercare gli eventi 1000 e 1001 nel registro eventi.
Creazione di un'applicazione di esempio
È anche possibile creare un'applicazione di esempio che riprenda le attestazioni. Ad esempio, è possibile utilizzare un'applicazione di esempio e creare una relying party sulla stessa attestazione che si sta cercando di risolvere e vedere se l'app presenta problemi con tale attestazione.
Un buon esempio di applicazione web è disponibile qui. L'app restituisce le attestazioni ricevute dalla relying party. Questa app restituisce le attestazioni che riceve dalla relying party. Per poterla utilizzare, è necessario modificare l'app web.config:
- Modificando https://app1.contoso.com/sampapp con l'URL che verrà utilizzato per l’hosting dell'app di esempio.
- Modificando tutte le istanze di sts.contoso.com in modo che puntino al server federativo AD FS.
- Sostituendo il thumbprint con il proprio thumbprint.
- Sostituzione di
decryptionKey
evalidationKey
con i valori appropriati per lo scenario.
Il seguente articolo del blogcontiene istruzioni complete e approfondite per la configurazione.