共用方式為


宣告與權杖

本主題描述 Windows Communication Foundation (WCF) 從支援的預設權杖中建立的各種宣告類型。

您可以使用 ClaimSetClaim 類別來檢查用戶端認證的宣告。ClaimSet 包含 Claim 物件的集合。每個 Claim 都具有下列重要的成員:

  • ClaimType 屬性會傳回指定所要建立之宣告類型的統一資源識別元 (URI)。例如,宣告類型可以是憑證的指紋,在此情況下,URI 是 http:schemas.microsoft.com/ws/20005/05/identity/claims/thumprint。

  • Right 屬性會傳回指定宣告權限的 URI。預先定義的權限可以在 Rights 類別中找到 (IdentityPossessProperty)。

  • Resource 屬性會傳回與宣告相關聯的資源。

每個 ClaimSet 也都有 Issuer 屬性,此屬性表示 IssuerClaimSet

Windows 帳戶

當用戶端認證對應至 Windows 使用者帳戶時,產生的 ClaimSet 具有下列值:

  • IssuerClaimSet 類別的靜態 Windows 屬性所傳回的值。

  • 此集合中的宣告為:

    • 具有安全識別項 (SID) 之 ClaimType 值的 ClaimIdentityRight 屬性值,以及傳回實際 SID 值的 Resource。SID 是網域控制站發出至每個使用者的唯一值。SID 可用來識別與 Windows 安全性互動的使用者。

    • 具有 SID 之 ClaimType 值的 ClaimPossessPropertyRight,以及 SID 值的 Resource

    • 具有 NameClaimTypeClaimPossessPropertyRight,以及包含使用者名稱之字串 (例如,"MYMACHINE\Bob") 的 Resource

    • 其他 SID 宣告,這些宣告具有使用者所屬之各種群組的 PossessProperty

憑證

當用戶端認證是憑證時,產生的 ClaimSet 具有下列值:

  • 如果是自動發行的憑證,Issuer 就是 ClaimSet 本身。ClaimSet 會傳回 ThumbprintClaimTypeIdentityRight,以及 Resource 值,此值表示包含憑證指紋的 Byte 陣列。

  • 如果是由憑證授權單位發出的憑證,簽發者就是 ClaimSet,表示憑證授權單位的憑證。

  • 此集合中的 Claims 包括:

    • 具有 Thumbprint 之 ClaimTypeClaim、PossessProperty 的 Right,以及 Resource,表示包含憑證指紋的位元組陣列。

    • 各種類型的其他 PossessProperty 宣告,包括 X500DistinguishedName、Dns、Name、Upn 和 Rsa,表示憑證的各種屬性。Rsa 宣告的資源是與憑證相關聯的公開金鑰。注意:當用戶端認證類型是服務用來對應至 Windows 帳戶的憑證時,會產生兩個 ClaimSet 物件。第一個包含與 Windows 帳戶相關的所有宣告,第二個則包含與憑證相關的所有宣告。

使用者名稱/密碼

當用戶端認證是未對應至 Windows 帳戶的使用者名稱/密碼 (或對等用法) 時,產生的 ClaimSet 會由 ClaimSet 類別的靜態 System 屬性發出。ClaimSet 包含 Name 型別的 Identity 宣告,此宣告的資源是用戶端提供的使用者名稱。對應的宣告具有 PossessPropertyRight

RSA 金鑰

當使用未與憑證相關聯的 RSA 金鑰時,產生的 ClaimSet 會自動發行,並且包含 型別 RsaIdentity 宣告,此宣告的資源是 RSA 金鑰。對應的宣告具有 PossessPropertyRight

SAML

當用戶端使用安全性判斷提示標記語言 (SAML) 權杖進行驗證時,產生的 ClaimSet 會由簽署 SAML 權杖的實體發出,通常是所發出 SAML 權杖之安全性權杖服務 (STS) 的憑證。ClaimSet 包含 SAML 權杖中的各種宣告。如果 SAML 權杖包含具有非 null 名稱的 SamlSubject,則會建立具有 NameIdentifier 型別的 Identity 宣告和 SamlNameIdentifierClaimResource 的資源型別。

身分識別宣告和 ServiceSecurityContext.IsAnonymous

如果從用戶端認證產生的 ClaimSet 物件都不包含具有 Identity,Right 的宣告,則 IsAnonymous 屬性會傳回 true。如果出現一或多個這類的宣告,則 IsAnonymous 屬性會傳回 false

另請參閱

參考

ClaimSet
Claim
Rights
ClaimTypes

概念

使用身分識別模型來管理宣告與授權