Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du skriver en anpassad anspråksregel i Active Directory Federation Services (AD FS) med hjälp av anspråksregelspråket, vilket är det ramverk som anspråksutfärdarmotorn använder för att programmatiskt generera, transformera, skicka igenom och filtrera anspråk. Genom att använda en anpassad regel kan du skapa regler med mer komplex logik än en standardregelmall. Överväg att använda en anpassad regel när du vill:
Skicka anspråk baserat på värden som extraheras från ett SQL-attributarkiv (Structured Query Language).
Skicka anspråk baserat på värden som extraheras från ett LDAP-attributarkiv (Lightweight Directory Access Protocol) med ett anpassat LDAP-filter.
Skicka anspråk baserat på värden som extraheras från ett anpassat attributarkiv.
Skicka anspråk endast när två eller flera inkommande anspråk finns.
Skicka endast anspråk när ett inkommande anspråksvärde matchar ett komplext mönster.
Skicka anspråk som innehåller komplexa ändringar av ett inkommande anspråksvärde.
Skapa anspråk för användning endast i senare regler, utan att faktiskt skicka anspråken.
Konstruera ett utgående anspråk från innehållet i mer än ett inkommande anspråk.
Du kan också använda en anpassad regel när anspråksvärdet för det utgående anspråket måste baseras på värdet för det inkommande anspråket, men det måste även innehålla ytterligare innehåll.
Anspråksregelspråket är regelbaserat. Den har en villkorsdel och en exekveringsdel. Du kan använda syntaxen för anspråksregelspråk för att räkna upp, lägga till, ta bort eller ändra anspråk för att uppfylla organisationens behov. Mer information om hur var och en av dessa delar fungerar finns i Rollen för anspråksregelspråket.
Följande avsnitt innehåller en grundläggande introduktion till anspråksregler. De innehåller också information om när du ska använda en anpassad anspråksregel.
Om anspråksregler
En anspråksregel representerar en instans av affärslogik som tar ett inkommande anspråk, tillämpar ett villkor på den (om x, sedan y) och skapar ett utgående anspråk baserat på villkorsparametrarna.
Important
- I snapin-modulen AD FS Management kan anspråksregler endast skapas med hjälp av anspråksregelmallar
- Anspråksregler hanterar inkommande anspråk antingen direkt från en användartjänst (till exempel Active Directory eller en annan federationstjänst) eller från resultatet av reglerna för godkännandetransformering på ett förtroende för en anspråkstjänst.
- Anspråksregler bearbetas av anspråksutfärdarmotorn i kronologisk ordning inom en viss regeluppsättning. Genom att ange prioritet för reglerna kan du ytterligare förfina eller filtrera anspråk som genereras av tidigare regler i en viss regeluppsättning.
- Anspråksregelmallar kräver alltid att du anger en inkommande anspråkstyp. Du kan dock bearbeta flera anspråksvärden med samma anspråkstyp med hjälp av en enda regel.
Mer detaljerad information om anspråksregler och anspråksregeluppsättningar finns i Rollen för anspråksregler. Mer information om hur regler bearbetas finns i Rollen för anspråksmotorn. Mer information om hur anspråksregeluppsättningar bearbetas finns i Rollen för anspråkspipelinen.
Så här skapar du den här regeln
Du skapar den här regeln genom att först redigera den syntax som du behöver för din åtgärd med hjälp av anspråksregelspråket och sedan klistra in resultatet i textrutan som anges i mallen Skicka anspråk med en anpassad regel på egenskaperna för antingen ett anspråksproviderförtroende eller ett förlitande partförtroende i snapin-modulen För AD FS-hantering.
Den här regelmallen innehåller följande alternativ:
Ange ett namn på anspråksregeln
Ange ett eller flera valfria villkor och ett utfärdandeuttryck med hjälp av AD FS-anspråksregelspråket
Mer information om hur du skapar en anpassad regel med den här mallen finns i Skapa en regel för att skicka anspråk med hjälp av en anpassad regel i AD FS-distributionsguiden.
Om du vill få en bättre förståelse för hur anspråksregelspråket fungerar kan du visa syntaxen för anspråksregelspråket för andra regler som redan finns i snapin-modulen genom att klicka på fliken Visa regelspråk i egenskaperna för regeln. Med hjälp av informationen i det här avsnittet och syntaxinformationen på den här fliken kan du ge insikt i hur du skapar egna anpassade regler.
Mer information om hur du använder anspråksregelspråket finns i Rollen för anspråksregelspråket.
Att använda anspråksregelspråket
Exempel: Kombinera för- och efternamn baserat på en användares namnattributvärden
Följande regelsyntax kombinerar för- och efternamn från attributvärden i ett angivet attributarkiv. Policymotorn bildar en kartesisk produkt av matchningarna för varje villkor. Till exempel är utdata för förnamnet {"Frank", "Alan"} och efternamnen {"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);
Exempel: Så här utfärdar du ett chefsanspråk baserat på om användare har direkta rapporter
Följande regel utfärdar endast ett chefsanspråk om användaren har direkta rapporter:
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");
Exempel: Utfärda ett PPID-anspråk baserat på ett LDAP-attribut
Följande regel utfärdar ett PPID-anspråk (Private Personal Identifier) baserat på attributen windowsaccountname och originalissuer för användare i ett LDAP-attributarkiv:
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);
Vanliga attribut som kan användas för att unikt identifiera användaren för den här frågan är följande:
användar-SID
windowsaccountname
samaccountname