Rolle der Anspruchs-Engine
Auf der höchsten Ebene ist die Anspruchs-Engine in Active Directory-Verbunddiensten (AD FS) eine regelbasierte Engine, die für die Bereitstellung und Verarbeitung von Anforderungen für den Verbunddienst zuständig ist. Die Anspruchs-Engine ist die einzige Komponente im Verbunddienst, die für die Ausführung der einzelnen Regelsätze für alle verbundenen Vertrauensstellungen, die Sie konfiguriert haben, und die Weitergabe des Ausgabeergebnisses an die Anspruchspipeline verantwortlich ist.
Während es sich bei der Anspruchspipeline um ein eher logisches Konzept des End-to-End-Prozesses für den Anspruchsverlauf handelt, sind Anspruchsregeln ein tatsächliches administratives Element, mit dem Sie den Anspruchsverlauf während der Ausführung von Anspruchsregeln anpassen können. Weitere Informationen zu den Pipelineprozessen finden Sie unter The Role of the Claims Pipeline.
Wie in der folgenden Abbildung gezeigt, erfolgen die Annahme von eingehenden Ansprüchen (Akzeptanzregeln), das Autorisieren von Anspruchsanforderern (Autorisierungsregeln) und das Ausgeben von ausgehenden Ansprüchen (Ausstellungsregeln) für alle Anspruchsregeln bei sämtlichen verbundenen Vertrauensstellungen in Ihrer Organisation durch die Anspruchs-Engine.
Ausführung von Anspruchsregeln
Wenn Sie eine Anspruchsanbieter-Vertrauensstellung oder eine Vertrauensstellung einer vertrauenden Seite in Ihrer Organisation mit Anspruchsregeln konfigurieren, fungieren die Anspruchsregelsätze für diese Vertrauensstellung als Gatekeeper für eingehende Ansprüche. Dazu wird die Anspruchs-Engine aufgerufen, die die erforderliche Logik in den Anspruchsregeln anwendet, um zu ermitteln, ob bzw. welche Ansprüche auszugeben sind.
Im folgenden Abschnitt werden die Schritte beschrieben, die die Engine während des Ausführungsflusses für Anspruchsregeln ausführt. Alle unten aufgeführten Schritte treten in sämtlichen Phasen auf, die im Ablauf der Anspruchspipeline beschrieben sind. Diese Schritte umfassen:
Schritt 1: Initialisierung
Schritt 2: Ausführung
Schritt 3: Ausführungsergebnis
Weitere Informationen zu den Pipelineprozessen finden Sie unter The Role of the Claims Pipeline.
Schritt 1: Initialisierung
Im ersten Schritt des Ausführungsprozesses für Anspruchsregeln akzeptiert die Anspruchs-Engine eingehende Ansprüche, indem es diese zunächst dem Eingangsanspruchssatz hinzufügt. Ein Eingangsanspruchssatz entspricht dem Cache im Arbeitsspeicher, in dem Daten nur so lange temporär gespeichert werden, bis der entsprechende Prozess die erforderlichen Daten abruft. Der Eingangsanspruchssatz wird nach Abschluss der Regelausführung verworfen.
Hinzufügen von Ansprüchen zum Eingangsanspruchssatz für einen Regelsatz
Der Eingangsanspruchssatz wird von der Anspruchs-Engine erstellt, wenn dieses Anspruchsdaten temporär im Arbeitsspeicher speichern muss, während es die Logik eines Anspruchsregelsatzes verarbeitet. Die Anspruchs-Engine kopiert alle eingehenden Ansprüche in den Eingangsanspruchssatz, aus dem sie durch die erste Regel im Regelsatz abgerufen werden können.
Die Anspruchs-Engine in der Abbildung unten liest z.B. die Ansprüche A und B aus den eingehenden Ansprüchen und kopiert sie in den Eingangsanspruchssatz. Wenn sie im Eingangsanspruchssatz sind, ruft die Anspruchs-Engine die Ansprüche A und B als Eingabe als Eingabe für die Logik in der ersten Regel des Anspruchsregelsatzes ab und verarbeitet sie.
Alle Regeln im Anspruchsregelsatz nutzen denselben Eingangsanspruchssatz. Jede Regel in diesem Satz kann dem freigegebenen Eingangsanspruchssatz etwas hinzufügen und damit alle nachfolgenden Regeln im Satz beeinflussen.
Schritt 2: Ausführung
In diesem Schritt des Anspruchsregelprozesses werden die Anspruchsregeln verarbeitet, indem die Anspruchs-Engine nacheinander alle Regeln in einem bestimmten Regelsatz durchläuft. Jede Regel innerhalb eines Regelsatzes wird nur einmal ausgeführt – und zwar in der im Dialogfeld „Anspruchsregeln bearbeiten“ des AD FS-Verwaltungs-Snap-Ins angezeigten Reihenfolge von oben nach unten. Die Anspruchsregel ganz oben im Regelsatz wird zuerst verarbeitet, und danach werden die nachfolgenden Regeln verarbeitet, bis alle Regeln ausgeführt wurden.
Gemäß der Definition der Anspruchsregelsprache besteht eine Anspruchsregel aus zwei Teilen: Bedingung und Ausstellungsanweisung. Die Anspruchs-Engine verarbeitet zuerst den Bedingungsteil anhand der Daten im Eingangsanspruchssatz, um festzustellen, ob die in der Regel angegebene Bedingung für die Ansprüche im Eingangsanspruchssatz gilt (Ansprüche, die der Regelbedingung entsprechen, werden als übereinstimmende Ansprüche bezeichnet). Wenn übereinstimmende Ansprüche gefunden werden, führt die Anspruchs-Engine die Ausstellungsanweisung der Regel für jeden Satz übereinstimmender Ansprüche aus. Die Ausstellungsanweisung der Regel kann eine der folgenden Aufgaben mit den übereinstimmenden Ansprüchen durchführen:
Kopieren eines übereinstimmenden Anspruchs in den Ausgangsanspruchssatz
Umwandeln der Anspruchsfelder und Erstellen eines neuen Anspruchs – entweder nur im Eingangsanspruchssatz oder sowohl im Evaluierungssatz als auch im Ausgangsanspruchssatz
Verwenden der übereinstimmenden Ansprüche als Schlüssel zum Suchen weiterer Informationen in einem Attributspeicher, um neue Ansprüche entweder nur im Eingangsanspruchssatz oder sowohl im Eingangsanspruchssatz als auch im Ausgangsanspruchssatz zu erstellen.
Hinzufügen von Ansprüchen zum Ausgangsanspruchssatz für einen Regelsatz
Der Ausgangsanspruchssatz ist ein Speicherort, der anfänglich leer ist. Er ist wichtig, da die Anspruchs-Engine nach Abschluss der Ausführung ausschließlich Ansprüche zurückgibt, die sich im Ausgangsanspruchssatz befinden. Dies bedeutet, dass Ansprüche, die sich lediglich im Eingangsanspruchssatz befinden, aber nicht im Ausgangsanspruchssatz, bei der Berechnung des finalen Satzes von Ausgangsansprüchen ignoriert werden.
Hinzufügen von Ansprüchen zu beiden Anspruchssätzen für einen Regelsatz
Während der Verarbeitung einer Regel werden die Ansprüche je nach Anweisung in der Ausstellungsanweisung der Regel entweder dem Eingangsanspruchssatz oder beiden Anspruchssätzen hinzugefügt. Die Anspruchsregelsprache bezeichnet diese Anweisungen als Hinzufügen oder Ausstellen.
Bei Verwendung der Hinzufügen-Anweisung werden die Ansprüche nur dem Eingangsanspruchssatz hinzugefügt. Die Ansprüche werden ausschließlich für die Ausführung verwendet und danach verworfen. Bei Verwendung der Ausstellen-Anweisung werden die Ansprüche dem Eingangs- und dem Ausgangsanspruchssatz hinzugefügt. Nach Abschluss der Ausführung werden die Ansprüche im Ausgangsanspruchssatz zurückgegeben. Weitere Informationen zu diesen Anweisungen finden Sie unter The Role of the Claim Rule Language.
Entspricht der Bedingungsteil einer Regel in einem Regelsatz keinen Ansprüchen im Eingangsanspruchssatz, wird der Ausstellungsanweisungsteil der Regel ignoriert. Es werden daher dann keine Ansprüche dem Eingangs- oder Ausgangsanspruchssatz hinzugefügt. Die folgende Abbildung und die zugehörigen Schritte zeigen, was passiert, wenn die Anspruchs-Engine eine Transformationsregel ausführt:
Eingehende Ansprüche werden dem von der Anspruchs-Engine festgelegten Eingangsanspruchssatz hinzugefügt.
Bei Ausführung der ersten Regel erkennt das Modul die Ansprüche A und B, die zu diesem Zeitpunkt die einzigen Ansprüche im Eingangsanspruchssatz sind, und verarbeitet den Bedingungsteil der Logik von Regel 1.
Da sich Anspruch A im Eingangsanspruchssatz befindet, gilt die Bedingung der Regel als erfüllt (Übereinstimmung mit Anspruch A = „true“), und der neue Anspruch C wird sowohl dem Eingangs- als auch dem Ausgangsanspruchssatz hinzugefügt.
Regel 2 kann nun die Ansprüche A, B und C (alle Ansprüche im Eingangsanspruchssatz) als Eingabe für die Verarbeitung der Logik verwenden.
Weitere Informationen zur Transformation von Ansprüchen finden Sie unter When to Use a Transform Claim Rule.
Schritt 3: Ausführungsergebnis
Die letzte Phase der Ausführung von Anspruchsregelsätzen beginnt, sobald alle Regeln in einem bestimmten Regelsatz ausgeführt wurden und der abschließende Satz von Ansprüchen im Ausgangsanspruchssatz enthalten ist. An diesem Punkt gibt die Anspruchs-Engine den Kontext des Ausgabeanspruchs als Ausgabe der Regelsatzausführung zurück. Ab diesem Punkt übernimmt die Anspruchspipeline und überträgt diese abschließende Ausgabe an die nächste Stufe im Prozess.
Übertragen der Ausgabe der Ausführung an die Anspruchspipeline
Wenn die Anspruchs-Engine einen Regelsatz verarbeitet, besitzt dieser Regelsatz eigene dedizierte Speicherbereiche für den Eingangs- und Ausgangsanspruchssatz. Dies bedeutet, dass sich Eingangs- und Ausgangsanspruchssatz der einzelnen Regelsätze unterscheiden.
Nachdem der gesamte Prozess für einen bestimmten Regelsatz (Schritte 1, 2 und 3) abgeschlossen wurde, werden die neu ausgestellten Ausgabeansprüche (Inhalt des Ausgangsanspruchssatzes) als Eingabe für den nächsten Regelsatz in der Anspruchspipeline verwendet. Dadurch können Ansprüche von der Ausgabe des einen Regelsatzes an die Eingabe für einen anderen Regelsatz übertragen werden, wie in der folgenden Abbildung dargestellt.
Hinweis
Obwohl der Ausstellungsregelsatz ebenfalls eine wichtige Phase der Pipeline darstellt, wird er in der obigen Abbildung nicht dargestellt, um die Abbildung zu vereinfachen. Eine Darstellung des Ausstellungsregelsatzes und seiner Rolle in der Anspruchspipeline finden Sie unter The Role of the Claims Pipeline.
In diesem Fall wird die Ausgabe der Akzeptanzregeln von der Pipeline verwendet, um den von den Akzeptanzregeln erstellten abschließenden Satz von Ansprüchen an die zweite Phase der Pipeline zu übertragen, in der die Autorisierungsregeln verarbeitet werden. An diesem Punkt würde der gesamte Ausführungsprozess der Anspruchsregeln (Schritte 1, 2 und 3 oben) für den Autorisierungsregelsatz erneut ausgeführt werden. Dieser Zyklus wird fortgesetzt, bis der Ausstellungsregelsatz (der letzte Schritt in der Pipeline) abgeschlossen wurde.
Sobald die abschließenden ausgehenden Ansprüche für den Ausstellungsregelsatz von der Engine zurückgegeben wurden, werden sie in ein SAML-Token verpackt. Der Verbunddienst sendet das Token dann zurück an den Client.
Verarbeiten von Autorisierungsregeln
Wenn der in Schritt 2 der Anspruchsregelausführung ausgeführte Anspruchsregelsatz Autorisierungsregeln (mit anderen Eingangs- und Ausgangsanspruchssätzen als die Akzeptanz- und Ausstellungsregeln) enthält, werden diese Autorisierungsregeln ausgeführt. Dabei wird anhand der Ansprüche des Anforderers ermittelt, ob der Anforderer des Tokens autorisiert ist, ein Sicherheitstoken für eine bestimmte vertrauende Seite vom Verbunddienst zu erhalten.
Das Ziel von Autorisierungsregeln ist die Ausstellung eines Zulassungs- oder Verweigerungsanspruchs basierend darauf, ob der Benutzer berechtigt ist, ein Token für die angegebene vertrauende Seite abzurufen. Wie in der folgenden Abbildung gezeigt verwendet die Pipeline die Ausgabe der Autorisierung, um zu bestimmen, ob der Ausstellungsregelsatz ausgeführt wird oder nicht – basierend auf dem Vorhandensein oder Fehlen des Zulassungs- oder Verweigerungsanspruchs. Die Ausgabe der Autorisierung selbst wird dabei jedoch nicht als Eingabe für den Anspruchsregelsatz verwendet.
Weitere Informationen zur Autorisierung von Ansprüchen finden Sie unter When to Use an Authorization Claim Rule.