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í služby tokenů zabezpečení, která je schopna obsluhovat token SWT. Služba TOKENS je implementována třídou, která je odvozena z SecurityTokenService. Mnoho metod SecurityTokenService třídy, které jsou volána z kanálu vystavování tokenů, přebírají RequestSecurityToken objekt jako jeden, pokud jejich parametry. Informace o této ukázce a dalších ukázkách dostupných pro technologii WIF a o tom, kde je stáhnout, najdete v tématu Index vzorového kódu WIF.
Následující příklad kódu ukazuje implementaci SecurityTokenService.GetScope metody . Metoda přebírá RequestSecurityToken jako jeden ze svých parametrů a vlastnosti tohoto parametru se používají 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
Element wst:RequestSecurityToken (message) obsahuje parametry a vlastnosti, které se používají k vyžádání tokenu zabezpečení ze služby tokenů zabezpečení (STS). Zpráva (nebo element) se zkracuje na RST. Třída RequestSecurityToken obsahuje vlastnosti, které představují prvky RST. RST může vytvořit požadavek, který odpovídá libovolné vazby požadavku definované WS-Trust; Například vazbu vystavení, vazbu pro obnovení, vazbu Ověřit nebo Zrušit vazbu. Mnoho vlastností ve RequestSecurityToken třídě odpovídá prvkům, které se nacházejí pouze v konkrétních typech požadavků definovaných těmito vazbami. V závislosti na typu požadavku, který konkrétní RequestSecurityToken objekt představuje, nebo na parametrech v konkrétním požadavku, který představuje, můžou být null
některé vlastnosti objektu .
Služba tokenů zabezpečení 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 elementu, který představuje tato třída, naleznete v WS-Trust specifikace, která se vztahuje na váš scénář: WS-Trust Únor 2005, WS-Trust 1.3 nebo WS-Trust 1.4.
Konstruktory
RequestSecurityToken() |
Inicializuje novou instanci RequestSecurityToken třídy . |
RequestSecurityToken(String) |
Inicializuje novou instanci RequestSecurityToken třídy se zadaným typem požadavku. |
RequestSecurityToken(String, String) |
Inicializuje novou instanci RequestSecurityToken třídy se zadaným typem požadavku. |
Vlastnosti
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 elementu wst:AllowPostdating. (Zděděno od WSTrustMessage) |
AppliesTo |
Získá nebo nastaví obsah wsp:AppliesTo elementu. (Zděděno od WSTrustMessage) |
AuthenticationType |
Získá nebo nastaví obsah elementu wst:AuthenticationType. (Zděděno od WSTrustMessage) |
BinaryExchange |
Získá nebo nastaví obsah wst:BinaryExchange element. (Zděděno od WSTrustMessage) |
CancelTarget |
Získá nebo nastaví token na zrušení v požadavku WS-Trust zrušení. |
CanonicalizationAlgorithm |
Získá nebo nastaví obsah wst:CanonicalizationAlgorithm prvek. (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 vystavený token by měl být označen jako delegatable. |
DelegateTo |
Získá nebo nastaví identitu, na kterou by měl být vystavený token delegovaný. |
Encryption |
Získá nebo nastaví informace o tokenu a klíči, které se mají použít při šifrování. |
EncryptionAlgorithm |
Získá nebo nastaví obsah elementu wst:EncryptionAlgorithm. (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 element. (Zděděno od WSTrustMessage) |
Forwardable |
Získá nebo nastaví hodnotu, která určuje, zda má být vystavený token označen jako předávací. |
Issuer |
Získá nebo nastaví vystavitele wst:OnBehalfOf token. |
KeySizeInBits |
Získá nebo nastaví obsah wst:KeySize elementu uvnitř RequestSecurityToken (RST) zprávy. (Zděděno od WSTrustMessage) |
KeyType |
Získá nebo nastaví obsah elementu wst:KeyType uvnitř zprávy RequestSecurityToken (RST). (Zděděno od WSTrustMessage) |
KeyWrapAlgorithm |
Získá nebo nastaví obsah elementu wst:KeyWrapAlgorithm. (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, jejímž jménem se provádí požadavek. |
Participants |
Získá nebo nastaví účastníky, kteří mají oprávnění k použití vydaného tokenu. |
ProofEncryption |
Získá nebo nastaví token, který se má použít k šifrování tokenu proof. |
Properties |
Získá kontejner vlastností pro rozšíření objektu. (Zděděno od OpenObject) |
Renewing |
Získá nebo nastaví sémantiku obnovení pro žádost o prodloužení WS-Trust. |
RenewTarget |
Získá nebo nastaví token k prodloužení v WS-Trust žádosti o prodloužení. |
ReplyTo |
Získá nebo nastaví adresu, která se má použít pro odpověď přijímají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 elementu wst:SignatureAlgorithm. (Zděděno od WSTrustMessage) |
SignWith |
Získá nebo nastaví obsah wst:SignWith element. (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 tak, aby byl ověřen v požadavku WS-Trust ověření. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |