SecurityTokenService.GetOutputClaimsIdentity Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wenn diese Methode in einer abgeleiteten Klasse außer Kraft gesetzt wird, gibt diese Methode eine Sammlung von Ausgabesubjekten zurück, die in das ausgestellte Token aufgenommen werden sollen.
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
Parameter
- principal
- ClaimsPrincipal
Ein ClaimsPrincipal Wert, der die Identität des Token-Anforderers darstellt.
- request
- RequestSecurityToken
Ein RequestSecurityToken Wert, der die Sicherheitstokenanforderung darstellt. Dazu gehören die Anforderungsnachricht sowie andere clientbezogene Informationen wie Autorisierungskontext.
- scope
- Scope
Das Scope Enthält Informationen über die vertrauende Seite, die der Anforderung zugeordnet ist. Dies ist das Scope Objekt, das von der GetScope(ClaimsPrincipal, RequestSecurityToken) Methode zurückgegeben wurde.
Gibt zurück
A ClaimsIdentity that contains the collection of claims that will be placed in the issued security token.
Beispiele
Das Codebeispiel, das in diesem Thema verwendet wird, stammt aus dem Custom Token Beispiel. Dieses Beispiel enthält benutzerdefinierte Klassen, die die Verarbeitung einfacher Webtoken (SIMPLE Web Tokens, SWT) ermöglichen und eine Implementierung eines passiven STS enthalten, der ein SWT-Token verarbeiten kann. Ein Beispiel für die Implementierung eines aktiven STS finden Sie im Federation Metadata Beispiel. Informationen zu diesen Beispielen und anderen Beispielen, die für WIF verfügbar sind und wo sie heruntergeladen werden sollen, finden Sie unter WIF Code Sample Index. Der folgende Code zeigt, wie die GetOutputClaimsIdentity Methode überschreibt, um Ansprüche für Ihren STS zurückzugeben. In diesem Beispiel wird die Anforderungssicherheitstokennachricht (RST) ignoriert, und eine Sammlung von Ansprüchen basierend auf dem Benutzer, der beim STS authentifiziert wird, wird zurückgegeben.
/// <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;
}
Hinweise
Die GetOutputClaimsIdentity Methode wird von der Tokenausstellungspipeline aufgerufen, die von der Issue Methode implementiert wird. Es wird ein ClaimsIdentity Objekt zurückgegeben, das die Ansprüche enthält, die im ausgestellten Sicherheitstoken basierend auf dem Anforderer des Tokens (dem principal Parameter), dem eingehenden RST (dem request Parameter) und der vertrauenden Seite enthalten sind, für die das Token vorgesehen ist (der scope Parameter). Die Logik in dieser Methode befasst sich in erster Linie mit der Beantwortung der folgenden Fragen:
Welche Anspruchstypen sollten in die Antwort aufgenommen werden, die auf dem RP basiert, für das sie vorgesehen ist? In der Regel wird dies pro RP anhand von Listen von Anspruchstypen entschieden, die für jedes RP oder auf Anforderungsbasis erforderlich sind, indem die Claims Eigenschaft der Anforderung untersucht wird. Die Logik und Details zum Ermitteln der Ansprüche, die in die Antwort einbezogen werden sollen, sind jedoch vollständig bis zu Ihrer Implementierung erforderlich.
Welche Anspruchswerte sollten den Ansprüchen in der Antwort zugewiesen werden? Für einen Identitätsanbieter (IP-STS) bedeutet dies in der Regel die Verwendung eines oder mehrerer Ansprüche im Anforderer ClaimsPrincipal (bereitgestellt durch den
principalParameter), um auf einen Speicher (oder eine andere Entität) zuzugreifen, um Werte für die erforderlichen Anspruchstypen zurückzugeben. Für einen Verbundanbieter (R-STS) bedeutet dies in der Regel, eine Art Verarbeitung für die eingehenden Ansprüche des Antragstellers durchzuführen, um die Anforderung zu erfüllen; möglicherweise eine Filterung oder Transformation für einige Ansprüche, die vom Anforderer dargestellt werden, während andere über unverändert übergeben werden. Wie bei der Entscheidung, welche Ansprüche in die Antwort einbezogen werden sollen, liegt natürlich die Details und Logik der Bestimmung der Werte dieser Ansprüche ihrer Implementierung bei.
Hinweise für Ausführende
Sie müssen diese Methode in Der Implementierung der SecurityTokenService Klasse überschreiben.