Tokeny a deklarace SAML

Tokeny SAML (Security Assertions Markup Language) jsou reprezentace deklarací identity ve formátu XML. Ve výchozím nastavení se tokeny SAML používají ve scénářích federovaného zabezpečení ve Windows Communication Foundation (WCF).

Tokeny SAML obsahují příkazy, které jsou sady deklarací identity provedené jednou entitou o jiné entitě. Například ve scénářích federovaného zabezpečení jsou příkazy provedeny službou tokenů zabezpečení o uživateli v systému. Služba tokenů zabezpečení podepíše token SAML, aby označila správnost příkazů obsažených v tokenu. Kromě toho je token SAML přidružený k kryptografickému klíči materiálu, o který uživatel tokenu SAML prokáže znalosti. Tento důkaz splňuje předávající stranu, že token SAML byl ve skutečnosti vydán tomuto uživateli. Například v typickém scénáři:

  1. Klient si vyžádá token SAML ze služby tokenů zabezpečení, která se ověřuje ve službě tokenů zabezpečení pomocí přihlašovacích údajů systému Windows.

  2. Služba tokenů zabezpečení vydává klientovi token SAML. Token SAML je podepsaný certifikátem přidruženým ke službě tokenů zabezpečení a obsahuje ověřovací klíč zašifrovaný pro cílovou službu.

  3. Klient obdrží také kopii ověřovacího klíče. Klient pak předá token SAML aplikační službě ( předávající straně) a podepíše zprávu s tímto ověřovacím klíčem.

  4. Podpis nad tokenem SAML říká předávající straně, že služba tokenu zabezpečení vydala token. Podpis zprávy vytvořený pomocí ověřovacího klíče informuje předávající stranu, že token byl vydán klientovi.

Z deklarací identity do SamlAttributes

Ve WCF jsou příkazy v tokenech SAML modelovány jako SamlAttribute objekty, které lze vyplňovat přímo z Claim objektů, za předpokladu, že Claim objekt má Right vlastnost PossessProperty a Resource vlastnost je typu String. Příklad:

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)

Poznámka:

Pokud jsou tokeny SAML serializovány ve zprávách, a to buď při jejich vydání službou tokenů zabezpečení, nebo při jejich prezentování klienty ve službách jako součást ověřování, musí být maximální kvóta velikosti zpráv dostatečně velká, aby vyhovovala tokenu SAML a dalším částem zprávy. V normálních případech jsou výchozí kvóty velikosti zpráv dostatečné. V případech, kdy je token SAML velký, protože obsahuje stovky deklarací identity, možná budete muset zvýšit kvóty pro přizpůsobení serializovaného tokenu. Další informace najdete v tématu Důležité informace o zabezpečení dat.

Od SamlAttributes k deklaracím

Při přijetí tokenů SAML ve zprávách jsou různé příkazy v tokenu SAML převedeny na IAuthorizationPolicy objekty, které jsou umístěny do AuthorizationContext. Deklarace identity z každého příkazu SAML jsou vráceny ClaimSets vlastností objektu AuthorizationContext a je možné je prozkoumat, abyste zjistili, jestli se má uživatel ověřit a autorizovat.

Viz také