Aracılığıyla paylaş


SAML Belirteçleri ve Talepleri

Güvenlik Onayları biçimlendirme dili (SAML) belirteçleri , taleplerin XML gösterimleridir. Varsayılan olarak, Windows Communication Foundation'ın (WCF) federasyon güvenlik senaryolarında kullandığı SAML belirteçleri belirteçleri verilir.

SAML belirteçleri, bir varlık tarafından başka bir varlık hakkında yapılan talep kümeleri olan deyimleri taşır. Örneğin, federasyon güvenlik senaryolarında deyimler sistemdeki bir kullanıcı hakkında bir güvenlik belirteci hizmeti tarafından yapılır. Güvenlik belirteci hizmeti, belirtecin içerdiği deyimlerin geçerliliğini belirtmek için SAML belirtecini imzalar. Buna ek olarak, SAML belirteci, SAML belirtecinin kullanıcısının bilgi sahibi olduğunu kanıtlayan şifreleme anahtarı malzemesiyle ilişkilendirilir. Bu kanıt, SAML belirtecinin aslında bu kullanıcıya verildiği bağlı olan tarafı karşılar. Örneğin, tipik bir senaryoda:

  1. İstemci bir güvenlik belirteci hizmetinden SAML belirteci isteğinde bulunur ve Windows kimlik bilgilerini kullanarak bu güvenlik belirteci hizmetinde kimlik doğrulaması yapılır.

  2. Güvenlik belirteci hizmeti istemciye bir SAML belirteci verir. SAML belirteci, güvenlik belirteci hizmetiyle ilişkilendirilmiş bir sertifikayla imzalanır ve hedef hizmet için şifrelenmiş bir kanıt anahtarı içerir.

  3. İstemci ayrıca yazım denetleme anahtarının bir kopyasını alır. İstemci daha sonra SAML belirtecini uygulama hizmetine ( bağlı olan taraf) sunar ve iletiyi bu yazım denetleme anahtarıyla imzalar.

  4. SAML belirtecinin üzerindeki imza, bağlı olan tarafa güvenlik belirteci hizmetinin belirteci yayımladığını bildirir. Kanıt anahtarıyla oluşturulan ileti imzası, bağlı olan tarafa belirtecin istemciye verildiğini bildirir.

Taleplerden SamlAttributes'e

WCF'de, SAML belirteçlerindeki deyimler nesnenin özelliğine RightPossessProperty sahip olması ve Resource özelliğinin türünde Stringolması koşuluyla Claim doğrudan nesnelerden Claim doldurulabilen nesneler olarak SamlAttribute modellenir. Örneğin:

Claim myClaim = new Claim(
    ClaimTypes.GivenName, "Martin", Rights.PossessProperty);
SamlAttribute sa = new SamlAttribute(myClaim);
Dim myClaim As New Claim(ClaimTypes.GivenName, "Martin", _
Rights.PossessProperty)
Dim sa As New SamlAttribute(myClaim)

Not

SAML belirteçleri, bir güvenlik belirteci hizmeti tarafından verildiğinde veya istemciler tarafından kimlik doğrulaması kapsamında hizmetlere sunulduğunda iletilerde seri hale getirildiğinde, en yüksek ileti boyutu kotası SAML belirtecini ve diğer ileti bölümlerini barındıracak kadar büyük olmalıdır. Normal durumlarda varsayılan ileti boyutu kotaları yeterlidir. Ancak, yüzlerce talep içerdiğinden SAML belirtecinin büyük olduğu durumlarda, serileştirilmiş belirteci barındırmak için kotaları artırmanız gerekebilir. Daha fazla bilgi için bkz . Veriler için GüvenlikLe İlgili Önemli Noktalar.

SamlAttributes'ten Taleplere

İletilerde SAML belirteçleri alındığında, SAML belirtecindeki çeşitli deyimler içine yerleştirilmiş nesnelere IAuthorizationPolicyAuthorizationContextdönüştürülür. Her SAML deyiminden gelen talepler özelliği AuthorizationContext tarafından ClaimSets döndürülür ve kullanıcının kimliğinin doğrulanıp yetkilendirilmeyeceğini belirlemek için incelenebilir.

Ayrıca bkz.