RequestSecurityToken Klasse
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.
Stellt das wst:RequestSecurityToken -Element (RST) dar, das zum Anfordern eines Sicherheitstokens verwendet wird.
public ref class RequestSecurityToken : System::IdentityModel::Protocols::WSTrust::WSTrustMessage
public class RequestSecurityToken : System.IdentityModel.Protocols.WSTrust.WSTrustMessage
type RequestSecurityToken = class
inherit WSTrustMessage
Public Class RequestSecurityToken
Inherits WSTrustMessage
- Vererbung
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. Der STS wird von einer Klasse implementiert, die von SecurityTokenService. Viele der Methoden der SecurityTokenService Klasse, die von der Tokenausstellungspipeline aufgerufen werden, nehmen ein RequestSecurityToken Objekt als ein Objekt an, wenn ihre Parameter. Informationen zu diesem Beispiel und anderen Beispielen, die für WIF verfügbar sind und wo sie heruntergeladen werden sollen, finden Sie unter WIF Code Sample Index.
Das folgende Codebeispiel zeigt eine Implementierung der SecurityTokenService.GetScope Methode. Die Methode verwendet einen RequestSecurityToken der Parameter und Eigenschaften dieses Parameters, um Eigenschaften für das Scope Objekt festzulegen, das von der Methode zurückgegeben wird.
// Certificate Constants
private const string SIGNING_CERTIFICATE_NAME = "CN=localhost";
private const string ENCRYPTING_CERTIFICATE_NAME = "CN=localhost";
private SigningCredentials _signingCreds;
private EncryptingCredentials _encryptingCreds;
// Used for validating applies to address, set to URI used in RP app of application, could also have been done via config
private string _addressExpected = "http://localhost:19851/";
/// <summary>
/// This method returns the configuration for the token issuance request. The configuration
/// is represented by the Scope class. In our case, we are only capable of issuing a token to a
/// single RP identity represented by the _encryptingCreds field.
/// </summary>
/// <param name="principal">The caller's principal</param>
/// <param name="request">The incoming RST</param>
/// <returns></returns>
protected override Scope GetScope(ClaimsPrincipal principal, RequestSecurityToken request)
{
// Validate the AppliesTo address
ValidateAppliesTo( request.AppliesTo );
// Create the scope using the request AppliesTo address and the RP identity
Scope scope = new Scope( request.AppliesTo.Uri.AbsoluteUri, _signingCreds );
if (Uri.IsWellFormedUriString(request.ReplyTo, UriKind.Absolute))
{
if (request.AppliesTo.Uri.Host != new Uri(request.ReplyTo).Host)
scope.ReplyToAddress = request.AppliesTo.Uri.AbsoluteUri;
else
scope.ReplyToAddress = request.ReplyTo;
}
else
{
Uri resultUri = null;
if (Uri.TryCreate(request.AppliesTo.Uri, request.ReplyTo, out resultUri))
scope.ReplyToAddress = resultUri.AbsoluteUri;
else
scope.ReplyToAddress = request.AppliesTo.Uri.ToString() ;
}
// Note: In this sample app only a single RP identity is shown, which is localhost, and the certificate of that RP is
// populated as _encryptingCreds
// If you have multiple RPs for the STS you would select the certificate that is specific to
// the RP that requests the token and then use that for _encryptingCreds
scope.EncryptingCredentials = _encryptingCreds;
return scope;
}
/// <summary>
/// Validates the appliesTo and throws an exception if the appliesTo is null or appliesTo contains some unexpected address.
/// </summary>
/// <param name="appliesTo">The AppliesTo parameter in the request that came in (RST)</param>
/// <returns></returns>
void ValidateAppliesTo(EndpointReference appliesTo)
{
if (appliesTo == null)
{
throw new InvalidRequestException("The appliesTo is null.");
}
if (!appliesTo.Uri.Equals(new Uri(_addressExpected)))
{
throw new InvalidRequestException(String.Format("The relying party address is not valid. Expected value is {0}, the actual value is {1}.", _addressExpected, appliesTo.Uri.AbsoluteUri));
}
}
Hinweise
Das wst:RequestSecurityToken-Element (Message) enthält die Parameter und Eigenschaften, die zum Anfordern eines Sicherheitstokens von einem Sicherheitstokendienst (SECURITY Token Service, STS) verwendet werden. Die Nachricht (oder das Element) wird als RST abgekürzt. Die RequestSecurityToken Klasse enthält Eigenschaften, die die Elemente des RST darstellen. Ein RST kann eine Anforderung bilden, die einer der von WS-Trust definierten Anforderungsbindungen entspricht; Beispielsweise die Veröffentlichungsbindung, die Verlängerungsbindung, die Validate-Bindung oder die Cancel-Bindung. Viele der Eigenschaften in der RequestSecurityToken Klasse entsprechen Elementen, die nur in bestimmten Arten von Anforderungen vorhanden sind, wie durch diese Bindungen definiert. Abhängig von der Art der Anforderung, die ein bestimmtes RequestSecurityToken Objekt darstellt, oder die Parameter, die in der spezifischen Anforderung vorhanden sind, die es darstellt, können einige Eigenschaften des Objekts sein null.
Der STS gibt eine Antwort auf die Anforderung in einer Nachricht zurück, die ein wst:RequestSecurityTokenResponse-Element (RSTR) enthält. Diese Nachricht wird durch die RequestSecurityTokenResponse Klasse dargestellt.
Weitere Informationen zum Element, das diese Klasse darstellt, finden Sie in der WS-Trust Spezifikation, die für Ihr Szenario gilt: WS-Trust Februar 2005, WS-Trust 1.3 oder WS-Trust 1.4.
Konstruktoren
| Name | Beschreibung |
|---|---|
| RequestSecurityToken() |
Initialisiert eine neue Instanz der RequestSecurityToken-Klasse. |
| RequestSecurityToken(String, String) |
Initialisiert eine neue Instanz der RequestSecurityToken Klasse mit dem angegebenen Anforderungstyp. |
| RequestSecurityToken(String) |
Initialisiert eine neue Instanz der RequestSecurityToken Klasse mit dem angegebenen Anforderungstyp. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| ActAs |
Ruft ab oder legt das Sicherheitstoken für die Identität, die der Anforderer versucht, zu handeln. |
| AdditionalContext |
Dient zum Abrufen oder Festlegen der zusätzlichen Kontextinformationen für die Anforderung. |
| AllowPostdating |
Dient zum Abrufen oder Festlegen des Inhalts des wst:AllowPostdating-Elements. (Geerbt von WSTrustMessage) |
| AppliesTo |
Dient zum Abrufen oder Festlegen des Inhalts des wsp:AppliesTo-Elements. (Geerbt von WSTrustMessage) |
| AuthenticationType |
Dient zum Abrufen oder Festlegen des Inhalts des wst:AuthenticationType -Elements. (Geerbt von WSTrustMessage) |
| BinaryExchange |
Dient zum Abrufen oder Festlegen des Inhalts des wst:BinaryExchange -Elements. (Geerbt von WSTrustMessage) |
| CancelTarget |
Ruft das Token ab, das in einer WS-Trust Abbrechenanforderung abgebrochen werden soll, oder legt dieses fest. |
| CanonicalizationAlgorithm |
Dient zum Abrufen oder Festlegen des Inhalts des wst:CanonicalizationAlgorithm -Elements. (Geerbt von WSTrustMessage) |
| Claims |
Ruft die vom Client angeforderten Anspruchstypen (Requestor) ab. |
| ComputedKeyAlgorithm |
Ruft einen URI ab, der den gewünschten Algorithmus darstellt, der verwendet werden soll, wenn berechnete Schlüssel für ausgestellte Token verwendet werden. |
| Context |
Dient zum Abrufen oder Festlegen des Inhalts des Context-Attributs für RST oder RSTR. (Geerbt von WSTrustMessage) |
| Delegatable |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das ausgegebene Token als entstellbar gekennzeichnet werden soll. |
| DelegateTo |
Ruft die Identität ab, an die das ausgestellte Token delegiert werden soll, oder legt diese fest. |
| Encryption |
Ruft Informationen zum Token und Schlüssel ab, die beim Verschlüsseln verwendet werden sollen, oder legt diese fest. |
| EncryptionAlgorithm |
Dient zum Abrufen oder Festlegen des Inhalts des wst:EncryptionAlgorithm -Elements. (Geerbt von WSTrustMessage) |
| EncryptWith |
Dient zum Abrufen oder Festlegen des Inhalts des wst:EncryptWith -Elements. (Geerbt von WSTrustMessage) |
| Entropy |
Dient zum Abrufen oder Festlegen des Inhalts des wst:Entropy-Elements. (Geerbt von WSTrustMessage) |
| Forwardable |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das ausgegebene Token weitergeleitet werden soll. |
| Issuer |
Dient zum Abrufen oder Festlegen des Ausstellers des wst:OnBehalfOf-Tokens. |
| KeySizeInBits |
Dient zum Abrufen oder Festlegen des Inhalts des wst:KeySize-Elements in einer RequestSecurityToken (RST)-Nachricht. (Geerbt von WSTrustMessage) |
| KeyType |
Dient zum Abrufen oder Festlegen des Inhalts des wst:KeyType-Elements in einer RequestSecurityToken (RST)-Nachricht. (Geerbt von WSTrustMessage) |
| KeyWrapAlgorithm |
Dient zum Abrufen oder Festlegen des Inhalts des wst:KeyWrapAlgorithm -Elements. (Geerbt von WSTrustMessage) |
| Lifetime |
Dient zum Abrufen oder Festlegen des Inhalts des wst:Lifetime-Elements in einer RequestSecurityToken (RST)-Nachricht. (Geerbt von WSTrustMessage) |
| OnBehalfOf |
Ruft ab oder legt das Token für die Identität im Auftrag, von der die Anforderung gestellt wird. |
| Participants |
Ruft die Teilnehmer ab, die berechtigt sind, das ausgestellte Token zu verwenden, oder legt diese fest. |
| ProofEncryption |
Ruft ab oder legt das Token fest, das zum Verschlüsseln des Nachweistokens verwendet werden soll. |
| Properties |
Ruft den Eigenschaftenbehälter ab, um das Objekt zu erweitern. (Geerbt von OpenObject) |
| Renewing |
Ruft die Verlängerungsemantik für eine WS-Trust Verlängerungsanforderung ab oder legt sie fest. |
| RenewTarget |
Ruft das Token ab, das in einer WS-Trust Verlängerungsanforderung erneuert werden soll, oder legt dieses fest. |
| ReplyTo |
Ruft die Adresse ab, die für die Antwort auf die vertrauende Seite verwendet werden soll, oder legt sie fest. (Geerbt von WSTrustMessage) |
| RequestType |
Ruft ab oder legt das wst:RequestType -Element fest. (Geerbt von WSTrustMessage) |
| SecondaryParameters |
Dient zum Abrufen oder Festlegen von Parametern, für die der Anforderer nicht der Absender ist. |
| SignatureAlgorithm |
Dient zum Abrufen oder Festlegen des Inhalts des wst:SignatureAlgorithm -Elements. (Geerbt von WSTrustMessage) |
| SignWith |
Dient zum Abrufen oder Festlegen des Inhalts des wst:SignWith -Elements. (Geerbt von WSTrustMessage) |
| TokenType |
Dient zum Abrufen oder Festlegen des Inhalts des wst:TokenType-Elements. (Geerbt von WSTrustMessage) |
| UseKey |
Ruft den Inhalt des wst:UseKey-Elements ab oder legt diesen fest. (Geerbt von WSTrustMessage) |
| ValidateTarget |
Ruft das Token ab, das in einer WS-Trust Validate-Anforderung überprüft werden soll, oder legt dieses fest. |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |