ConfidentialClientApplication class

Esta classe destina-se a ser usada para adquirir tokens para aplicações clientes confidenciais (webApp, webAPI). Aplicações cliente confidenciais irão configurar os segredos da aplicação, certificados/asserções do cliente conforme aplicável

Extends

Construtores

ConfidentialClientApplication(Configuration)

Construtor para a ConfidentialClientApplication

Os atributos obrigatórios no objeto Configuration são:

  • clientID: o ID da aplicação da sua aplicação. Pode obter uma ao registar a sua candidatura no nosso portal de registo de candidaturas
  • Autoridade: O URL de autoridade para a sua aplicação.
  • credencial do cliente: Deve definir o segredo do cliente, certificado ou afirmação para clientes confidenciais. Pode obter um segredo de cliente no portal de registo de candidaturas.

No Azure AD, autoridade é uma URL que indica da forma https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}. Se a sua aplicação suportar Contas num diretório organizacional, substitua o valor "Enter_the_Tenant_Info_Here" pelo ID do Inquilino ou nome do Inquilino (por exemplo, contoso.microsoft.com). Se a sua aplicação suportar Contas em qualquer diretório organizacional, substitua o valor "Enter_the_Tenant_Info_Here" por organizações. Se a sua aplicação suportar Contas em qualquer diretório organizacional e contas Microsoft pessoais, substitua o valor "Enter_the_Tenant_Info_Here" por comum. Para restringir o suporte apenas a contas Microsoft pessoais, substitua o valor "Enter_the_Tenant_Info_Here" por consumidores.

Em Azure B2C, a autoridade é da forma https://{instance}/tfp/{tenant}/{policyName}/ A funcionalidade B2C completa estará disponível nesta biblioteca em versões futuras.

Métodos

acquireTokenByClientCredential(ClientCredentialRequest)

Adquire tokens da autoridade da aplicação (não do utilizador final).

acquireTokenOnBehalfOf(OnBehalfOfRequest)

Adquire tokens da autoridade para a aplicação.

Usado em cenários em que a aplicação atual é um serviço de nível intermédio que era chamado com um token representando um utilizador final. A aplicação atual pode usar o token (oboAssertion) para solicitar outro token para aceder à API web downstream, em nome desse utilizador.

A aplicação atual de gama intermédia não tem qualquer interação do utilizador para obter consentimento. Veja como obter consentimento antecipadamente para a sua aplicação de gama média neste artigo. https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow#gaining-consent-for-the-middle-tier-application

SetAppTokenProvider(IAppTokenProvider)

Este ponto de extensibilidade funciona apenas para o fluxo de client_credential, ou seja, acquireTokenByClientCredential, e destina-se a SDK do Azure melhorar o suporte à Identidade Gerida.

Métodos Herdados

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

Adquire um token trocando o Código de Autorização recebido na primeira etapa do fluxo de Código de Autorização OAuth2.0.

getAuthCodeUrl(AuthorizationCodeUrlRequest) pode ser usado para criar a URL para o primeiro passo do fluxo de Código de Autorização OAuth2.0. Certifique-se de que os valores para redirectUri e os escopos em AuthorizationCodeUrlRequest e AuthorizationCodeRequest são os mesmos.

acquireTokenByRefreshToken(RefreshTokenRequest)

Adquire um token trocando o token de atualização fornecido por um novo conjunto de tokens.

Esta API é fornecida apenas para cenários em que gostaria de migrar de ADAL para MSAL. Caso contrário, recomenda-se usar acquireTokenSilent() para cenários silenciosos. Ao usar acquireTokenSilent(), o MSAL gerirá automaticamente a cache e a atualização dos tokens.

acquireTokenByUsernamePassword(UsernamePasswordRequest)

Adquire tokens com concessão de palavra-passe trocando o nome de utilizador e a palavra-passe da aplicação cliente por credenciais

A mais recente Prática Atual de Segurança OAuth 2.0 rejeita completamente a concessão de palavra-passe. Mais detalhes sobre esta recomendação na https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 documentação e recomendações da Microsoft encontram-se em:https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

acquireTokenSilent(SilentFlowRequest)

Adquire um token silenciosamente quando um utilizador especifica a conta para a qual o token é solicitado.

Esta API espera que o utilizador forneça um objeto de conta e consulta a cache para recuperar o token, caso exista. Existe também um booleano opcional "forceRefresh" que o utilizador pode enviar para contornar a cache durante access_token e id_token. Caso o refresh_token expire ou não seja encontrado, é lançado um erro e a orientação é que o utilizador chame qualquer API interativa de aquisição de tokens (por exemplo: acquireTokenByCode()).

clearCache()

Limpar o cache

getAuthCodeUrl(AuthorizationUrlRequest)

Cria o URL do pedido de autorização, permitindo ao utilizador inserir credenciais e consentimento para a aplicação. A URL direciona-se para o endpoint /authorize da autoridade configurada no objeto de aplicação.

Assim que o utilizador introduz as suas credenciais e consente, a autoridade enviará uma resposta ao URI de redirecionamento enviado no pedido e deverá conter um código de autorização, que poderá então ser usado para adquirir tokens via acquireTokenByCode(AuthorizationCodeRequest).

getLogger()

Devolve a instância do logger

getTokenCache()

Obtém o token cache da aplicação.

setLogger(Logger)

Substitui o conjunto de logger predefinido em configurações por um novo Logger por novas configurações

Detalhes do Construtor

ConfidentialClientApplication(Configuration)

Construtor para a ConfidentialClientApplication

Os atributos obrigatórios no objeto Configuration são:

  • clientID: o ID da aplicação da sua aplicação. Pode obter uma ao registar a sua candidatura no nosso portal de registo de candidaturas
  • Autoridade: O URL de autoridade para a sua aplicação.
  • credencial do cliente: Deve definir o segredo do cliente, certificado ou afirmação para clientes confidenciais. Pode obter um segredo de cliente no portal de registo de candidaturas.

No Azure AD, autoridade é uma URL que indica da forma https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}. Se a sua aplicação suportar Contas num diretório organizacional, substitua o valor "Enter_the_Tenant_Info_Here" pelo ID do Inquilino ou nome do Inquilino (por exemplo, contoso.microsoft.com). Se a sua aplicação suportar Contas em qualquer diretório organizacional, substitua o valor "Enter_the_Tenant_Info_Here" por organizações. Se a sua aplicação suportar Contas em qualquer diretório organizacional e contas Microsoft pessoais, substitua o valor "Enter_the_Tenant_Info_Here" por comum. Para restringir o suporte apenas a contas Microsoft pessoais, substitua o valor "Enter_the_Tenant_Info_Here" por consumidores.

Em Azure B2C, a autoridade é da forma https://{instance}/tfp/{tenant}/{policyName}/ A funcionalidade B2C completa estará disponível nesta biblioteca em versões futuras.

new ConfidentialClientApplication(configuration: Configuration)

Parâmetros

configuration
Configuration

Detalhes de Método

acquireTokenByClientCredential(ClientCredentialRequest)

Adquire tokens da autoridade da aplicação (não do utilizador final).

function acquireTokenByClientCredential(request: ClientCredentialRequest): Promise<null | AuthenticationResult>

Parâmetros

Devoluções

Promise<null | AuthenticationResult>

acquireTokenOnBehalfOf(OnBehalfOfRequest)

Adquire tokens da autoridade para a aplicação.

Usado em cenários em que a aplicação atual é um serviço de nível intermédio que era chamado com um token representando um utilizador final. A aplicação atual pode usar o token (oboAssertion) para solicitar outro token para aceder à API web downstream, em nome desse utilizador.

A aplicação atual de gama intermédia não tem qualquer interação do utilizador para obter consentimento. Veja como obter consentimento antecipadamente para a sua aplicação de gama média neste artigo. https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow#gaining-consent-for-the-middle-tier-application

function acquireTokenOnBehalfOf(request: OnBehalfOfRequest): Promise<null | AuthenticationResult>

Parâmetros

Devoluções

Promise<null | AuthenticationResult>

SetAppTokenProvider(IAppTokenProvider)

Este ponto de extensibilidade funciona apenas para o fluxo de client_credential, ou seja, acquireTokenByClientCredential, e destina-se a SDK do Azure melhorar o suporte à Identidade Gerida.

function SetAppTokenProvider(provider: IAppTokenProvider)

Parâmetros

Detalhes do Método Herdado

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

Adquire um token trocando o Código de Autorização recebido na primeira etapa do fluxo de Código de Autorização OAuth2.0.

getAuthCodeUrl(AuthorizationCodeUrlRequest) pode ser usado para criar a URL para o primeiro passo do fluxo de Código de Autorização OAuth2.0. Certifique-se de que os valores para redirectUri e os escopos em AuthorizationCodeUrlRequest e AuthorizationCodeRequest são os mesmos.

function acquireTokenByCode(request: AuthorizationCodeRequest, authCodePayLoad?: AuthorizationCodePayload): Promise<AuthenticationResult>

Parâmetros

authCodePayLoad
AuthorizationCodePayload

Devoluções

Herdado deClientApplication.acquireTokenByCode

acquireTokenByRefreshToken(RefreshTokenRequest)

Adquire um token trocando o token de atualização fornecido por um novo conjunto de tokens.

Esta API é fornecida apenas para cenários em que gostaria de migrar de ADAL para MSAL. Caso contrário, recomenda-se usar acquireTokenSilent() para cenários silenciosos. Ao usar acquireTokenSilent(), o MSAL gerirá automaticamente a cache e a atualização dos tokens.

function acquireTokenByRefreshToken(request: RefreshTokenRequest): Promise<null | AuthenticationResult>

Parâmetros

Devoluções

Promise<null | AuthenticationResult>

Herdado deClientApplication.acquireTokenByRefreshToken

acquireTokenByUsernamePassword(UsernamePasswordRequest)

Aviso

Esta API foi preterida.

  • Use a more secure flow instead

Adquire tokens com concessão de palavra-passe trocando o nome de utilizador e a palavra-passe da aplicação cliente por credenciais

A mais recente Prática Atual de Segurança OAuth 2.0 rejeita completamente a concessão de palavra-passe. Mais detalhes sobre esta recomendação na https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 documentação e recomendações da Microsoft encontram-se em:https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

function acquireTokenByUsernamePassword(request: UsernamePasswordRequest): Promise<null | AuthenticationResult>

Parâmetros

request
UsernamePasswordRequest

UsernamePasswordRequest

Devoluções

Promise<null | AuthenticationResult>

Herdado deClienteAplicação.adquireTokenPorNomeUtilizadorPassword

acquireTokenSilent(SilentFlowRequest)

Adquire um token silenciosamente quando um utilizador especifica a conta para a qual o token é solicitado.

Esta API espera que o utilizador forneça um objeto de conta e consulta a cache para recuperar o token, caso exista. Existe também um booleano opcional "forceRefresh" que o utilizador pode enviar para contornar a cache durante access_token e id_token. Caso o refresh_token expire ou não seja encontrado, é lançado um erro e a orientação é que o utilizador chame qualquer API interativa de aquisição de tokens (por exemplo: acquireTokenByCode()).

function acquireTokenSilent(request: SilentFlowRequest): Promise<AuthenticationResult>

Parâmetros

Devoluções

Herdado deClientApplication.acquireTokenSilent

clearCache()

Limpar o cache

function clearCache()

Herdado doClientApplication.clearCache

getAuthCodeUrl(AuthorizationUrlRequest)

Cria o URL do pedido de autorização, permitindo ao utilizador inserir credenciais e consentimento para a aplicação. A URL direciona-se para o endpoint /authorize da autoridade configurada no objeto de aplicação.

Assim que o utilizador introduz as suas credenciais e consente, a autoridade enviará uma resposta ao URI de redirecionamento enviado no pedido e deverá conter um código de autorização, que poderá então ser usado para adquirir tokens via acquireTokenByCode(AuthorizationCodeRequest).

function getAuthCodeUrl(request: AuthorizationUrlRequest): Promise<string>

Parâmetros

Devoluções

Promise<string>

Herdado deClientApplication.getAuthCodeUrl

getLogger()

Devolve a instância do logger

function getLogger(): Logger

Devoluções

Herdado deClientApplication.getLogger

getTokenCache()

Obtém o token cache da aplicação.

function getTokenCache(): TokenCache

Devoluções

Herdado deClientApplication.getTokenCache

setLogger(Logger)

Substitui o conjunto de logger predefinido em configurações por um novo Logger por novas configurações

function setLogger(logger: Logger)

Parâmetros

logger
Logger

Instância de logger

Herdado deClientApplication.setLogger