Sdílet prostřednictvím


SecurityTokenService.GetOutputClaimsIdentity Metoda

Definice

Při přepsání v odvozené třídě tato metoda vrátí kolekci výstupních předmětů, které mají být zahrnuty do vydaného tokenu.

protected:
 abstract System::Security::Claims::ClaimsIdentity ^ GetOutputClaimsIdentity(System::Security::Claims::ClaimsPrincipal ^ principal, System::IdentityModel::Protocols::WSTrust::RequestSecurityToken ^ request, System::IdentityModel::Scope ^ scope);
protected abstract System.Security.Claims.ClaimsIdentity GetOutputClaimsIdentity (System.Security.Claims.ClaimsPrincipal principal, System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request, System.IdentityModel.Scope scope);
abstract member GetOutputClaimsIdentity : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken * System.IdentityModel.Scope -> System.Security.Claims.ClaimsIdentity
Protected MustOverride Function GetOutputClaimsIdentity (principal As ClaimsPrincipal, request As RequestSecurityToken, scope As Scope) As ClaimsIdentity

Parametry

principal
ClaimsPrincipal

A ClaimsPrincipal , který představuje identitu žadatele o token.

request
RequestSecurityToken

A RequestSecurityToken , který představuje požadavek na token zabezpečení. To zahrnuje zprávu požadavku a také další informace související s klientem, jako je kontext autorizace.

scope
Scope

Obsahuje Scope informace o předávající straně přidružené k požadavku. Jedná se o Scope objekt vrácený metodou GetScope(ClaimsPrincipal, RequestSecurityToken) .

Návraty

A ClaimsIdentity obsahující kolekci deklarací identity, které se umístí do vystaveného tokenu zabezpečení.

Příklady

Příklad kódu, který se používá v tomto tématu, je převzat z ukázky Custom Token . Tato ukázka poskytuje vlastní třídy, které umožňují zpracování jednoduchých webových tokenů (SWT) a zahrnuje implementaci pasivní služby tokenů zabezpečení, která je schopna obsluhovat token SWT. Příklad implementace aktivní služby TOKENS najdete v ukázce Federation Metadata . Informace o těchto ukázkách a dalších ukázkách dostupných pro WIF a o tom, kde je stáhnout, najdete v tématu Index vzorového kódu WIF. Následující kód ukazuje, jak přepsat metodu GetOutputClaimsIdentity pro vrácení deklarací identity pro službu STS. V tomto příkladu se ignoruje zpráva Request Security Token (RST) a vrátí se kolekce deklarací identity na základě uživatele ověřeného na tokenu tokenů zabezpečení.

/// <summary>
/// This method returns the content of the issued token. The content is represented as a set of
/// IClaimIdentity intances, each instance corresponds to a single issued token. Currently, the Windows Identity Foundation only
/// supports a single token issuance, so the returned collection must always contain only a single instance.
/// </summary>
/// <param name="scope">The scope that was previously returned by GetScope method</param>
/// <param name="principal">The caller's principal</param>
/// <param name="request">The incoming RST, we don't use this in our implementation</param>
/// <returns></returns>
protected override ClaimsIdentity GetOutputClaimsIdentity( ClaimsPrincipal principal, RequestSecurityToken request, Scope scope )
{
    //
    // Return a default claim set which contains a custom decision claim
    // Here you can actually examine the user by looking at the IClaimsPrincipal and 
    // return the right decision based on that. 
    //
    ClaimsIdentity outgoingIdentity = new ClaimsIdentity();
    outgoingIdentity.AddClaims(principal.Claims);

    return outgoingIdentity;
}

Poznámky

Metoda se GetOutputClaimsIdentity volá z kanálu vystavování tokenů, který je implementovaný metodou Issue . Vrátí hodnotu ClaimsIdentity , která obsahuje deklarace identity, které se mají zahrnout do vystaveného tokenu zabezpečení na základě žadatele tokenu ( principal parametr), příchozího RST ( request parametr) a předávající strany, pro kterou je token určen ( scope parametr). Logika v této metodě se primárně zabývá zodpovězením následujících otázek:

  • Jaké typy deklarací identity by měly být zahrnuty do odpovědi na základě žádosti o obnovení, pro kterou jsou určeny? Obvykle se o tom rozhoduje na základě jednotlivých bodů žádosti ze seznamů typů deklarací požadovaných pro jednotlivé poskytovatele prostředků nebo na základě žádosti na Claims základě vlastností žádosti. Logika a podrobnosti pro určení deklarací identity, které se mají zahrnout do odpovědi, jsou však zcela v závislosti na vaší implementaci.

  • Které hodnoty deklarací identity by se měly přiřadit k deklaracím v odpovědi? U zprostředkovatele identity (IP-STS) to obvykle znamená použití jedné nebo více deklarací identity v žadateli ClaimsPrincipal (poskytnuté parametrem principal ) pro přístup k úložišti (nebo jiné entitě) k vrácení hodnot pro požadované typy deklarací identity. U zprostředkovatele federace (R-STS) to obvykle znamená provedení nějakého druhu zpracování příchozích deklarací identity žadatele za účelem splnění požadavku. možná provádí filtrování nebo transformaci některých deklarací identity prezentovaných žadatelem, zatímco jiné se předávají beze změny. Samozřejmě, stejně jako v případě rozhodování, které deklarace identity zahrnout do odpovědi, podrobnosti a logika určení hodnot těchto deklarací identity je na vaší implementaci.

Poznámky pro implementátory

Tuto metodu musíte přepsat v implementaci SecurityTokenService třídy .

Platí pro

Viz také