Megosztás a következőn keresztül:


SAML-jogkivonatok és jogcímek

A Security Assertions Markup Language (SAML) jogkivonatok a jogcímek XML-reprezentációi. Alapértelmezés szerint a Windows Communication Foundation (WCF) által az összevont biztonsági forgatókönyvekben használt SAML-jogkivonatok jogkivonatokat adnak ki.

Az SAML-jogkivonatok olyan utasításokat hordoznak, amelyek az egyik entitás által egy másik entitásra vonatkozó jogcímkészletek. Összevont biztonsági forgatókönyvekben például a rendszer egy felhasználójának biztonsági jogkivonat-szolgáltatása teszi meg az utasításokat. A biztonsági jogkivonat-szolgáltatás aláírja az SAML-jogkivonatot, hogy jelezze a jogkivonatban található utasítások valódiságát. Emellett az SAML-jogkivonat olyan titkosítási kulcsanyaghoz van társítva, amelyről az SAML-jogkivonat felhasználója bizonyítja a tudást. Ez a bizonyíték megfelel annak a függő entitásnak, hogy az SAML-jogkivonatot valójában az adott felhasználónak állították ki. Például egy tipikus forgatókönyvben:

  1. Az ügyfél SAML-jogkivonatot kér egy biztonsági jogkivonat-szolgáltatástól, amely windowsos hitelesítő adatokkal hitelesíti az adott biztonsági jogkivonat-szolgáltatást.

  2. A biztonsági jogkivonat-szolgáltatás SAML-jogkivonatot ad ki az ügyfélnek. Az SAML-jogkivonat a biztonsági jogkivonat szolgáltatáshoz társított tanúsítvánnyal van aláírva, és a célszolgáltatáshoz titkosított ellenőrzőkulcsot tartalmaz.

  3. Az ügyfél megkapja az ellenőrzőkulcs másolatát is. Az ügyfél ezután bemutatja az SAML-jogkivonatot az alkalmazásszolgáltatásnak (a függő entitásnak), és aláírja az üzenetet ezzel a ellenőrző kulccsal.

  4. Az SAML-jogkivonaton keresztüli aláírás tájékoztatja a függő entitást, hogy a biztonsági jogkivonat-szolgáltatás kiadta a jogkivonatot. Az ellenőrző kulccsal létrehozott üzenetadék jelzi a függő entitásnak, hogy a jogkivonatot kiadták az ügyfélnek.

Jogcímektől a SamlAttributesig

A WCF-ben az SAML-jogkivonatokban lévő utasítások objektumként SamlAttribute vannak modellezve, amelyek közvetlenül az objektumokból Claim tölthetők fel, feltéve, hogy az Claim objektumnak van tulajdonsága RightPossessProperty , és a Resource tulajdonság típusa String. Például:

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)

Feljegyzés

Ha az SAML-jogkivonatok szerializálva vannak az üzenetekben, vagy amikor egy biztonsági jogkivonat-szolgáltatás bocsátja ki őket, vagy amikor az ügyfelek a hitelesítés részeként jelenítik meg őket a szolgáltatásoknak, a maximális üzenetméret-kvótának elég nagynak kell lennie az SAML-jogkivonat és a többi üzenetrész elhelyezéséhez. Normál esetben az alapértelmezett üzenetméretkvóták elegendőek. Ha azonban egy SAML-jogkivonat nagy, mert több száz jogcímet tartalmaz, előfordulhat, hogy növelnie kell a kvótákat a szerializált jogkivonat elhelyezéséhez. További információkért tekintse meg az adatok biztonsági szempontjait.

SamlAttributes-tól jogcímekig

Amikor az SAML-jogkivonatok üzenetekben érkeznek, az SAML-jogkivonatban lévő különböző utasítások a rendszerbe helyezett AuthorizationContextobjektumokká IAuthorizationPolicy alakulnak. Az egyes SAML-utasítások jogcímeit a rendszer az ClaimSets adott utasítás tulajdonsága AuthorizationContext adja vissza, és megvizsgálható annak megállapításához, hogy hitelesíteni és engedélyezni kell-e a felhasználót.

Lásd még