Oświadczenia i tokeny
W tym temacie opisano różne typy oświadczeń tworzone przez program Windows Communication Foundation (WCF) na podstawie domyślnych tokenów, które obsługuje.
Oświadczenia poświadczeń klienta można sprawdzić przy użyciu ClaimSet klas i Claim . Obiekt ClaimSet
zawiera kolekcję Claim
obiektów. Każdy z nich Claim
ma następujących ważnych członków:
Właściwość ClaimType zwraca identyfikator URI (Uniform Resource Identifier), który określa typ tworzonego oświadczenia. Na przykład typ oświadczenia może być odciskiem palca certyfikatu, w tym przypadku identyfikator URI to
http://schemas.microsoft.com/ws/20005/05/identity/claims/thumprint
.Właściwość Right zwraca identyfikator URI, który określa prawo od oświadczenia. Wstępnie zdefiniowane prawa znajdują się w Rights klasie (Identity, PossessProperty).
Właściwość Resource zwraca zasób skojarzony z oświadczeniem.
Każda z nich ClaimSet ma Issuer również właściwość , która reprezentuje ClaimSet Issuer
właściwość .
Konta systemu Windows
W przypadku mapowania poświadczeń klienta na konto użytkownika systemu Windows wynikowe ClaimSet mają następujące wartości:
Jest
Issuer
to wartość zwracana przez statyczną właściwość ClaimSet systemu Windows klasy.Oświadczenia w kolekcji to:
A Claim z wartością ClaimType identyfikatora zabezpieczeń (SID), Right wartości
Identity
właściwości i , Resource która zwraca rzeczywistą wartość identyfikatora SID. Identyfikator SID jest unikatową wartością, która kontroler domeny wystawia każdemu użytkownikowi. Identyfikator SID służy do identyfikowania użytkownika w interakcjach z zabezpieczeniami systemu Windows.Wartość Claim z ClaimType identyfikatorem SID, wartością Right
PossessProperty
i wartością Resource identyfikatora SID.A Claim z NameClaimType wartością z wartością i Right
PossessProperty
Resource ciągiem zawierającym nazwę użytkownika (na przykład "MYMACHINE\Bob").Dodatkowe oświadczenia sid dla PossessProperty różnych grup, do których należy użytkownik.
Certyfikaty
Jeśli poświadczenie klienta jest certyfikatem, wynikowe ClaimSet ma następujące wartości:
W przypadku certyfikatów
Issuer
wystawionych samodzielnie sam element jest ClaimSet sam. Funkcja ClaimSet zwraca ThumbprintClaimType wartość typu , z wartościąIdentity
Right i jest tablicą Resource Byte zawierającą odcisk palca certyfikatu.W przypadku certyfikatu wystawionego przez urząd certyfikacji wystawca reprezentuje
ClaimSet
certyfikat urzędu certyfikacji.Element
Claims
w kolekcji obejmuje:Element
Claim
z odciskiemClaimType
palca,Right
elementem PossessProperty i tablicąResource
bajtów zawierającą odcisk palca certyfikatuDodatkowe oświadczenia PossessProperty różnych typów, w tym X500DistinguishedName, Dns, Name, Upn i Rsa, reprezentują różne właściwości certyfikatu. Zasób oświadczenia Rsa jest kluczem publicznym skojarzonym z certyfikatem.Uwaga Gdzie typ poświadczeń klienta jest certyfikatem mapowanym przez usługę na konto systemu Windows, generowane są dwa
ClaimSet
obiekty. Pierwszy zawiera wszystkie oświadczenia związane z kontem systemu Windows, a drugi zawiera wszystkie oświadczenia związane z certyfikatem.
Nazwa użytkownika/hasło
Jeśli poświadczenie klienta jest nazwą użytkownika/hasłem (lub równoważne), które nie jest mapowane na konto systemu Windows, wynik ClaimSet
jest wystawiany przez właściwość ClaimSet
statyczną System klasy. Identity
Zawiera ClaimSet
oświadczenie typuName, którego zasób jest nazwą użytkownika podaną przez klienta. Odpowiednie oświadczenie ma wartość Right
PossessProperty
.
Klucze RSA
Jeśli używany jest klucz RSA, który nie jest skojarzony z certyfikatem, wynikowy ClaimSet
jest wystawiony samodzielnie i zawiera Identity
oświadczenie typu Rsa , którego zasób jest kluczem RSA. Odpowiednie oświadczenie ma wartość Right
PossessProperty
.
SAML
Gdy klient uwierzytelnia się przy użyciu tokenu SAML (Security Assertions Markup Language), wynik ClaimSet
jest wystawiany przez jednostkę, która podpisała token SAML, często certyfikat usługi tokenu zabezpieczającego (STS), który wystawił token SAML. Zawiera ClaimSet
różne oświadczenia, jak znaleziono w tokenie SAML. Jeśli token SAML zawiera SamlSubject
element o innejnull
nazwie, Identity
tworzone jest oświadczenie o typie NameIdentifier i typie SamlNameIdentifierClaimResource zasobu.
Oświadczenia tożsamości i serviceSecurityContext.IsAnonymous
Jeśli żaden z ClaimSet
obiektów wynikających z poświadczeń klienta nie zawiera oświadczenia z wartością Right
Identity
, IsAnonymous właściwość zwraca wartość true
. Jeśli istnieją co najmniej jedno takie oświadczenia, IsAnonymous
właściwość zwraca wartość false
.