声明和令牌
本主题描述 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
是 ClaimSet 类的静态 Windows 属性返回的值。集合中的声明包括:
Claim 值为安全标识符 (SID)、ClaimType 属性值为 Right 以及返回实际 SID 值的
Identity
的 Resource。 SID 是域控制器颁发给每个用户的一个唯一值。 SID 用于在与 Windows 安全交互时标识用户。Claim 值为 SID、ClaimType 为 Right 以及
PossessProperty
为 SID 值的 Resource。Claim 为 ClaimType、Name 为 Right 以及
PossessProperty
为包含用户名的字符串(如“MYMACHINE\Bob”)的 Resource。用户所属的各个组的 PossessProperty 的附加 SID 声明。
证书
在客户端凭据为证书的情况下,生成的 ClaimSet 具有以下各值:
对于自行颁发的证书,
Issuer
为 ClaimSet 本身。 ClaimSet 返回 ClaimType 的 Thumbprint、Right 的Identity
以及 Resource 值,该值是一个包含证书指纹的 Byte 数组。对于证书颁发机构颁发的证书,颁发者为表示证书颁发机构的证书的
ClaimSet
。集合中的
Claims
包括:Claim
为 Thumbprint、ClaimType
为 PossessProperty 以及Right
为包含证书指纹的字节数组的Resource
各种类型的其他 PossessProperty 声明,包括表示各种证书属性的 X500DistinguishedName、Dns、Name、Upn 和 Rsa。 Rsa 声明的资源是与证书关联的公钥。注意,如果客户端凭据类型是服务映射到 Windows 帐户的证书,则会生成两个
ClaimSet
对象。 第一个对象包含与 Windows 帐户相关的所有声明,第二个对象包含与证书相关的所有声明。
用户名/密码
在客户端凭据是未映射到 Windows 帐户的用户名/密码(或等效项)的情况下,生成的 ClaimSet
由 System 类的静态 ClaimSet
属性颁发。 ClaimSet
包含类型为 Name、资源为客户端提供的用户名的 Identity
声明。 对应声明的 Right
为 PossessProperty
。
RSA 密钥
在使用与证书无关联的 RSA 密钥的情况下,生成的 ClaimSet
是自行颁发的,并且包含类型为 Rsa、资源为 RSA 密钥的 Identity
声明。 对应声明的 Right
为 PossessProperty
。
SAML
在客户端使用安全断言标记语言 (SAML) 令牌进行身份验证的情况下,生成的 ClaimSet
由已对 SAML 令牌进行签名的实体来颁发,通常为颁发了 SAML 令牌的安全令牌服务 (STS) 的证书。 ClaimSet
中包含 SAML 令牌中的各种声明。 如果 SAML 令牌包含非 SamlSubject
名称的 null
,则会创建一个类型为 Identity
、资源类型为 NameIdentifier 的 SamlNameIdentifierClaimResource 声明。
标识声明和 ServiceSecurityContext.IsAnonymous
如果客户端凭据生成的对象中没有任何ClaimSet
对象包含一个声明,Right
Identity
则该IsAnonymous属性将true
返回。 如果存在一个或多个此类声明,则 IsAnonymous
属性将返回 false
。