RequestSecurityToken Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili elemen wst:RequestSecurityToken (RST), yang digunakan untuk meminta token keamanan.
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
- Warisan
Contoh
Contoh kode yang digunakan dalam topik ini diambil dari Custom Token
sampel. Sampel ini menyediakan kelas kustom yang memungkinkan pemrosesan Simple Web Tokens (SWT) dan mencakup implementasi STS pasif yang mampu melayani token SWT. STS diimplementasikan oleh kelas yang berasal dari SecurityTokenService. Banyak metode SecurityTokenService kelas yang dipanggil dari alur penerbitan tokennya mengambil RequestSecurityToken objek sebagai satu jika parameternya. Untuk informasi tentang sampel ini dan sampel lain yang tersedia untuk WIF dan tentang tempat mengunduhnya, lihat Indeks Sampel Kode WIF.
Contoh kode berikut menunjukkan implementasi SecurityTokenService.GetScope metode . Metode ini mengambil RequestSecurityToken sebagai salah satu parameter dan properti parameter ini digunakan untuk mengatur properti pada Scope objek yang dikembalikan oleh metode .
// 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));
}
}
Keterangan
Elemen wst:RequestSecurityToken (pesan) berisi parameter dan properti yang digunakan untuk meminta token keamanan dari layanan token keamanan (STS). Pesan (atau elemen) disingkat sebagai RST. Kelas RequestSecurityToken berisi properti yang mewakili elemen RST. RST dapat membentuk permintaan yang sesuai dengan salah satu pengikatan permintaan yang ditentukan oleh WS-Trust; misalnya, pengikatan Penerbitan, pengikatan Perpanjangan, pengikatan Validasi, atau pengikatan Batal. Banyak properti di RequestSecurityToken kelas sesuai dengan elemen yang hanya ada dalam jenis permintaan tertentu seperti yang didefinisikan oleh pengikatan ini. Tergantung pada jenis permintaan yang diwakili objek tertentu RequestSecurityToken atau parameter yang ada dalam permintaan tertentu yang diwakilinya, beberapa properti objek mungkin null
.
STS mengembalikan respons terhadap permintaan dalam pesan yang berisi elemen wst:RequestSecurityTokenResponse (RSTR). Pesan ini diwakili oleh RequestSecurityTokenResponse kelas .
Untuk informasi selengkapnya tentang elemen yang diwakili kelas ini, lihat spesifikasi WS-Trust yang berlaku untuk skenario Anda: WS-Trust Februari 2005, WS-Trust 1.3, atau WS-Trust 1.4.
Konstruktor
RequestSecurityToken() |
Menginisialisasi instans baru kelas RequestSecurityToken. |
RequestSecurityToken(String) |
Menginisialisasi instans RequestSecurityToken baru kelas dengan jenis permintaan yang ditentukan. |
RequestSecurityToken(String, String) |
Menginisialisasi instans RequestSecurityToken baru kelas dengan jenis permintaan yang ditentukan. |
Properti
ActAs |
Mendapatkan atau mengatur token keamanan untuk identitas yang coba ditindaklanjuti pemohon. |
AdditionalContext |
Mendapatkan atau mengatur informasi konteks tambahan untuk permintaan tersebut. |
AllowPostdating |
Mendapatkan atau mengatur konten elemen wst:AllowPostdating. (Diperoleh dari WSTrustMessage) |
AppliesTo |
Mendapatkan atau mengatur konten elemen wsp:AppliesTo. (Diperoleh dari WSTrustMessage) |
AuthenticationType |
Mendapatkan atau mengatur konten elemen wst:AuthenticationType. (Diperoleh dari WSTrustMessage) |
BinaryExchange |
Mendapatkan atau mengatur konten elemen wst:BinaryExchange. (Diperoleh dari WSTrustMessage) |
CancelTarget |
Mendapatkan atau mengatur token yang akan dibatalkan dalam permintaan pembatalan WS-Trust. |
CanonicalizationAlgorithm |
Mendapatkan atau mengatur konten elemen wst:CanonicalizationAlgorithm. (Diperoleh dari WSTrustMessage) |
Claims |
Mendapatkan jenis klaim yang diminta oleh klien (pemohon). |
ComputedKeyAlgorithm |
Mendapatkan URI yang mewakili algoritma yang diinginkan untuk digunakan saat kunci komputasi digunakan untuk token yang dikeluarkan. |
Context |
Mendapatkan atau mengatur konten atribut Context pada RST atau RSTR. (Diperoleh dari WSTrustMessage) |
Delegatable |
Mendapatkan atau menetapkan nilai yang menentukan apakah token yang dikeluarkan harus ditandai sebagai dapat dilegagasi. |
DelegateTo |
Mendapatkan atau mengatur identitas tempat token yang dikeluarkan harus didelegasikan. |
Encryption |
Mendapatkan atau mengatur informasi tentang token dan kunci yang akan digunakan saat mengenkripsi. |
EncryptionAlgorithm |
Mendapatkan atau mengatur konten elemen wst:EncryptionAlgorithm. (Diperoleh dari WSTrustMessage) |
EncryptWith |
Mendapatkan atau mengatur konten elemen wst:EncryptWith. (Diperoleh dari WSTrustMessage) |
Entropy |
Mendapatkan atau mengatur konten elemen wst:Entropy. (Diperoleh dari WSTrustMessage) |
Forwardable |
Mendapatkan atau menetapkan nilai yang menentukan apakah token yang dikeluarkan harus ditandai sebagai dapat diteruskan. |
Issuer |
Mendapatkan atau mengatur penerbit token wst:OnBehalfOf. |
KeySizeInBits |
Mendapatkan atau mengatur konten elemen wst:KeySize di dalam pesan RequestSecurityToken (RST). (Diperoleh dari WSTrustMessage) |
KeyType |
Mendapatkan atau mengatur konten elemen wst:KeyType di dalam pesan RequestSecurityToken (RST). (Diperoleh dari WSTrustMessage) |
KeyWrapAlgorithm |
Mendapatkan atau mengatur konten elemen wst:KeyWrapAlgorithm. (Diperoleh dari WSTrustMessage) |
Lifetime |
Mendapatkan atau mengatur konten elemen wst:Lifetime di dalam pesan RequestSecurityToken (RST). (Diperoleh dari WSTrustMessage) |
OnBehalfOf |
Mendapatkan atau mengatur token untuk identitas atas nama permintaan yang sedang dibuat. |
Participants |
Mendapatkan atau mengatur peserta yang berwenang untuk menggunakan token yang dikeluarkan. |
ProofEncryption |
Mendapatkan atau mengatur token yang akan digunakan untuk mengenkripsi token bukti. |
Properties |
Mendapatkan tas properti untuk memperluas objek . (Diperoleh dari OpenObject) |
Renewing |
Mendapatkan atau mengatur semantik pembaruan untuk permintaan perpanjangan WS-Trust. |
RenewTarget |
Mendapatkan atau mengatur token yang akan diperbarui dalam permintaan perpanjangan WS-Trust. |
ReplyTo |
Mendapatkan atau mengatur alamat yang akan digunakan untuk membalas ke Pihak yang Mengandalkan. (Diperoleh dari WSTrustMessage) |
RequestType |
Mendapatkan atau mengatur elemen wst:RequestType. (Diperoleh dari WSTrustMessage) |
SecondaryParameters |
Mendapatkan atau mengatur parameter yang pemohonnya bukan pencari. |
SignatureAlgorithm |
Mendapatkan atau mengatur konten elemen wst:SignatureAlgorithm. (Diperoleh dari WSTrustMessage) |
SignWith |
Mendapatkan atau mengatur konten elemen wst:SignWith. (Diperoleh dari WSTrustMessage) |
TokenType |
Mendapatkan atau mengatur konten elemen wst:TokenType. (Diperoleh dari WSTrustMessage) |
UseKey |
Mendapatkan atau mengatur konten elemen wst:UseKey. (Diperoleh dari WSTrustMessage) |
ValidateTarget |
Mendapatkan atau mengatur token yang akan divalidasi dalam permintaan validasi WS-Trust. |
Metode
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |