AD FS-Problembehandlung: Syntax von Anspruchsregeln
Ein Anspruch ist eine Aussage, die eine Entität über sich selbst oder eine andere Entität trifft. Ansprüche werden von einer vertrauenden Seite ausgestellt. Sie erhalten mindestens einen Wert und werden dann in Sicherheitstoken gepackt, die vom AD FS-Server ausgestellt werden. In diesem Artikel werden die Syntax und die Erstellung von Ansprüchen behandelt. Informationen zur Ausstellung von Ansprüchen finden Sie unter AD FS-Problembehandlung: Anspruchsausstellung.
Hinweis
Für die Behandlung von Anspruchsproblemen können Sie ClaimsXRay auf der Website AD FS-Hilfe verwenden.
Verarbeiten von Anspruchsregeln
Anspruchsregeln werden mithilfe der Anspruchs-Engine über die Anspruchspipeline verarbeitet. Die Anspruchs-Engine ist eine logische Komponente des Verbunddiensts, die den Satz der von einem Benutzer gesendeten eingehenden Ansprüche untersucht und anschließend in Abhängigkeit von der Logik in jeder Regel einen Ausgabeanspruchssatz erzeugt.
Erstellen einer Anspruchsregel
Anspruchsregeln werden separat für jede Verbund-Vertrauensstellungsbeziehung innerhalb des Verbunddiensts erstellt und werden nicht von mehreren Vertrauensstellungen gemeinsam verwendet. Sie können entweder eine Regel auf Basis einer Anspruchsregelvorlage erstellen, eine Regel mithilfe der Anspruchsregelsprache von Grund auf neu erstellen oder eine Regel mithilfe von Windows PowerShell anpassen.
Grundlegendes zu den Komponenten der Anspruchsregelsprache
Die Anspruchsregelsprache besteht aus den folgenden, durch den Operator „=>“ getrennten Komponenten:
Eine Bedingung: Sie dient in einer Regel dazu, Eingabeansprüche zu überprüfen und zu bestimmen, ob die Ausstellungsanweisung der Regel ausgeführt werden soll. Die Bedingung stellt einen logischen Ausdruck dar, der nach TRUE ausgewertet werden muss, damit der Hauptteil der Regel ausgeführt wird.
Eine Ausstellungsanweisung
Beispiel:
c:[type == "Name", value == "domain user"] => issue(type = "Role", value = "employee");
Dieser Anspruch verfügt über Folgendes:
- Bedingung =
c:[type == "Name", value == "domain user"]
: Die Bedingung wertet den Eingabeanspruch darauf aus, ob der Name des Windows-Kontos ein*e Domänenbenutzer*in ist. - Ausstellung =
issue(type = "Role", value = "employee")
: Wenn die Bedingung wahr ist, fügt die Ausstellungsanweisung dem Eingabeanspruch mit der Mitarbeiterrolle einen neuen Anspruch hinzu.
Weitere Informationen zu Ansprüchen und ihrer Syntax finden Sie unter Die Rolle der Anspruchsregelsprache.
Anspruchsregel-Editor
Die Syntaxprüfung wird vom Anspruchsregel-Editor durchgeführt, sobald Sie den Anspruch abgeschlossen und OK ausgewählt haben. Wenn Ihre Syntax falsch ist, wird der Editor Sie darüber informieren.
Ereignisprotokolle
Wenn Sie versuchen, Probleme mit einem Anspruch mithilfe der Protokolle zu behandeln, ist der beste Ansatz, die Anspruchsausgabe zu suchen. Sie können im Ereignisprotokoll nach 1000- und 1001-Ereignissen suchen.
Erstellen einer Beispielanwendung
Sie können auch eine Beispielanwendung, die Ihre Ansprüche wiedergibt, sowie eine vertrauende Seite erstellen, die denselben Anspruch hat, für den Sie eine Problembehandlung durchführen möchten. Anschließend überprüfen Sie, ob die App Probleme mit diesem Anspruch hat.
Eine gute Beispiel-Web-App ist hier verfügbar. Diese App gibt die Ansprüche zurück, die sie von der vertrauenden Seite erhält. Um sie zu verwenden, müssen Sie die web.config-App wie folgt bearbeiten:
- Sie müssen die URL, unter der die Beispiel-App gehostet wird, in https://app1.contoso.com/sampapp ändern.
- Sie müssen alle Instanzen von sts.contoso.com so ändern, dass sie auf Ihren AD FS-Verbundserver verweisen.
- Sie müssen den Fingerabdruck durch Ihren Fingerabdruck ersetzen.
- Ersetzen Sie den
decryptionKey
und denvalidationKey
durch Werte, die für Ihr Szenario geeignet sind.
Der folgende Blogartikel enthält hervorragende, ausführliche Anleitungen zur Einrichtung.