Утверждения и маркеры
В этом разделе описываются различные типы утверждений, создаваемые Windows Communication Foundation (WCF) из маркеров по умолчанию, поддерживаемых им.
Анализировать утверждения учетных данных клиента можно с помощью классов ClaimSet и Claim. Класс ClaimSet
содержит коллекцию объектов Claim
. Каждый объект Claim
имеет следующие важные члены.
Свойство ClaimType возвращает универсальный код ресурса (URI), который указывает тип делаемого утверждения. Например, тип утверждения может быть отпечатком сертификата, в этом случае универсальный код ресурса (URI) — это
http://schemas.microsoft.com/ws/20005/05/identity/claims/thumprint
отпечаток.Свойство Right возвращает универсальный код ресурса (URI), который указывает право утверждения. Предопределенные права находятся в классе Rights (Identity, PossessProperty).
Свойство Resource возвращает ресурс, связанный с утверждением.
Каждый объект ClaimSet также имеет свойство Issuer, которое представляет ClaimSet издателя (Issuer
).
Учетные записи Windows
Когда учетные данные клиента сопоставляются с учетной записью пользователя Windows, полученный в результате объект ClaimSet имеет следующие значения.
Issuer
- значение, возвращенное статическим свойством Windows класса ClaimSet.Коллекция содержит следующие утверждения.
Объект Claim, у которого свойство ClaimType указывает на идентификатор безопасности (SID), свойство Right имеет значение
Identity
, а свойство Resource возвращает фактическое значение идентификатора безопасности. Идентификатор безопасности (SID) - это уникальное значение, выдаваемое контроллером домена каждому пользователю. Идентификатор безопасности используется для идентификации пользователя при взаимодействии с системой безопасности Windows.Объект Claim, у которого свойство ClaimType указывает на идентификатор безопасности, свойство Right имеет значение
PossessProperty
, а свойство Resource представляет собой значение идентификатора безопасности.Объект Claim, у которого свойство ClaimType имеет значение Name, свойство Right имеет значение
PossessProperty
, а свойство Resource представляет собой строку, содержащую имя пользователя (например, "MYMACHINE\Bob").Дополнительные утверждения типа "идентификатор безопасности" со значением PossessProperty для различных групп, к которым принадлежит пользователь.
Сертификаты
Когда учетные данные клиента представляют собой сертификат, полученный в результате объект ClaimSet имеет следующие значения.
В случае самостоятельно выданного сертификата издателем (
Issuer
) является сам объект ClaimSet. Объект ClaimSet возвращает свойство ClaimType со значением Thumbprint, свойство Right со значениемIdentity
и свойство Resource со значением, представляющим собой массив типа Byte, который содержит отпечаток сертификата.В случае сертификата, выданного центром сертификации, издателем является
ClaimSet
, представляющий сертификат центра.В коллекцию входят следующие утверждения (
Claims
).Объект
Claim
, у которого свойствоClaimType
указывает на отпечаток, свойствоRight
имеет значение PossessProperty, а значение свойстваResource
представляет собой байтовый массив, содержащий отпечаток сертификата.Дополнительные утверждения с правом "PossessProperty" различных типов, включая "X500DistinguishedName","Dns", "Name", "Upn" и "Rsa", представляют различные свойства сертификата. Ресурс для утверждения Rsa — это открытый ключ, связанный с сертификатом.Обратите внимание , что тип учетных данных клиента — это сертификат, сопоставленный службой с учетной записью Windows, создаются два
ClaimSet
объекта. Первый объект содержит все утверждения, связанные с учетной записью Windows, а второй содержит все утверждения, связанные с сертификатом.
Имя пользователя/пароль
Когда учетные данные клиента представляют собой имя пользователя/пароль (или эквивалент), которые не сопоставляются с учетной записью Windows, полученный в результате объект ClaimSet
будет выдан статическим свойством System класса ClaimSet
. Identity
Содержит ClaimSet
утверждение типаName, ресурс которого является именем пользователя, который предоставляет клиент. У соответствующего утверждения свойствоRight
имеет значение PossessProperty
.
Ключи RSA
Если используется ключ RSA, не связанный с сертификатом, результирующий ClaimSet
результат самозадается и содержит Identity
утверждение типа Rsa , ресурс которого является ключом RSA. У соответствующего утверждения свойствоRight
имеет значение PossessProperty
.
SAML
Когда для проверки подлинности клиента используется маркер на языке SAML, полученный в результате объект ClaimSet
будет выдан сущностью, подписавшей маркер SAML; зачастую это сертификат службы маркеров безопасности, которая выдала маркер SAML. Объект ClaimSet
содержит различные утверждения, обнаруженные в маркере SAML. Если маркер SAML содержит свойство SamlSubject
с именем, отличным от null
, создается утверждение с правом Identity
, типом NameIdentifier и ресурсом типа SamlNameIdentifierClaimResource.
Идентификационные утверждения и ServiceSecurityContext.IsAnonymous
Если ни один из ClaimSet
объектов, полученных от учетных данных клиента, не содержит утверждения с a Right
Identity
, то IsAnonymous свойство возвращается true
. При наличии одного или нескольких таких утверждений свойство IsAnonymous
возвращает значение false
.