SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) Metodo

Definizione

Rilascia un token di sicurezza.

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

Parametri

principal
ClaimsPrincipal

Oggetto ClaimsPrincipal che rappresenta l'identità del richiedente del token.

request
RequestSecurityToken

Oggetto RequestSecurityToken che rappresenta la richiesta del token di sicurezza. Sono inclusi il messaggio di richiesta nonché altre informazioni correlate client come il contesto di autorizzazione.

Restituisce

RequestSecurityTokenResponse

RequestSecurityTokenResponse contenente il token di sicurezza generato.

Commenti

Questo metodo implementa l'associazione Problema definita nella specifica WS-Trust. L'implementazione predefinita del Issue metodo elabora la richiesta in ingresso (RST) tramite una pipeline di rilascio di token (rilascio attestazioni) e restituisce una risposta (RSTR) che contiene un token di sicurezza con le attestazioni appropriate per autenticare il richiedente con l'RP o un'eccezione appropriata. La pipeline di rilascio del token nell'implementazione predefinita è costituita da chiamate ai metodi seguenti (della SecurityTokenService classe).

  1. Metodo ValidateRequest per convalidare la richiesta (RST).

  2. Metodo GetScope per ottenere un Scope oggetto contenente informazioni sulla relying party (RP) associata alla richiesta. È necessario eseguire l'override di questo metodo. Se GetScope restituisce null, viene generato un InvalidOperationException oggetto .

  3. Metodo CreateSecurityTokenDescriptor per restituire un descrittore del token di sicurezza in base alla RST e all'oggetto Scope restituito nel passaggio precedente. Il descrittore del token di sicurezza (SecurityTokenDescriptor) contiene informazioni sulla richiesta in un modulo che può essere usato da un gestore token. La SecurityTokenService.SecurityTokenDescriptor proprietà è impostata sul descrittore restituito dalla chiamata. Se null viene restituito o se la SigningCredentials proprietà del descrittore è null, viene generata una InvalidOperationException proprietà. L'eccezione viene generata anche se la proprietà è true ma la EncryptingCredentials Scope.TokenEncryptionRequired proprietà nel descrittore restituito è null.

  4. Metodo GetSecurityTokenHandler per ottenere il gestore token appropriato in base al tipo di token richiesto. Se null viene restituito, viene generato un NotImplementedException oggetto .

  5. Metodo GetIssuerName per ottenere il nome dell'autorità di certificazione per il token. Genera un valore InvalidOperationException se il nome è null o vuoto. In caso contrario, imposta la TokenIssuerName proprietà sul descrittore.

  6. Metodo GetTokenLifetime per ottenere la durata del token e imposta la Lifetime proprietà nel descrittore.

  7. Metodo GetProofToken per ottenere il token di prova da includere nel token rilasciato e imposta la Proof proprietà nel descrittore.

  8. Metodo GetOutputClaimsIdentity per ottenere le attestazioni da includere nel token rilasciato e imposta la Subject proprietà nel descrittore. È necessario eseguire l'override di questo metodo.

  9. Metodo GetResponse per creare una risposta (RSTR) che contiene il token rilasciato.

È possibile eseguire l'override del Issue metodo per implementare una pipeline di rilascio di token personalizzata. Tuttavia, questo non è in genere necessario negli ambienti di sviluppo e test per i quali sono destinate la maggior parte delle implementazioni personalizzate della SecurityTokenService classe. In molti di questi casi si esegue l'override dei GetOutputClaimsIdentity metodi e GetScope e facoltativamente si esegue l'override del metodo per fornire un servizio stS utilizzabile per l'ambiente ValidateRequest . Se è necessaria un'ulteriore personalizzazione, è spesso possibile specificarla eseguendo l'override dei metodi che implementano ogni fase della pipeline di rilascio del token predefinita elencata in precedenza.

Si applica a