Share via


SecurityTokenService.GetOutputClaimsIdentity Metode

Definisi

Ketika ditimpa di kelas turunan, metode ini mengembalikan kumpulan subjek output yang akan disertakan dalam token yang dikeluarkan.

protected:
 abstract System::Security::Claims::ClaimsIdentity ^ GetOutputClaimsIdentity(System::Security::Claims::ClaimsPrincipal ^ principal, System::IdentityModel::Protocols::WSTrust::RequestSecurityToken ^ request, System::IdentityModel::Scope ^ scope);
protected abstract System.Security.Claims.ClaimsIdentity GetOutputClaimsIdentity (System.Security.Claims.ClaimsPrincipal principal, System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request, System.IdentityModel.Scope scope);
abstract member GetOutputClaimsIdentity : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken * System.IdentityModel.Scope -> System.Security.Claims.ClaimsIdentity
Protected MustOverride Function GetOutputClaimsIdentity (principal As ClaimsPrincipal, request As RequestSecurityToken, scope As Scope) As ClaimsIdentity

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.

scope
Scope

Scope yang berisi informasi tentang pihak yang mengandalkan yang terkait dengan permintaan. Ini adalah Scope objek yang dikembalikan oleh GetScope(ClaimsPrincipal, RequestSecurityToken) metode .

Mengembalikan

ClaimsIdentity yang berisi kumpulan klaim yang akan ditempatkan dalam token keamanan yang dikeluarkan.

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. Untuk contoh cara menerapkan STS aktif, Anda dapat melihat sampelnya Federation Metadata . Untuk informasi tentang sampel ini dan sampel lain yang tersedia untuk WIF dan tentang tempat mengunduhnya, lihat Indeks Sampel Kode WIF. Kode berikut menunjukkan cara mengambil alih GetOutputClaimsIdentity metode untuk mengembalikan klaim untuk STS Anda. Dalam contoh ini, pesan Minta Token Keamanan (RST) diabaikan dan kumpulan klaim berdasarkan pengguna sebagaimana diautentikasi di STS dikembalikan.

/// <summary>
/// This method returns the content of the issued token. The content is represented as a set of
/// IClaimIdentity intances, each instance corresponds to a single issued token. Currently, the Windows Identity Foundation only
/// supports a single token issuance, so the returned collection must always contain only a single instance.
/// </summary>
/// <param name="scope">The scope that was previously returned by GetScope method</param>
/// <param name="principal">The caller's principal</param>
/// <param name="request">The incoming RST, we don't use this in our implementation</param>
/// <returns></returns>
protected override ClaimsIdentity GetOutputClaimsIdentity( ClaimsPrincipal principal, RequestSecurityToken request, Scope scope )
{
    //
    // Return a default claim set which contains a custom decision claim
    // Here you can actually examine the user by looking at the IClaimsPrincipal and 
    // return the right decision based on that. 
    //
    ClaimsIdentity outgoingIdentity = new ClaimsIdentity();
    outgoingIdentity.AddClaims(principal.Claims);

    return outgoingIdentity;
}

Keterangan

Metode GetOutputClaimsIdentity ini dipanggil dari alur penerbitan token, yang diimplementasikan oleh Issue metode . Ini mengembalikan ClaimsIdentity yang berisi klaim untuk disertakan dalam token keamanan yang dikeluarkan berdasarkan pemohon token ( principal parameter), RST masuk ( request parameter), dan pihak yang mengandalkan yang tokennya dimaksudkan ( scope parameter). Logika dalam metode ini terutama berkaitan dengan menjawab pertanyaan-pertanyaan berikut:

  • Jenis klaim mana yang harus disertakan dalam respons berdasarkan RP yang dimaksudkan? Biasanya ini diputuskan berdasarkan per RP dari daftar jenis klaim yang diperlukan untuk setiap RP atau per permintaan dengan memeriksa Claims properti permintaan. Namun, logika dan detail untuk menentukan klaim yang akan disertakan dalam respons sepenuhnya terserah implementasi Anda.

  • Nilai klaim mana yang harus ditetapkan ke klaim dalam respons? Untuk Penyedia Identitas (IP-STS) ini biasanya berarti menggunakan satu atau beberapa klaim dalam pemohon ClaimsPrincipal (disediakan oleh principal parameter) untuk mengakses penyimpanan (atau entitas lain) untuk mengembalikan nilai untuk jenis klaim yang diperlukan. Untuk Penyedia Federasi (R-STS) ini biasanya berarti melakukan semacam pemrosesan pada klaim masuk pemohon untuk memenuhi permintaan; mungkin melakukan pemfilteran atau transformasi pada beberapa klaim yang disajikan oleh pemohon, sambil melewati yang lain melalui yang tidak dimodifikasi. Tentu saja, seperti dalam kasus memutuskan klaim mana yang akan disertakan dalam respons, detail dan logika tentang cara menentukan nilai klaim ini terserah implementasi Anda.

Catatan Bagi Implementer

Anda harus mengambil alih metode ini dalam implementasi SecurityTokenService kelas Anda.

Berlaku untuk

Lihat juga