Ansprüche und Token

In diesem Thema werden die verschiedenen Anspruchstypen beschrieben, die Windows Communication Foundation (WCF) aus den Standardtoken erstellt, die es unterstützt.

Sie können die Ansprüche von Clientanmeldeinformationen prüfen, indem Sie die ClaimSet-Klasse und die Claim-Klasse verwenden. ClaimSet enthält eine Auflistung von Claim-Objekten. Jeder Claim verfügt über die folgenden wichtigen Member:

  • Die ClaimType-Eigenschaft gibt einen Uniform Resource Identifier (URI) zurück, der den Typ des erhobenen Anspruches angibt. Beispielsweise kann es sich bei einem Anspruchstypen um einen Fingerabdruck eines Zertifikats handeln. In diesem Fall ist der URI http:schemas.microsoft.com\/ws\/20005\/05\/identity\/claims\/thumprint.

  • Die Right-Eigenschaft gibt einen URI zurück, der das Recht des Anspruchs angibt. Vordefinierte Rechte befinden sich in der Rights-Klasse (Identity, PossessProperty).

  • Die Resource-Eigenschaft gibt die dem Anspruch zugeordnete Ressource zurück.

Jeder ClaimSet verfügt auch über eine Issuer-Eigenschaft, die den ClaimSet des Issuer darstellt.

Windows-Konten

Wo einem Windows-Benutzerkonto Clientanmeldeinformationen zugeordnet werden, weist der resultierende ClaimSet die folgenden Werte auf:

  • Der Issuer ist der von der statischen Windows-Eigenschaft der ClaimSet-Klasse zurückgegebene Wert.

  • In der Auflistung sind folgende Ansprüche enthalten:

    • Ein Claim mit einem ClaimType-Wert der Sicherheits-ID (SID), einem Right-Eigenschaftswert von Identity und einer Resource, die den tatsächlichen SID-Wert zurückgibt. Eine SID ist ein eindeutiger Wert, den der Domänencontroller jedem Benutzer angibt. Die SID wird verwendet, um den Benutzer in Interaktionen mit Windows-Sicherheit zu identifizieren.

    • Ein Claim mit einem ClaimType-Wert der SID, einem Right von PossessProperty und einer Resource des SID-Werts.

    • Ein Claim mit einem ClaimType von Name, einem Right von PossessProperty und einer Resource der den Benutzernamen enthaltenden Zeichenfolge (beispielsweise "MYMACHINE\Bob").

    • Zusätzliche SID-Ansprüche bei PossessProperty für die verschiedenen Gruppen, zu denen der Benutzer gehört.

Zertifikate

Wenn es sich bei den Clientanmeldeinformationen um ein Zertifikat handelt, verfügt der resultierende ClaimSet über die folgenden Werte:

  • Bei selbst herausgegebenen Zertifikaten ist Issuer der ClaimSet selbst. ClaimSet gibt einen ClaimType von Thumbprint, ein Right von Identity und einen Resource-Wert zurück, bei dem es sich um einen Byte-Array handelt, der den Fingerabdruck des Zertifikats beinhaltet.

  • Für ein von einer Zertifizierungsstelle ausgestelltes Zertifikat ist der Aussteller der ClaimSet, der das Zertifikat der Zertifizierungsstelle darstellt.

  • Die Claims in der Auflistung beinhalten folgende Elemente:

    • Ein Claim mit dem ClaimType Fingerabdruck, einem Right von PossessProperty und einer Resource, bei der es sich um ein Bytearray handelt, das den Fingerabdruck des Zertifikats beinhaltet.

    • Zusätzliche PossessProperty-Ansprüche verschiedener Typen, einschließlich X500DistinguishedName, DNS, Name, UPN und RSA sind verschiedene Eigenschaften des Zertifikats. Die Ressource für den RSA-Anspruch ist der dem Zertifikat zugewiesene öffentliche Schlüssel.Hinweis: Wenn der Clientanmeldeinformationstyp ein Zertifikat ist, das der Dienst einem Windows-Konto zuordnet, werden zwei ClaimSet-Objekte generiert. Die erste Ressource beinhaltet alle Ansprüche in Zusammenhang mit dem Windows-Konto, und die zweite Ressource beinhaltet alle Ansprüche, die mit dem Zertifikat in Zusammenhang stehen.

Benutzername\/Kennwort

Handelt es sich bei den Clientanmeldeinformationen um einen Benutzernamen bzw. ein Kennwort (oder Äquivalent), der bzw. das keinem Windows-Konto zugeordnet ist, wird der daraus resultierende ClaimSet von der statischen System-Eigenschaft der ClaimSet-Klasse ausgestellt. ClaimSet beinhaltet einen Identity-Anspruch vom Typ ` <xref:System.IdentityModel.Claims.ClaimTypes.Name%2A>, dessen Ressource der vom Client angegebene Benutzername ist. Ein entsprechender Anspruch besitzt einRightvonPossessProperty`.

RSA-Schlüssel

Wird ein RSA-Schlüssel verwendet, der keinem Zertifikat zugewiesen ist, ist der resultierende ClaimSet selbst ausgestellt und beinhaltet einen Identity-Anspruch vom Typ Rsa, dessen Ressource der RSA-Schlüssel ist. Ein entsprechender Anspruch besitzt ein Right von PossessProperty.

SAML

Wird der Client mit einem Security Assertions Markup Language (SAML)-Token authentifiziert, wird der resultierende ClaimSet von der Entität ausgestellt, von der das SAML-Token signiert wurde. Oftmals handelt es sich dabei um das Zertifikat des Sicherheitstokendiensts (STS), von dem das SAML-Token ausgestellt wurde. ClaimSet enthält verschiedene Ansprüche, die sich im SAML-Token befinden. Beinhaltet das SAML-Token einen SamlSubject mit einem Nicht-null-Namen, werden ein Identity-Anspruch mit dem Typ NameIdentifier und ein Ressourcentyp von SamlNameIdentifierClaimResource erstellt.

Identitätsansprüche und ServiceSecurityContext.IsAnonymous

Beinhaltet keines der ClaimSet-Objekte, die aus den Clientanmeldeinformationen resultieren, einen Anspruch mit einem Right von Identity,, gibt die IsAnonymous-Eigenschaft true zurück. Ist mindestens ein derartiger Anspruch vorhanden, gibt die IsAnonymous-Eigenschaft false zurück.

Siehe auch

ClaimSet
Claim
Rights
ClaimTypes
Verwalten von Ansprüchen und Autorisierung mit dem Identitätsmodell