RequestSecurityToken Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje wst:RequestSecurityToken element (RST), který se používá k vyžádání tokenu zabezpečení.
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
- Dědičnost
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í stS, která je schopna obsluhovat token SWT. StS je implementována třídou, která je odvozena z SecurityTokenService. Mnoho metod SecurityTokenService třídy, které jsou volána z kanálu vystavení tokenu RequestSecurityToken , má objekt jako jeden, pokud jejich parametry. Informace o této ukázce a dalších ukázkách, které jsou k dispozici pro WIF a o tom, kde je stáhnout, najdete v části Index ukázek kódu WIF.
Následující příklad kódu ukazuje implementaci SecurityTokenService.GetScope metody. Metoda přebírá RequestSecurityToken jako jeden z jeho parametrů a vlastností tohoto parametru jsou použity k nastavení vlastností objektu Scope , který je vrácen metodou.
// 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));
}
}
Poznámky
Wst:RequestSecurityToken – element (zpráva) obsahuje parametry a vlastnosti použité k vyžádání tokenu zabezpečení ze služby tokenu zabezpečení (STS). Zpráva (nebo prvek) je zkrácena jako RST. Třída RequestSecurityToken obsahuje vlastnosti, které představují prvky RST. RST může vytvořit požadavek, který odpovídá jakékoli vazbě požadavku definované ws-Trust; Například vazby vystavení, vazby Prodlužování platnosti, Ověřit vazbu nebo Zrušit vazbu. Mnoho vlastností ve RequestSecurityToken třídě odpovídá prvkům, které jsou přítomny pouze v konkrétních typech požadavků definovaných těmito vazbami. V závislosti na druhu požadavku konkrétní RequestSecurityToken objekt představuje nebo parametry přítomné v konkrétním požadavku, který představuje, mohou být nullněkteré vlastnosti objektu .
Služba TOKENS vrátí odpověď na požadavek ve zprávě, která obsahuje element wst:RequestSecurityTokenResponse (RSTR). Tato zpráva je reprezentována RequestSecurityTokenResponse třídou.
Další informace o prvku, který tato třída představuje, naleznete ve specifikaci WS-Trust, která platí pro váš scénář: WS-Trust února 2005, WS-Trust 1.3 nebo WS-Trust 1.4.
Konstruktory
| Name | Description |
|---|---|
| RequestSecurityToken() |
Inicializuje novou instanci RequestSecurityToken třídy. |
| RequestSecurityToken(String, String) |
Inicializuje novou instanci RequestSecurityToken třídy se zadaným typem požadavku. |
| RequestSecurityToken(String) |
Inicializuje novou instanci RequestSecurityToken třídy se zadaným typem požadavku. |
Vlastnosti
| Name | Description |
|---|---|
| ActAs |
Získá nebo nastaví token zabezpečení pro identitu, kterou se žadatel pokouší jednat jako. |
| AdditionalContext |
Získá nebo nastaví další kontextové informace pro požadavek. |
| AllowPostdating |
Získá nebo nastaví obsah wst:AllowPostdating elementu. (Zděděno od WSTrustMessage) |
| AppliesTo |
Získá nebo nastaví obsah wsp:AppliesTo element. (Zděděno od WSTrustMessage) |
| AuthenticationType |
Získá nebo nastaví obsah wst:AuthenticationType elementu. (Zděděno od WSTrustMessage) |
| BinaryExchange |
Získá nebo nastaví obsah wst:BinaryExchange elementu. (Zděděno od WSTrustMessage) |
| CancelTarget |
Získá nebo nastaví token, který se má zrušit v WS-Trust žádosti o zrušení. |
| CanonicalizationAlgorithm |
Získá nebo nastaví obsah wst:CanonicalizationAlgorithm elementu. (Zděděno od WSTrustMessage) |
| Claims |
Získá typy deklarací identity požadované klientem (žadatel). |
| ComputedKeyAlgorithm |
Získá identifikátor URI, který představuje požadovaný algoritmus, který se má použít při použití vypočítaných klíčů pro vydané tokeny. |
| Context |
Získá nebo nastaví obsah atributu Context na RST nebo RSTR. (Zděděno od WSTrustMessage) |
| Delegatable |
Získá nebo nastaví hodnotu, která určuje, zda má být vystavený token označen jako delegatable. |
| DelegateTo |
Získá nebo nastaví identitu, na kterou má být vystavený token delegovaný. |
| Encryption |
Získá nebo nastaví informace o tokenu a klíč, který se má použít při šifrování. |
| EncryptionAlgorithm |
Získá nebo nastaví obsah wst:EncryptionAlgorithm elementu. (Zděděno od WSTrustMessage) |
| EncryptWith |
Získá nebo nastaví obsah wst:EncryptWith elementu. (Zděděno od WSTrustMessage) |
| Entropy |
Získá nebo nastaví obsah wst:Entropy elementu. (Zděděno od WSTrustMessage) |
| Forwardable |
Získá nebo nastaví hodnotu, která určuje, jestli má být vystavený token označen jako předávací. |
| Issuer |
Získá nebo nastaví vystavitele tokenu wst:OnBehalfOf. |
| KeySizeInBits |
Získá nebo nastaví obsah wst:KeySize element uvnitř RequestSecurityToken (RST) zprávy. (Zděděno od WSTrustMessage) |
| KeyType |
Získá nebo nastaví obsah wst:KeyType element uvnitř RequestSecurityToken (RST) zprávy. (Zděděno od WSTrustMessage) |
| KeyWrapAlgorithm |
Získá nebo nastaví obsah wst:KeyWrapAlgorithm elementu. (Zděděno od WSTrustMessage) |
| Lifetime |
Získá nebo nastaví obsah wst:Lifetime element uvnitř RequestSecurityToken (RST) zprávy. (Zděděno od WSTrustMessage) |
| OnBehalfOf |
Získá nebo nastaví token pro identitu, za kterou se požadavek provádí. |
| Participants |
Získá nebo nastaví účastníky, kteří mají oprávnění používat vystavený token. |
| ProofEncryption |
Získá nebo nastaví token, který se má použít k šifrování tokenu kontroly. |
| Properties |
Získá tašku vlastností pro rozšíření objektu. (Zděděno od OpenObject) |
| Renewing |
Získá nebo nastaví sémantiku obnovení pro WS-Trust žádost o prodloužení. |
| RenewTarget |
Získá nebo nastaví token, který se má obnovit v žádosti o obnovení WS-Trust. |
| ReplyTo |
Získá nebo nastaví adresu, která se má použít k odpovídání předávající straně. (Zděděno od WSTrustMessage) |
| RequestType |
Získá nebo nastaví wst:RequestType element. (Zděděno od WSTrustMessage) |
| SecondaryParameters |
Získá nebo nastaví parametry, pro které žadatel není původcem. |
| SignatureAlgorithm |
Získá nebo nastaví obsah wst:SignatureAlgorithm elementu. (Zděděno od WSTrustMessage) |
| SignWith |
Získá nebo nastaví obsah wst:SignWith elementu. (Zděděno od WSTrustMessage) |
| TokenType |
Získá nebo nastaví obsah wst:TokenType elementu. (Zděděno od WSTrustMessage) |
| UseKey |
Získá nebo nastaví obsah wst:UseKey elementu. (Zděděno od WSTrustMessage) |
| ValidateTarget |
Získá nebo nastaví token, který se má ověřit v požadavku WS-Trust ověření. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |