Condividi tramite


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 e altre informazioni relative al client, ad esempio il contesto di autorizzazione.

Restituisce

Oggetto RequestSecurityTokenResponse contenente il token di sicurezza rilasciato.

Commenti

Questo metodo implementa l'associazione Issue 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 di attestazioni) e restituisce una risposta (RSTR) che contiene un token di sicurezza con le attestazioni appropriate per autenticare il richiedente con il punto di ripristino 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 generata un'eccezione InvalidOperationException .

  3. Metodo CreateSecurityTokenDescriptor per restituire un descrittore di token di sicurezza basato sull'RST e sull'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 di 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 un'eccezione InvalidOperationException . L'eccezione viene generata anche se la Scope.TokenEncryptionRequired proprietà è true ma la EncryptingCredentials proprietà nel descrittore restituito è null.

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

  5. Metodo GetIssuerName per ottenere il nome dell'autorità emittente per il token. Genera un'eccezione 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 impostare 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, ma in genere non è necessaria negli ambienti di sviluppo e test per i quali sono previste 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 token di sicurezza disponibile per l'ambiente ValidateRequest . Se è necessaria un'ulteriore personalizzazione, è spesso possibile fornirla eseguendo l'override dei metodi che implementano ogni fase della pipeline di rilascio di token predefinita elencata in precedenza.

Si applica a