Bagikan melalui


SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) Metode

Definisi

Mengeluarkan token keamanan.

public:
 virtual System::IdentityModel::Protocols::WSTrust::RequestSecurityTokenResponse ^ Issue(System::Security::Claims::ClaimsPrincipal ^ principal, System::IdentityModel::Protocols::WSTrust::RequestSecurityToken ^ request);
public virtual System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse Issue (System.Security.Claims.ClaimsPrincipal principal, System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request);
abstract member Issue : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken -> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse
override this.Issue : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken -> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse
Public Overridable Function Issue (principal As ClaimsPrincipal, request As RequestSecurityToken) As RequestSecurityTokenResponse

Parameter

principal
ClaimsPrincipal

ClaimsPrincipal yang mewakili identitas pemohon token.

request
RequestSecurityToken

RequestSecurityToken yang mewakili permintaan token keamanan. Ini termasuk pesan permintaan serta informasi terkait klien lainnya seperti konteks otorisasi.

Mengembalikan

RequestSecurityTokenResponse yang berisi token keamanan yang dikeluarkan.

Keterangan

Metode ini mengimplementasikan pengikatan Masalah yang ditentukan dalam spesifikasi WS-Trust. Implementasi Issue default metode memproses permintaan masuk (RST) melalui alur penerbitan token (penerbitan klaim) dan mengembalikan respons (RSTR) yang berisi token keamanan dengan klaim yang sesuai untuk mengautentikasi pemohon dengan RP atau pengecualian yang sesuai. Alur penerbitan token dalam implementasi default terdiri dari panggilan ke metode berikut (dari SecurityTokenService kelas ).

  1. Metode ValidateRequest untuk memvalidasi permintaan (RST).

  2. Metode GetScope untuk mendapatkan Scope objek yang berisi informasi tentang pihak yang mengandalkan (RP) yang terkait dengan permintaan. Anda harus mengambil alih metode ini. Jika GetScope mengembalikan null, akan InvalidOperationException dilemparkan.

  3. Metode CreateSecurityTokenDescriptor untuk mengembalikan deskriptor token keamanan berdasarkan RST dan objek yang Scope dikembalikan pada langkah sebelumnya. Deskriptor token keamanan (SecurityTokenDescriptor) berisi informasi tentang permintaan dalam formulir yang dapat digunakan oleh handler token. Properti SecurityTokenService.SecurityTokenDescriptor diatur ke deskriptor yang dikembalikan oleh panggilan. Jika null dikembalikan atau jika SigningCredentials properti deskriptor adalah null, maka InvalidOperationException akan dilemparkan. Pengecualian juga dilemparkan jika Scope.TokenEncryptionRequired properti adalah true tetapi EncryptingCredentials properti pada deskriptor yang dikembalikan adalah null.

  4. Metode GetSecurityTokenHandler untuk mendapatkan handler token yang sesuai berdasarkan jenis token yang diminta. Jika null dikembalikan, akan NotImplementedException dilemparkan.

  5. Metode GetIssuerName untuk mendapatkan nama pengeluar sertifikat untuk token. InvalidOperationException Melemparkan jika nama adalah null atau kosong; jika tidak mengatur TokenIssuerName properti pada deskriptor.

  6. Metode GetTokenLifetime untuk mendapatkan masa pakai token dan mengatur Lifetime properti pada deskriptor.

  7. Metode GetProofToken untuk mendapatkan token bukti untuk disertakan dalam token yang dikeluarkan dan mengatur Proof properti pada deskriptor.

  8. Metode GetOutputClaimsIdentity untuk mendapatkan klaim untuk disertakan dalam token yang dikeluarkan dan mengatur Subject properti pada deskriptor. Anda harus mengambil alih metode ini.

  9. Metode GetResponse untuk membuat respons (RSTR) yang berisi token yang dikeluarkan.

Anda dapat mengambil alih Issue metode untuk mengimplementasikan alur penerbitan token kustom; namun ini biasanya tidak diperlukan dalam lingkungan pengembangan dan pengujian di mana sebagian besar implementasi SecurityTokenService kustom kelas dimaksudkan. Dalam banyak kasus ini, Anda mengambil GetOutputClaimsIdentity alih metode dan GetScope dan secara opsional mengambil alih ValidateRequest metode untuk menyediakan STS yang dapat dilayankan untuk lingkungan Anda. Jika penyesuaian lebih lanjut diperlukan, Anda sering dapat menyediakannya dengan mengganti metode yang mengimplementasikan setiap tahap alur penerbitan token default yang tercantum di atas.

Berlaku untuk