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 nonché altre informazioni correlate client come il contesto di autorizzazione.

Restituisce

RequestSecurityTokenResponse contenente il token di sicurezza generato.

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 dei 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 che contiene 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 del 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 per il token e imposta la Lifetime proprietà sul 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) contenente il token emesso.

È 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 utilizzabile per l'ambiente ValidateRequest . Se è necessaria ulteriore personalizzazione, è spesso possibile fornirla eseguendo l'override dei metodi che implementano ogni fase della pipeline di rilascio dei token predefinita elencata in precedenza.

Si applica a