Delen via


Wanneer een autorisatieclaimregel te gebruiken

U kunt deze regel gebruiken in Active Directory Federation Services (AD FS) wanneer u een binnenkomend claimtype moet nemen en vervolgens een actie toepassen die bepaalt of een gebruiker toegang wordt toegestaan of geweigerd op basis van de waarde die u in de regel opgeeft. Wanneer u deze regel gebruikt, geeft u claims door of transformeert die overeenkomen met de volgende regellogica, op basis van een van de opties die u in de regel configureert:

Regeloptie Regellogica
Alle gebruikers toestaan Als het binnenkomende claimtype gelijk is aan of elk claimtype, en de waarde gelijk is aan of een waarde, dan geeft u een claim uit met de waarde gelijk aan , Toestemming.
Sta toegang toe voor gebruikers met deze binnenkomende claim. Als het binnenkomende claimtype gelijk is aan het opgegeven claimtype en de waarde gelijk is aan de opgegeven claimwaarde , wijs dan een claim toe met waarde, gelijk aan Permit.
Weiger toegang aan gebruikers met deze binnenkomende claim Als het binnenkomende claimtype gelijk is aan opgegeven claimtype en de waarde gelijk is aan opgegeven claimwaarde, dan moet een claim worden uitgegeven met de waarde gelijk aan . Weigeren.

In de volgende secties vindt u een eenvoudige inleiding tot claimregels en vindt u meer informatie over het gebruik van deze regel.

Over claimregels

Een claimregel vertegenwoordigt een exemplaar van bedrijfslogica dat een binnenkomende claim neemt, er een voorwaarde op toepast (als x dan y) en een uitgaande claim produceert op basis van de voorwaardeparameters. De volgende lijst bevat belangrijke tips die u moet weten over claimregels voordat u verder leest in dit onderwerp:

  • In de beheersmodule AD FS kunnen claimregels alleen worden gemaakt met claimregelsjablonen.

  • Claimregels verwerken binnenkomende claims direct van een claimprovider (zoals Active Directory of een andere Federation Service) of uit de uitkomsten van de acceptatietransformatieregels van een claimprovider vertrouwensrelatie.

  • Claimregels worden verwerkt door de claimuitgifte-engine in chronologische volgorde binnen een bepaalde regelset. Door prioriteit in te stellen voor regels, kunt u claims die worden gegenereerd door eerdere regels in een bepaalde regelset verder verfijnen of filteren.

  • Voor claimregelsjablonen moet u altijd een binnenkomend claimtype opgeven. U kunt echter meerdere claimwaarden met hetzelfde claimtype verwerken met één regel.

Zie De rol van claimregelsvoor meer gedetailleerde informatie over claimregels en claimregelsets. Zie De rol van de claimenginevoor meer informatie over hoe regels worden verwerkt. Zie De rol van de claimpijplijnvoor meer informatie over hoe claimregelsets worden verwerkt.

Alle gebruikers toestaan

Wanneer u de regelsjabloon Alle Gebruikers Toestaan gebruikt, hebben alle gebruikers toegang tot de relying party. U kunt echter aanvullende autorisatieregels gebruiken om de toegang verder te beperken. Als een regel een gebruiker toegang verleent tot de relying party, en een andere regel de gebruiker de toegang tot de relying party ontzegt, krijgt het ontzeggende resultaat voorrang en wordt de toegang aan de gebruiker geweigerd.

Gebruikers die toegang hebben tot de relying party via de Federatie Service, kunnen nog steeds door de relying party worden geweigerd.

Sta toegang toe voor gebruikers met deze binnenkomende claim.

Wanneer u de sjabloon "Gebruik toestaan of weigeren op basis van een binnenkomende claim" gebruikt om een regel te maken en de voorwaarde instelt op toestaan, kunt u specifieke gebruikers toegang verlenen tot de relying-partij op basis van het type en de waarde van een binnenkomende claim. U kunt deze regelsjabloon bijvoorbeeld gebruiken om een regel te maken die alleen die gebruikers toestaat die een groepsclaim hebben met de waarde Domeinbeheerders. Als één regel een gebruiker toegang verleent tot de relying party en een andere regel gebruikers toegang tot de relying party ontzegt, gaat het weigerresultaat voor en wordt de toegang de gebruiker ontzegd.

Gebruikers die toegang hebben tot de vertrouwende partij van de Federation-service, kunnen nog steeds door de vertrouwende partij worden geweigerd. Als u alle gebruikers toegang wilt geven tot de relying party, gebruikt u de regelsjabloon Alle gebruikers toestaan.

Weiger toegang aan gebruikers met deze binnenkomende claim

Wanneer u de sjabloon 'Gebruikers toestaan of weigeren op basis van een binnenkomende claim' gebruikt om een regel te maken en de voorwaarde instelt om te weigeren, kunt u de toegang van de gebruiker tot de relying party weigeren op basis van het type en de waarde van een binnenkomende claim. U kunt deze regelsjabloon bijvoorbeeld gebruiken om een regel te maken waarmee alle gebruikers met een groepsclaim met de waarde Domeingebruikers worden geweigerd.

Als u de deny-voorwaarde wilt gebruiken, maar ook toegang wilt inschakelen tot de relying party voor bepaalde gebruikers, moet u later expliciet autorisatieregels toevoegen met de permit-voorwaarde om deze gebruikers toegang te geven tot de relying party.

Als een gebruiker geen toegang krijgt wanneer de claimuitgifte-engine de regelset verwerkt, wordt verdere verwerking van regels afgesloten en retourneert AD FS een fout 'Toegang geweigerd' aan de aanvraag van de gebruiker.

Gebruikers autoriseren

In AD FS worden autorisatieregels gebruikt om een claim voor toestaan of weigeren uit te geven die bepaalt of een gebruiker of een groep gebruikers (afhankelijk van het gebruikte claimtype) toegang heeft tot webbronnen in een bepaalde relying party of niet. Autorisatieregels kunnen alleen worden ingesteld op relying party-vertrouwensrelaties.

Autorisatieregelsets

Er bestaan verschillende autorisatieregelsets, afhankelijk van het type bewerkingen voor toestaan of weigeren die u moet configureren. Deze regelsets zijn onder andere:

  • Uitgifteautorisatieregels: Deze regels bepalen of een gebruiker claims voor een vertrouwende partij kan ontvangen en daardoor toegang tot de vertrouwende partij.

  • Autorisatieregels voor delegatie: Deze regels bepalen of een gebruiker als een andere gebruiker kan fungeren voor de vertrouwende partij. Wanneer een gebruiker als een andere gebruiker fungeert, worden claims over de aanvragende gebruiker nog steeds in het token geplaatst.

  • autorisatieregels voor imitatie: deze regels bepalen of een gebruiker een andere gebruiker volledig kan imiteren voor de relying party. Het imiteren van een andere gebruiker is een zeer krachtige mogelijkheid, omdat de relying party niet weet dat de gebruiker wordt geïmiteerd.

Zie de rol van de claimuitgifte-engine voor meer informatie over hoe het autorisatieregelproces in de claimuitgiftepijplijn past.

Ondersteunde claimtypen

AD FS definieert twee claimtypen die worden gebruikt om te bepalen of een gebruiker is toegestaan of geweigerd. Deze claimtype Uniform Resource Identifiers (URI's) zijn als volgt:

  1. Vergunning: http://schemas.microsoft.com/authorization/claims/permit

  2. weigeren: http://schemas.microsoft.com/authorization/claims/deny

Hoe deze regel te maken

U kunt beide autorisatieregels maken met behulp van de taal voor claimregels of met behulp van de Alle gebruikers toestaan regelsjabloon of de Gebruikers toestaan of weigeren op basis van een binnenkomende claim regelsjabloon in de AD FS-beheer snap-in. De regelsjabloon Alle gebruikers toestaan biedt geen configuratieopties. Het toestaan of weigeren van gebruikers op basis van een binnenkomende claimregelsjabloon biedt echter de volgende configuratieopties:

  • Geef de naam van een claimregel op

  • Een binnenkomend claimtype opgeven

  • Typ een binnenkomende claimwaarde

  • Sta toegang toe voor gebruikers met deze binnenkomende claim.

  • Weiger toegang aan gebruikers met deze binnenkomende claim

Zie Een regel maken om alle gebruikers toe te staan of Een regel maken om gebruikers toe te staan of te weigeren op basis van een binnenkomende claim maken in de AD FS-implementatiehandleiding voor meer instructies over het maken van deze sjabloon.

De claimregeltaal gebruiken

Als een claim alleen moet worden verzonden wanneer de claimwaarde overeenkomt met een aangepast patroon, moet u een aangepaste regel gebruiken. Zie Wanneer u een aangepaste claimregel gebruiktvoor meer informatie.

Voorbeeld van het maken van een autorisatieregel op basis van meerdere claims

Wanneer u de syntaxis van de claimregeltaal gebruikt om claims te autoriseren, kan een claim ook worden uitgegeven op basis van de aanwezigheid van meerdere claims in de oorspronkelijke claims van de gebruiker. De volgende regel geeft alleen een autorisatieclaim uit als de gebruiker lid is van de groepseditors en is geverifieerd met behulp van Windows-verificatie:

[type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod",
value == "urn:federation:authentication:windows" ]
&& [type == "http://schemas.xmlsoap.org/claims/Group ", value == "editors"]
=> issue(type = "http://schemas.xmlsoap.org/claims/authZ", value = "Granted");

Voorbeeld van het maken van autorisatieregels waarmee wordt gedelegeerd wie federatieve serverproxyvertrouwensrelaties kan maken of verwijderen

Voordat een Federation-service een federatieserverproxy kan gebruiken om aanvragen van clients om te leiden, moet eerst een vertrouwensrelatie tot stand worden gebracht tussen de Federation-service en de federatieserverproxycomputer. Standaard wordt een proxy-vertrouwensrelatie tot stand gebracht wanneer een van de volgende referenties met succes is opgegeven in de AD FS Federatie Server Proxy Configuratie Wizard.

  • Het serviceaccount dat door de Federation-service wordt gebruikt en dat de proxy zal beveiligen.

  • Een Active Directory-domeinaccount dat lid is van de lokale groep Administrators op alle federatieservers in een federatieserverfarm

Wanneer u wilt opgeven welke gebruiker of gebruikers een proxyvertrouwensrelatie voor een bepaalde Federation-service kunnen maken, kunt u een van de volgende delegeringsmethoden gebruiken. Deze lijst met methoden is in prioriteitsvolgorde, op basis van de aanbevelingen van het AD FS-productteam van de veiligste en minst problematische methoden van delegatie. Het is nodig om slechts een van deze methoden te gebruiken, afhankelijk van de behoeften van uw organisatie:

  1. Maak een domeinbeveiligingsgroep in Active Directory (bijvoorbeeld FSProxyTrustCreators), voeg deze groep toe aan de lokale groep Administrators op elk van de federatieservers in de farm en voeg vervolgens alleen de gebruikersaccounts toe waaraan u dit recht wilt delegeren aan de nieuwe groep. Dit is de voorkeursmethode.

  2. Voeg het domeinaccount van de gebruiker toe aan de beheerdersgroep op elk van de federatieservers in de farm.

  3. Als u om een of andere reden geen van deze methoden kunt gebruiken, kunt u ook een autorisatieregel maken voor dit doel. Hoewel het niet wordt aanbevolen, vanwege mogelijke complicaties die kunnen optreden als deze regel niet correct is geschreven, kunt u een aangepaste autorisatieregel gebruiken om te delegeren welke Active Directory-domeingebruikersaccounts ook de vertrouwensrelaties kunnen maken of verwijderen tussen alle federatieserverproxy's die zijn gekoppeld aan een bepaalde Federation-service.

    Als u methode 3 kiest, kunt u de volgende regelsyntaxis gebruiken om een autorisatieclaim uit te geven waarmee een opgegeven gebruiker (in dit geval contoso\frankm) vertrouwensrelaties voor een of meer federation-serverproxy's voor de Federation-service kan maken. U moet deze regel toepassen met de Windows PowerShell-opdracht Set-ADFSProperties AddProxyAuthorizationRules.

    c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", issuer=~"^AD AUTHORITY$" value == "contoso\frankm" ] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "true")
    
    exists([Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value == "S-1-5-32-544", Issuer =~ "^AD AUTHORITY$"])
    => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "true");
    
    c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid", Issuer =~ "^AD AUTHORITY$" ] => issue(store="_ProxyCredentialStore",types=("https://schemas.microsoft.com/authorization/claims/permit"),query="isProxyTrustManagerSid({0})", param= c.Value );
    
    c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/proxytrustid", Issuer =~ "^SELF AUTHORITY$" ] => issue(store="_ProxyCredentialStore",types=("https://schemas.microsoft.com/authorization/claims/permit"),query="isProxyTrustProvisioned({0})", param=c.Value );
    

    Als u de gebruiker later wilt verwijderen zodat de gebruiker geen proxyvertrouwensrelaties meer kan maken, kunt u terugkeren naar de standaardregel voor proxyvertrouwensrelatie om het recht voor de gebruiker te verwijderen om proxyvertrouwensrelaties voor de Federation-service te maken. U moet deze regel ook toepassen met de Windows PowerShell-opdracht Set-ADFSProperties AddProxyAuthorizationRules.

    exists([Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value == "S-1-5-32-544", Issuer =~ "^AD AUTHORITY$"])
    => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "true");
    
    c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid", Issuer =~ "^AD AUTHORITY$" ] => issue(store="_ProxyCredentialStore",types=("https://schemas.microsoft.com/authorization/claims/permit"),query="isProxyTrustManagerSid({0})", param= c.Value );
    
    c:[Type == "https://schemas.microsoft.com/ws/2008/06/identity/claims/proxytrustid", Issuer =~ "^SELF AUTHORITY$" ] => issue(store="_ProxyCredentialStore",types=("https://schemas.microsoft.com/authorization/claims/permit"),query="isProxyTrustProvisioned({0})", param=c.Value );
    

Zie De rol van de claimregeltaalvoor meer informatie over het gebruik van de claimregeltaal.