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


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

В этом разделе описываются различные типы утверждений, создаваемые 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.

См. также