Quando usare una regola dichiarazione personalizzata

Si scrive una regola attestazione personalizzata in Active Directory Federation Services (AD FS) usando il linguaggio delle regole di attestazione personalizzate, che è il framework usato dal motore di rilascio delle attestazioni per generare, trasformare, trasmettere e filtrare le attestazioni a livello di codice. Usando una regola personalizzata, è possibile creare regole con logica più complessa rispetto a un modello di regola standard. È consigliabile usare una regola personalizzata quando si vuole:

  • Inviare attestazioni in base ai valori estratti da un archivio attributi SQL (Structured Query Language).

  • Inviare attestazioni in base ai valori estratti da un archivio attributi LDAP (Lightweight Directory Access Protocol) usando un filtro LDAP personalizzato.

  • Inviare attestazioni in base ai valori estratti da un archivio attributi personalizzato.

  • Inviare attestazioni solo quando sono presenti due o più attestazioni in ingresso.

  • Inviare attestazioni solo quando un valore di attestazione in ingresso corrisponde a un modello complesso.

  • Invia richieste con modifiche complesse a un valore di una richiesta in ingresso.

  • Creare attestazioni da usare solo nelle regole successive, senza inviare effettivamente le attestazioni.

  • Costruire un'attestazione in uscita dal contenuto di più attestazioni in ingresso.

È anche possibile utilizzare una regola personalizzata quando il valore dell'attestazione in uscita deve basarsi sul valore dell'attestazione in ingresso, ma deve includere anche ulteriore contenuto.

Il linguaggio delle regole delle attestazioni è basato su regole. È costituita da una parte di condizione e una parte di esecuzione. È possibile usare la sintassi del linguaggio delle regole attestazioni per enumerare, aggiungere, eliminare o modificare attestazioni per soddisfare le esigenze dell'organizzazione. Per altre informazioni sul funzionamento di ognuna di queste parti, vedere Ruolo del linguaggio delle regole attestazioni.

Le sezioni seguenti forniscono un'introduzione di base alle regole di attestazione. Forniscono anche informazioni dettagliate su quando utilizzare una regola di attestazione personalizzata.

Informazioni sulle regole delle richieste

Una regola di attestazione rappresenta un'istanza della logica di business che accetta un'attestazione in ingresso, applica una condizione (se x, allora y) e genera un'attestazione in uscita in base ai parametri della condizione.

Important

  • Nello snap-in Gestione AD FS, le regole di attestazione possono essere create solo utilizzando i modelli di regola di attestazione
  • Le regole delle attestazioni processano le attestazioni in ingresso, sia direttamente da un provider di attestazioni (ad esempio Active Directory o un altro servizio federativo), sia dal risultato delle regole di trasformazione di accettazione sul trust del provider di attestazioni.
  • Le regole delle richieste vengono elaborate dal motore di rilascio delle richieste in ordine cronologico all'interno di un determinato insieme di regole. Impostando la precedenza sulle regole, è possibile perfezionare o filtrare ulteriormente le attestazioni generate dalle regole precedenti all'interno di un determinato set di regole.
  • I modelli di regola per le dichiarazioni richiedono sempre di specificare un tipo di dichiarazione in ingresso. Tuttavia, è possibile elaborare più valori di attestazione con lo stesso tipo di attestazione usando una singola regola.

Per informazioni più dettagliate sulle regole di attestazione e sugli insiemi di regole di attestazione, vedere Il ruolo delle regole di attestazione. Per ulteriori informazioni su come vengono elaborate le regole, vedere Il ruolo del motore di gestione delle attestazioni. Per ulteriori informazioni su come vengono elaborati gli insiemi di regole di attestazione, vedere Il ruolo della pipeline di attestazioni.

Come creare questa regola

Per creare questa regola, innanzitutto si scrive la sintassi necessaria per l'operazione utilizzando il linguaggio delle regole di claim e poi si incolla il risultato nella casella di testo fornita nel modello "Invia claim utilizzando una regola personalizzata" nelle proprietà di un trust del provider di attestazioni o di un trust della relying party nello snap-in di gestione AD FS.

Questo modello di regola offre le opzioni seguenti:

  • Specificare un nome di regola di attestazione

  • Digitare una o più condizioni facoltative e una dichiarazione di emissione utilizzando il linguaggio di regole di attestazione AD FS

Per altre istruzioni per la creazione di una regola personalizzata con questo modello, vedere Creare una regola per inviare attestazioni usando una regola personalizzata nella Guida alla distribuzione di AD FS.

Per una migliore comprensione del funzionamento del linguaggio delle regole delle attestazioni, visualizzare la sintassi del linguaggio delle regole delle attestazioni di altre regole già esistenti nello snap-in facendo clic sulla scheda Visualizza linguaggio regola nelle proprietà per tale regola. L'uso delle informazioni contenute in questa sezione e le informazioni sulla sintassi in questa scheda possono fornire informazioni dettagliate su come costruire regole personalizzate.

Per ulteriori informazioni su come usare il linguaggio delle regole di attestazioni, vedere Il ruolo del linguaggio delle regole di attestazioni.

Uso del linguaggio delle regole delle attestazioni

Esempio: Come combinare il nome e il cognome in base ai valori dell'attributo name di un utente

La sintassi della regola seguente combina il nome e il cognome dai valori degli attributi in un determinato archivio di attributi. Il motore delle politiche forma un prodotto cartesiano delle corrispondenze per ogni condizione. Ad esempio, l'output per il nome {"Frank", "Alan"} e il cognome {"Miller", "Shen"} è {"Frank Miller", "Frank Shen", "Alan Miller", "Alan Shen"}:

c1:[type == "http://exampleschema/firstname" ]
&&  c2:[type == "http://exampleschema/lastname",]
=> issue(type = "http://exampleschema/name", value = c1.value + "  " + c2.value);

Esempio: Come rilasciare un'attestazione di gestione in base al fatto che gli utenti dispongano di report diretti

La regola seguente rilascia un'attestazione di gestione solo se l'utente dispone di report diretti:

c:[type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"] => add(store = "SQL Store", types = ("http://schemas.xmlsoap.org/claims/Reports"), query = "SELECT Reports FROM dbo.DirectReports WHERE UserName = {0}", param = c.value );
count([type == "http://schemas.xmlsoap.org/claims/Reports"] ) > 0 => issue(= "http://schemas.xmlsoap.org/claims/ismanager", value = "true");

Esempio: Come rilasciare un'attestazione PPID basata su un attributo LDAP

La regola seguente rilascia un'attestazione PPID (Private Personal Identifier) in base agli attributi windowsaccountname e originalissuer degli utenti in un archivio attributi LDAP:

c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
 => issue(store = "_OpaqueIdStore", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier"), query = "{0};{1};{2}", param = "ppid", param = c.Value, param = c.OriginalIssuer);

Gli attributi comuni che possono essere usati per identificare in modo univoco l'utente per questa query includono quanto segue:

  • SID utente

  • windowsaccountname

  • samaccountname