Ansprüche und Token
In diesem Thema werden die verschiedenen Anspruchstypen beschrieben, die Von Windows Communication Foundation (WCF) aus den unterstützten Standardtoken erstellt werden.
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. Ein Anspruchstyp kann z. B. ein Fingerabdruck eines Zertifikats sein, in diesem Fall ist
http://schemas.microsoft.com/ws/20005/05/identity/claims/thumprint
der URI.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 vonIdentity
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 demClaimType
Fingerabdruck, einemRight
von PossessProperty und einerResource
, 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 Name, dessen Ressource der vom Client angegebene Benutzername ist. Ein entsprechender Anspruch besitzt einRight
von PossessProperty
.
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 einRight
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
Wenn keines der Objekte, die ClaimSet
sich aus den Clientanmeldeinformationen ergeben, einen Anspruch mit einem Right
von Identity
enthalten, gibt die IsAnonymous Eigenschaft zurück true
. Ist mindestens ein derartiger Anspruch vorhanden, gibt die IsAnonymous
-Eigenschaft false
zurück.