Wann sollte eine Autorisierungsanspruchsregel verwendet werden

Sie können diese Regel in den Active Directory-Verbunddiensten (AD FS) verwenden, wenn Sie mit einem eingehenden Anspruchstyp arbeiten und anschließend eine Aktion anwenden, die basierend auf dem in der Regel angegebenen Wert bestimmt, ob einem Benutzer der Zugriff gewährt oder verweigert wird. Wenn Sie diese Regel verwenden, leiten Sie Ansprüche weiter bzw. transformieren Ansprüche, die der folgenden Regellogik entsprechen. Dies geschieht auf Basis der Optionen, die Sie in der Regel konfigurieren:

Regeloption Regellogik
Alle Benutzer zulassen Wenn der Typ des eingehenden Anspruchs einem beliebigen Anspruchstyp und der Wert einem beliebigen Wert entspricht, wird der Ausstellungsanspruch mit Wert auf Zulassen festgelegt.
Benutzern mit diesem eingehenden Anspruch Zugriff gewähren Wenn der Typ des eingehenden Anspruchs einem angegebenen Anspruchstyp und der Wert einem angegebenen Anspruchswert entspricht, wird der Ausstellungsanspruch mit Wert auf Zulassen festgelegt.
Benutzern mit diesem eingehenden Anspruch Zugriff verweigern Wenn der Typ des eingehenden Anspruchs einem angegebenen Anspruchstyp und der Wert einem angegebenen Anspruchswert entspricht, wird der Ausstellungsanspruch mit Wert auf Verweigern festgelegt.

Die folgenden Abschnitte enthalten eine grundlegende Einführung in Anspruchsregeln und bieten weitere Details zur Verwendung dieser Regeln.

Informationen zu Anspruchsregeln

Eine Anspruchsregel stellt eine Instanz der Geschäftslogik dar, die auf einen eingehenden Anspruch eine Bedingung anwendet (wenn x, dann y) und auf der Grundlage der Bedingungsparameter einen ausgehenden Anspruch erzeugt. Die folgende Liste enthält wichtige Tipps zu Anspruchsregeln, die Sie kennen sollten, bevor Sie fortfahren, dieses Thema zu lesen:

  • Im AD FS-Verwaltungs-Snap-In können Anspruchsregeln nur mit Anspruchsregelvorlagen erstellt werden.

  • Anspruchsregeln verarbeiten eingehende Ansprüche entweder direkt von einem Anspruchsanbieter (wie Active Directory oder einem anderen Verbunddienst) oder von der Ausgabe der Akzeptanztransformationsregeln in einer Anspruchsanbietervertrauensstellung aus.

  • Anspruchsregeln werden von der Anspruchsausstellungs-Engine chronologisch nach einem bestimmten Regelsatz verarbeitet. Indem Sie eine Rangfolge der Regeln festlegen, können Sie Ansprüche, die durch vorausgehende Regeln in einem bestimmten Regelsatz generiert werden, weiter optimieren oder filtern.

  • Anspruchsregelvorlagen erfordern immer, dass Sie einen eingehenden Anspruchstyp angeben. Allerdings können Sie mehrere Anspruchswerte mit den gleichen Anspruchstyp mithilfe einer einzigen Regel verarbeiten.

Ausführlichere Informationen zu Anspruchsregeln und Anspruchsregelsätzen finden Sie unter Die Rolle von Anspruchsregeln. Weitere Informationen dazu, wie Regeln verarbeitet werden, finden Sie unter Die Rolle der Anspruchs-Engine. Weitere Informationen dazu, wie Anspruchsregelsätze verarbeitet werden, finden Sie unter Die Rolle der Anspruchspipeline.

Alle Benutzer zulassen

Wenn Sie die Regelvorlage "Alle Benutzer zulassen" verwenden, haben alle Benutzer Zugriff auf die vertrauende Seite. Mithilfe zusätzliche Autorisierungsregeln können Sie jedoch den Zugriff weiter einschränken. Wenn eine Regel einem Benutzer den Zugriff auf die vertrauende Seite erlaubt und eine andere Regel den Zugriff des Benutzers auf die vertrauende Seite verweigert, hat das Verweigern Vorrang vor dem Erlauben, weshalb dem Benutzer der Zugriff verweigert wird.

Benutzern, denen der Zugriff auf die vertrauende Seite über den Verbunddienst erlaubt wird, kann der Dienst durch die vertrauende Seite dennoch verweigert werden.

Benutzern mit diesem eingehenden Anspruch Zugriff gewähren

Wenn Sie die Regelvorlage „Benutzer auf Basis eines eingehenden Anspruchs zulassen oder verweigern“ zum Erstellen einer Regel nutzen und die Bedingung auf „Erlauben“ festlegen, können Sie den Zugriff des jeweiligen Benutzers auf die vertrauende Seite basierend auf dem Typ und Wert eines eingehenden Anspruchs erlauben. Beispielsweise können Sie diese Regelvorlage zum Erstellen einer Regel nutzen, die nur Benutzer zulässt, die einen Gruppenanspruch mit dem Wert "Domänenadministratoren" haben. Wenn eine Regel einem Benutzer den Zugriff auf die vertrauende Seite erlaubt und eine andere Regel den Zugriff des Benutzers auf die vertrauende Seite verweigert, hat das Verweigern Vorrang vor dem Erlauben, weshalb dem Benutzer der Zugriff verweigert wird.

Benutzern, denen der Zugriff auf die vertrauende Seite über den Verbunddienst erlaubt wird, kann der Dienst durch die vertrauende Seite dennoch verweigert werden. Wenn alle Benutzer Zugriff auf die vertrauende Seite haben sollen, verwenden Sie die Regelvorlage "Alle Benutzer zulassen".

Benutzern mit diesem eingehenden Anspruch Zugriff verweigern

Wenn Sie die Regelvorlage „Benutzer auf Basis eines eingehenden Anspruchs zulassen oder verweigern“ zum Erstellen einer Regel nutzen und die Bedingung auf „Verweigern“ festlegen, können Sie den Zugriff des Benutzers auf die vertrauende Seite basierend auf dem Typ und Wert eines eingehenden Anspruchs verweigern. Beispielsweise können Sie diese Regelvorlage zum Erstellen einer Regel nutzen, die alle Benutzer verweigert, die einen Gruppenanspruch mit dem Wert "Domänenbenutzer" haben.

Wenn Sie die Bedingung "Verweigern" verwenden, aber bestimmten Benutzern dennoch den Zugriff auf die vertrauende Seite erlauben möchten, müssen Sie später explizite Autorisierungsregeln mit der Bedingung "Erlauben" hinzufügen, um diesen Benutzern den Zugriff auf die vertrauende Seite zu ermöglichen.

Wird einem Benutzer bei der Verarbeitung des Regelsatzes durch die Anspruchsausstellungs-Engine der Zugriff verweigert, wird die weitere Regelverarbeitung beendet, und AD FS gibt auf die Anforderung des Benutzers „Zugriff verweigert“ zurück.

Autorisieren von Benutzern

In AD FS dienen Autorisierungsregeln zum Ausstellen eines Anspruchs vom Typ „Zulassen“ oder „Verweigern“, der bestimmt, ob einem Benutzer oder einer Gruppe von Benutzern (je nach verwendetem Anspruchstyp) der Zugriff auf webbasierte Ressourcen auf einer bestimmten vertrauenden Seite erlaubt wird oder nicht. Autorisierungsregeln können nur für Vertrauensstellungen der vertrauenden Seite festgelegt werden.

Autorisierungsregelsätze

Je nach Typ des Vorgangs (Erlauben oder Verweigern), den Sie konfigurieren möchten, gibt es verschiedene Autorisierungsregelsätze. Diese Regel umfassen Folgendes:

  • Ausstellungsautorisierungsregeln: Diese Regeln bestimmen, ob ein Benutzer Ansprüche für eine vertrauende Seite empfangen und damit auf die vertrauende Seite zugreifen kann.

  • Delegationsautorisierungsregeln: Diese Regeln bestimmen, ob ein Benutzer für die vertrauende Seite als ein anderer Benutzer fungieren kann. Wenn ein Benutzer als ein anderer Benutzer fungiert, werden Ansprüche an den anfordernden Benutzer weiter im Token platziert.

  • Autorisierungsregeln für den Identitätswechsel: Diese Regeln bestimmen, ob ein Benutzer vollständig die Identität eines anderen Benutzers für die vertrauende Seite annehmen kann. Die Identität eines anderen Benutzers anzunehmen ist eine sehr leistungsstarke Funktion, da die vertrauende Seite nicht weiß, dass der Benutzer die Identität eines anderen angenommen hat.

Weitere Informationen dazu, wie sich der Autorisierungsregelprozess in die Anspruchsausstellungs-Pipeline einfügt, finden Sie unter "Die Rolle der Anspruchsausstellungs-Engine".

Unterstützte Anspruchstypen

AD FS definiert zwei Anspruchstypen, mit denen bestimmt werden kann, ob ein Benutzerzugriff erlaubt oder verweigert wird. Die URIs (Uniform Resource Identifiers) dieser Anspruchstypen sind wie folgt:

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

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

Erstellen dieser Regel

Sie können beide Autorisierungsregeln entweder mithilfe der Anspruchsregelsprache oder über die Regelvorlage Alle Benutzer zulassen oder die Regelvorlage Benutzer auf Basis eines eingehenden Anspruchs zulassen oder verweigern im AD FS-Verwaltungs-Snap-In erstellen. Die Regelvorlage "Alle Benutzer zulassen" bietet keine Konfigurationsoptionen. Die Regelvorlage "Benutzer auf Basis eines eingehenden Anspruchs zulassen oder verweigern" bietet dagegen die folgenden Konfigurationsoptionen:

  • Angeben eines Anspruchsregelnamens

  • Eingehenden Anspruchstyp angeben

  • Wert eines eingehenden Anspruchs eingeben

  • Benutzern mit diesem eingehenden Anspruch Zugriff gewähren

  • Benutzern mit diesem eingehenden Anspruch Zugriff verweigern

Weitere Anweisungen zum Erstellen dieser Vorlage finden Sie im AD FS-Bereitstellungshandbuch unter Erstellen einer Regel zum Zulassen aller Benutzer oder unter Erstellen einer Regel zum Zulassen oder Ablehnen von Benutzern basierend auf einem eingehenden Anspruch.

Verwenden der Anspruchsregelsprache

Falls ein Anspruch nur gesendet werden soll, wenn der Wert des Anspruchs mit einem benutzerdefinierten Muster übereinstimmt, müssen Sie eine benutzerdefinierte Regel verwenden. Weitere Informationen finden Sie unter When to Use a Custom Claim Rule.

Beispiel der Erstellung einer Autorisierungsregel basierend auf mehreren Ansprüchen

Wenn Sie die Syntax der Anspruchsregelsprache zum Autorisieren von Ansprüchen verwenden, kann ein Anspruch auch basierend auf dem Vorhandensein mehrerer Ansprüche in den ursprünglichen Ansprüchen des Benutzers ausgestellt werden. Die folgende Regel stellt einen Autorisierungsanspruch nur dann aus, wenn der Benutzer Mitglied der Gruppe "Editoren" ist und sich mithilfe der Windows-Authentifizierung authentifiziert hat:

[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");

Beispiel der Erstellung von Autorisierungsregeln, die delegieren, wer Vertrauensstellungen für den Verbundserverproxy erstellen oder entfernen darf

Ehe ein Verbunddienst einen Verbundserverproxy zum Umleiten von Clientanforderungen nutzen kann, muss zwischen dem Verbunddienst und dem Computer mit dem Verbundserverproxy eine Vertrauensstellung eingerichtet werden. Standardmäßig wird eine Proxyvertrauensstellung eingerichtet, wenn eine Variante der folgenden Anmeldeinformation erfolgreich in den Assistenten für die Konfiguration eines AD FS-Verbundserverproxys eingegeben wird:

  • Für das Dienstkonto, das vom Verbunddienst verwendet wird, das der Proxy schützen soll

  • Für ein Active Directory-Domänenkonto, das Mitglied der lokalen Gruppe "Administratoren" auf allen Verbundservern in einer Verbundserverfarm ist

Wenn Sie angeben möchten, welche Benutzer eine Proxyvertrauensstellung für einen bestimmten Verbunddienst erstellen dürfen, können Sie für die Delegierung eine der folgenden Methoden verwenden. Diese Methoden sind in der Reihenfolge ihrer Priorität angegeben, und zwar basierend auf den Empfehlungen des AD FS-Produktteams zu den sichersten und unproblematischsten Methoden der Delegierung. Je nach den Erfordernissen Ihrer Organisation muss nur eine dieser Methoden verwendet werden:

  1. Erstellen Sie in Active Directory eine Domänensicherheitsgruppe (z. B. FSProxyTrustCreators). Fügen Sie diese Gruppe der lokalen Gruppe "Administratoren" auf jedem Verbundserver in der Farm hinzu. Fügen Sie dann nur die Benutzerkonten hinzu, an die Sie dieses Recht für die neue Gruppe delegieren möchten. Dies ist die bevorzugte Methode.

  2. Fügen Sie das Domänenkonto des Benutzers der Gruppe „Administratoren“ auf jedem Verbundserver in der Farm hinzu.

  3. Wenn Sie aus irgendeinem Grund beide Methoden nicht verwenden können, können Sie für diesen Zweck auch eine Autorisierungsregel erstellen. Dies wird aufgrund möglicher Komplikationen, die auftreten können, wenn diese Regel nicht richtig geschrieben wird, nicht empfohlen. Sie können jedoch eine benutzerdefinierte Autorisierungsregel zum Delegieren erstellen, welche Active Directory-Domänenbenutzerkonten die Vertrauensstellungen zwischen allen Verbundserverproxys erstellen oder sogar entfernen können, die einem bestimmten Verbunddienst zugeordnet sind.

    Wenn Sie Methode 3 wählen, können Sie die folgende Regelsyntax zum Ausstellen eines Autorisierungsanspruchs verwenden, der einem angegebenen Benutzer (in diesem Fall "contoso\frankm") das Erstellen von mindestens einem Verbundserverproxy für den Verbunddienst erlaubt. Sie müssen diese Regel mit dem Windows PowerShell-Befehl Set-ADFSProperties-AddProxyAuthorizationRules anwenden.

    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 );
    

    Wenn Sie später den Benutzer entfernen möchten, damit er keine weiteren Proxyvertrauensstellungen erstellen kann, können Sie die standardmäßige Autorisierungsregel für Proxyvertrauensstellungen umkehren, um das Recht des Benutzers zum Erstellen von Proxyvertrauensstellungen für den Verbunddienst aufzuheben. Sie müssen auch diese Regel mit dem Windows PowerShell-Befehl Set-ADFSProperties-AddProxyAuthorizationRules anwenden.

    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 );
    

Weitere Informationen zur Verwendung der Anspruchsregelsprache finden Sie unter Die Rolle der Anspruchsregelsprache.