Поделиться через


Утверждения и маркеры

В этом разделе описываются различные типы утверждений, создаваемые 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. Объект ClaimSet содержит утверждение с правом Identity типа 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, полученных из учетных данных клиента, не содержит утверждения, у которого свойство Right имеет значение Identity, свойство IsAnonymous возвращает значение true. При наличии одного или нескольких таких утверждений свойство IsAnonymous возвращает значение false.

См. также

Справочник

ClaimSet
Claim
Rights
ClaimTypes

Основные понятия

Управление утверждениями и авторизацией с помощью модели удостоверения