SecurityTokenService.GetOutputClaimsIdentity Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
W przypadku zastąpienia w klasie pochodnej ta metoda zwraca kolekcję podmiotów wyjściowych, które mają zostać uwzględnione w wystawionym tokenie.
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
Element ClaimsPrincipal reprezentujący tożsamość osoby żądającej tokenu.
- request
- RequestSecurityToken
Element RequestSecurityToken reprezentujący żądanie tokenu zabezpieczającego. Obejmuje to komunikat żądania, a także inne informacje związane z klientem, takie jak kontekst autoryzacji.
- scope
- Scope
Element Scope zawierający informacje o jednostki uzależnionej skojarzonej z żądaniem. Jest to Scope obiekt zwrócony przez metodę GetScope(ClaimsPrincipal, RequestSecurityToken) .
Zwraca
Element ClaimsIdentity zawierający kolekcję oświadczeń, które zostaną umieszczone w wystawionym tokenie zabezpieczającym.
Przykłady
Przykładowy kod używany w tym temacie jest pobierany z przykładu Custom Token
. Ten przykład zawiera niestandardowe klasy, które umożliwiają przetwarzanie prostych tokenów sieci Web (SWT) i obejmują implementację pasywnej usługi STS, która może obsługiwać token SWT. Przykład implementacji aktywnej usługi STS można znaleźć w przykładzie Federation Metadata
. Aby uzyskać informacje o tych przykładach i innych przykładach dostępnych dla programu WIF oraz o tym, gdzie je pobrać, zobacz Przykładowy indeks kodu programu WIF. Poniższy kod pokazuje, jak zastąpić metodę GetOutputClaimsIdentity zwracania oświadczeń dla usługi STS. W tym przykładzie komunikat Żądaj tokenu zabezpieczającego (RST) jest ignorowany i zwracana jest kolekcja oświadczeń na podstawie użytkownika uwierzytelnionego w usłudze STS.
/// <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;
}
Uwagi
Metoda jest wywoływana GetOutputClaimsIdentity z potoku wystawiania tokenów, który jest implementowany przez metodę Issue . Zwraca obiekt ClaimsIdentity zawierający oświadczenia do uwzględnienia w wystawionym tokenie zabezpieczającym na podstawie żądającego tokenu (parametru), przychodzącego RST ( principal
request
parametru) i jednostki uzależnionej, dla której jest przeznaczony token ( scope
parametr). Logika w tej metodzie dotyczy przede wszystkim odpowiedzi na następujące pytania:
Które typy oświadczeń należy uwzględnić w odpowiedzi na podstawie dostawcy zasobów, dla których jest ona przeznaczona? Zazwyczaj jest to ustalane na podstawie poszczególnych żądań z list typów oświadczeń wymaganych dla każdego żądania lub na żądanie, sprawdzając Claims właściwość żądania. Jednak logika i szczegóły określania oświadczeń do uwzględnienia w odpowiedzi są całkowicie do twojej implementacji.
Które wartości oświadczeń powinny być przypisane do oświadczeń w odpowiedzi? W przypadku dostawcy tożsamości (IP-STS) zwykle oznacza to, że w celu uzyskania dostępu do magazynu (lub innej jednostki) do zwracania wartości wymaganych typów oświadczeń przez dostawcę ClaimsPrincipal tożsamości (
principal
lub innej jednostki). W przypadku dostawcy federacyjnego (R-STS) zwykle oznacza to wykonywanie pewnego rodzaju przetwarzania na oświadczeniach przychodzących osoby żądającej w celu spełnienia żądania; być może wykonuje filtrowanie lub przekształcanie niektórych oświadczeń przedstawionych przez żądającego, przekazując inne przez niezmodyfikowane. Oczywiście, podobnie jak w przypadku podejmowania decyzji, które oświadczenia do uwzględnienia w odpowiedzi, szczegóły i logika sposobu określania wartości tych oświadczeń zależy od implementacji.
Uwagi dotyczące implementowania
Tę metodę należy zastąpić w implementacji SecurityTokenService klasy .