PublicClientApplication class

A classe PublicClientApplication é o objeto exposto pela biblioteca para realizar funções de autenticação e autorização em Aplicações de Página Única, para obter tokens JWT conforme descrito no OAuth 2.0 Authorization Code Flow com especificação PKCE.

Métodos

acquireTokenByCode(AuthorizationCodeRequest)

Esta função resgata um código de autorização (passado como código) do endpoint do token eSTS. Este código de autorização deve ser adquirido do lado do servidor usando um cliente confidencial para adquirir um spa_code. Esta API não está indefinida para aquisição e resgate normais de código de autorização.

A resgate deste código de autorização não requerrá PKCE, pois foi adquirido por um cliente confidencial.

acquireTokenPopup(PopupRequest)

Use quando quiser obter uma access_token para a sua API abrindo uma janela pop-up no navegador do utilizador

acquireTokenRedirect(RedirectRequest)

Use quando quiser obter um access_token para a sua API, redirecionando a janela do navegador do utilizador para o endpoint de autorização. Esta função redireciona a página, por isso qualquer código que siga esta função não será executado.

IMPORTANTE: NÃO é recomendado ter código dependente da resolução da Promessa. Esta função irá navegar para fora da janela atual do navegador. Atualmente, devolve uma Promessa para refletir a natureza assíncrona do código a correr nesta função.

acquireTokenSilent(SilentRequest)

Adquira silenciosamente um token de acesso para um dado conjunto de miras. As devoluções atualmente a processar prometem se forem feitas solicitações paralelas.

addEventCallback(EventCallbackFunction, EventType[])

Adiciona callbacks de eventos ao array

addPerformanceCallback(PerformanceCallbackFunction)

Regista uma chamada de retorno para receber eventos de atuação.

clearCache(ClearCacheRequest)

Limpa tokens e conta da cache do navegador.

createPublicClientApplication(Configuration)

Cria o StandardController e passa-o para a PublicClientApplication

disableAccountStorageEvents()

Remove o ouvinte de eventos que emite um evento quando uma conta de utilizador é adicionada ou removida do armazenamento local numa aba ou janela diferente do navegador

enableAccountStorageEvents()

Adiciona um ouvinte de eventos que emite um evento quando uma conta de utilizador é adicionada ou removida do armazenamento local numa aba ou janela diferente do navegador

getAccount(AccountFilter)

Devolve a primeira conta encontrada na cache que corresponde ao filtro de conta passado.

getAccountByHomeId(string)

Devolve a conta iniciada correspondente ao homeAccountId. (o objeto da conta é criado no momento do início de sessão bem-sucedido) ou nulo quando não é encontrada nenhuma conta correspondente

getAccountByLocalId(string)

Devolve a conta iniciada correspondente ao localAccountId. (o objeto da conta é criado no momento do início de sessão bem-sucedido) ou nulo quando não é encontrada nenhuma conta correspondente

getAccountByUsername(string)

Devolve a conta iniciada correspondente ao nome de utilizador. (o objeto de conta é criado no momento do início de sessão bem-sucedido) ou nulo quando não é encontrada nenhuma conta correspondente. Esta API é fornecida por conveniência, mas o getAccountById deve ser usado para maior fiabilidade

getActiveAccount()

Obtém a conta atualmente ativa

getAllAccounts(AccountFilter)

Devolve todas as contas na cache que correspondem ao filtro opcional. Se não for fornecido filtro, todas as contas são devolvidas.

getLogger()

Devolve a instância do logger

getTokenCache()

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

handleRedirectPromise(string)

Função de gestor de eventos que permite aos utilizadores lançar eventos depois de o objeto PublicClientApplication ter sido carregado durante os fluxos de redirecionamento. Isto deve ser invocado em todas as cargas de página envolvidas nos fluxos de autenticação de redirecionamento.

hydrateCache(AuthenticationResult, PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)

Hydrates armazena cache com os tokens e a conta no objeto AuthenticationResult

initialize(InitializeApplicationRequest)

Função inicializadora para realizar tarefas de arranque assíncronas, como a ligação à extensão WAM

initializeWrapperLibrary(WrapperSKU, string)

Chamado por bibliotecas de wrapper (Angular & React) para definir SKU e Versão passada para telemetria, logger, etc.

loginPopup(PopupRequest)

Use ao iniciar o processo de login, abrindo uma janela pop-up no navegador do utilizador

loginRedirect(RedirectRequest)

Use ao iniciar o processo de login, redirecionando o navegador do utilizador para o endpoint de autorização. Esta função redireciona a página, por isso qualquer código que siga esta função não será executado.

IMPORTANTE: NÃO é recomendado ter código dependente da resolução da Promessa. Esta função irá navegar para fora da janela atual do navegador. Atualmente, devolve uma Promessa para refletir a natureza assíncrona do código a correr nesta função.

logout(EndSessionRequest)

Função de logout descontinuada. Use logoutRedirect ou logoutPopup em vez disso

logoutPopup(EndSessionPopupRequest)

Limpa a cache local do utilizador atual e depois abre uma janela pop-up a pedir ao utilizador para sair do servidor

logoutRedirect(EndSessionRequest)

Use para fazer logout do utilizador atual e redirecionar o utilizador para o postLogoutRedirectUri. O comportamento padrão é redirecionar o utilizador para window.location.href.

removeEventCallback(string)

Remove callback com id fornecido do callback array

removePerformanceCallback(string)

Remove um callback registado com o addPerformanceCallback.

setActiveAccount(null | AccountInfo)

Define a conta para ser usada como a conta ativa. Se nenhuma conta for passada para as APIs do AcquireToken, a MSAL utilizará esta conta ativa.

setLogger(Logger)

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

setNavigationClient(INavigationClient)

Cliente de navegação de conjuntos

ssoSilent(Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)

Esta função utiliza um iframe oculto para obter um código de autorização do eSTS. Existem casos em que isto pode não funcionar:

  • Qualquer navegador que utilize uma forma de Prevenção de Rastreio Inteligente
  • Se não houver uma sessão estabelecida com o serviço

Nestes casos, o pedido deve ser feito dentro de um popup ou redirecionamento full frame.

Nos casos em que é necessária interação, não pode enviar um pedido com prompt=nenhum.

Se o seu token de atualização expirou, pode usar esta função para obter silenciosamente um novo conjunto de tokens, desde que a sua sessão no servidor ainda exista.

Detalhes do Construtor

PublicClientApplication(Configuration, IController)

new PublicClientApplication(configuration: Configuration, controller?: IController)

Parâmetros

configuration
Configuration

Objeto para a instância MSAL PublicClientApplication

controller
IController

Detalhes de Método

acquireTokenByCode(AuthorizationCodeRequest)

Esta função resgata um código de autorização (passado como código) do endpoint do token eSTS. Este código de autorização deve ser adquirido do lado do servidor usando um cliente confidencial para adquirir um spa_code. Esta API não está indefinida para aquisição e resgate normais de código de autorização.

A resgate deste código de autorização não requerrá PKCE, pois foi adquirido por um cliente confidencial.

function acquireTokenByCode(request: AuthorizationCodeRequest): Promise<AuthenticationResult>

Parâmetros

Devoluções

Uma promessa que é cumprida quando esta função está concluída, ou rejeitada se foi levantado um erro.

acquireTokenPopup(PopupRequest)

Use quando quiser obter uma access_token para a sua API abrindo uma janela pop-up no navegador do utilizador

function acquireTokenPopup(request: PopupRequest): Promise<AuthenticationResult>

Parâmetros

request
PopupRequest

Devoluções

Uma promessa que é cumprida quando esta função está concluída, ou rejeitada se foi levantado um erro.

acquireTokenRedirect(RedirectRequest)

Use quando quiser obter um access_token para a sua API, redirecionando a janela do navegador do utilizador para o endpoint de autorização. Esta função redireciona a página, por isso qualquer código que siga esta função não será executado.

IMPORTANTE: NÃO é recomendado ter código dependente da resolução da Promessa. Esta função irá navegar para fora da janela atual do navegador. Atualmente, devolve uma Promessa para refletir a natureza assíncrona do código a correr nesta função.

function acquireTokenRedirect(request: RedirectRequest): Promise<void>

Parâmetros

request
RedirectRequest

Devoluções

Promise<void>

acquireTokenSilent(SilentRequest)

Adquira silenciosamente um token de acesso para um dado conjunto de miras. As devoluções atualmente a processar prometem se forem feitas solicitações paralelas.

function acquireTokenSilent(silentRequest: SilentRequest): Promise<AuthenticationResult>

Parâmetros

silentRequest
SilentRequest

Devoluções

  • uma promessa que é cumprida quando esta função está concluída, ou rejeitada se foi apontado um erro. Devolve o objeto AuthenticationResult

addEventCallback(EventCallbackFunction, EventType[])

Adiciona callbacks de eventos ao array

function addEventCallback(callback: EventCallbackFunction, eventTypes?: EventType[]): null | string

Parâmetros

eventTypes

EventType[]

Devoluções

null | string

addPerformanceCallback(PerformanceCallbackFunction)

Regista uma chamada de retorno para receber eventos de atuação.

function addPerformanceCallback(callback: PerformanceCallbackFunction): string

Parâmetros

Devoluções

string

clearCache(ClearCacheRequest)

Limpa tokens e conta da cache do navegador.

function clearCache(logoutRequest?: ClearCacheRequest): Promise<void>

Parâmetros

logoutRequest
ClearCacheRequest

Devoluções

Promise<void>

createPublicClientApplication(Configuration)

Cria o StandardController e passa-o para a PublicClientApplication

static function createPublicClientApplication(configuration: Configuration): Promise<IPublicClientApplication>

Parâmetros

configuration
Configuration

{Configuração}

Devoluções

disableAccountStorageEvents()

Remove o ouvinte de eventos que emite um evento quando uma conta de utilizador é adicionada ou removida do armazenamento local numa aba ou janela diferente do navegador

function disableAccountStorageEvents()

enableAccountStorageEvents()

Adiciona um ouvinte de eventos que emite um evento quando uma conta de utilizador é adicionada ou removida do armazenamento local numa aba ou janela diferente do navegador

function enableAccountStorageEvents()

getAccount(AccountFilter)

Devolve a primeira conta encontrada na cache que corresponde ao filtro de conta passado.

function getAccount(accountFilter: AccountFilter): null | AccountInfo

Parâmetros

accountFilter
AccountFilter

Devoluções

null | AccountInfo

A primeira conta encontrada na cache corresponde ao filtro fornecido ou nula caso nenhuma tenha sido encontrada.

getAccountByHomeId(string)

Aviso

Esta API foi preterida.

  • Use getAccount instead

Devolve a conta iniciada correspondente ao homeAccountId. (o objeto da conta é criado no momento do início de sessão bem-sucedido) ou nulo quando não é encontrada nenhuma conta correspondente

function getAccountByHomeId(homeAccountId: string): null | AccountInfo

Parâmetros

homeAccountId

string

Devoluções

null | AccountInfo

O objeto da conta armazenado no MSAL

getAccountByLocalId(string)

Aviso

Esta API foi preterida.

  • Use getAccount instead

Devolve a conta iniciada correspondente ao localAccountId. (o objeto da conta é criado no momento do início de sessão bem-sucedido) ou nulo quando não é encontrada nenhuma conta correspondente

function getAccountByLocalId(localId: string): null | AccountInfo

Parâmetros

localId

string

Devoluções

null | AccountInfo

O objeto da conta armazenado no MSAL

getAccountByUsername(string)

Aviso

Esta API foi preterida.

  • Use getAccount instead

Devolve a conta iniciada correspondente ao nome de utilizador. (o objeto de conta é criado no momento do início de sessão bem-sucedido) ou nulo quando não é encontrada nenhuma conta correspondente. Esta API é fornecida por conveniência, mas o getAccountById deve ser usado para maior fiabilidade

function getAccountByUsername(userName: string): null | AccountInfo

Parâmetros

userName

string

Devoluções

null | AccountInfo

O objeto da conta armazenado no MSAL

getActiveAccount()

Obtém a conta atualmente ativa

function getActiveAccount(): null | AccountInfo

Devoluções

null | AccountInfo

getAllAccounts(AccountFilter)

Devolve todas as contas na cache que correspondem ao filtro opcional. Se não for fornecido filtro, todas as contas são devolvidas.

function getAllAccounts(accountFilter?: AccountFilter): AccountInfo[]

Parâmetros

accountFilter
AccountFilter

(Opcional) filtro para restringir as contas devolvidas

Devoluções

Array de objetos AccountInfo na cache

getLogger()

Devolve a instância do logger

function getLogger(): Logger

Devoluções

getTokenCache()

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

function getTokenCache(): ITokenCache

Devoluções

handleRedirectPromise(string)

Função de gestor de eventos que permite aos utilizadores lançar eventos depois de o objeto PublicClientApplication ter sido carregado durante os fluxos de redirecionamento. Isto deve ser invocado em todas as cargas de página envolvidas nos fluxos de autenticação de redirecionamento.

function handleRedirectPromise(hash?: string): Promise<null | AuthenticationResult>

Parâmetros

hash

string

Hash para processar. Por defeito é o valor atual de window.location.hash. Só precisa de ser fornecido explicitamente se a resposta a tratar não estiver contida no valor atual.

Devoluções

Promise<null | AuthenticationResult>

Resposta de token ou nula. Se o valor de retorno for nulo, então não foi detetado nenhum redirecionamento de autenticação.

hydrateCache(AuthenticationResult, PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)

Hydrates armazena cache com os tokens e a conta no objeto AuthenticationResult

function hydrateCache(result: AuthenticationResult, request: PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>): Promise<void>

Parâmetros

request

PopupRequest | RedirectRequest | SilentRequest | Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>

O objeto de pedido que foi usado para obter o AuthenticationResult

Devoluções

Promise<void>

initialize(InitializeApplicationRequest)

Função inicializadora para realizar tarefas de arranque assíncronas, como a ligação à extensão WAM

function initialize(request?: InitializeApplicationRequest): Promise<void>

Parâmetros

request
InitializeApplicationRequest

{? InitializeApplicationRequest}

Devoluções

Promise<void>

initializeWrapperLibrary(WrapperSKU, string)

Chamado por bibliotecas de wrapper (Angular & React) para definir SKU e Versão passada para telemetria, logger, etc.

function initializeWrapperLibrary(sku: WrapperSKU, version: string)

Parâmetros

version

string

loginPopup(PopupRequest)

Use ao iniciar o processo de login, abrindo uma janela pop-up no navegador do utilizador

function loginPopup(request?: PopupRequest): Promise<AuthenticationResult>

Parâmetros

request
PopupRequest

Devoluções

Uma promessa que é cumprida quando esta função está concluída, ou rejeitada se foi levantado um erro.

loginRedirect(RedirectRequest)

Use ao iniciar o processo de login, redirecionando o navegador do utilizador para o endpoint de autorização. Esta função redireciona a página, por isso qualquer código que siga esta função não será executado.

IMPORTANTE: NÃO é recomendado ter código dependente da resolução da Promessa. Esta função irá navegar para fora da janela atual do navegador. Atualmente, devolve uma Promessa para refletir a natureza assíncrona do código a correr nesta função.

function loginRedirect(request?: RedirectRequest): Promise<void>

Parâmetros

request
RedirectRequest

Devoluções

Promise<void>

logout(EndSessionRequest)

Aviso

Esta API foi preterida.

Função de logout descontinuada. Use logoutRedirect ou logoutPopup em vez disso

function logout(logoutRequest?: EndSessionRequest): Promise<void>

Parâmetros

logoutRequest
EndSessionRequest

Devoluções

Promise<void>

logoutPopup(EndSessionPopupRequest)

Limpa a cache local do utilizador atual e depois abre uma janela pop-up a pedir ao utilizador para sair do servidor

function logoutPopup(logoutRequest?: EndSessionPopupRequest): Promise<void>

Parâmetros

logoutRequest
EndSessionPopupRequest

Devoluções

Promise<void>

logoutRedirect(EndSessionRequest)

Use para fazer logout do utilizador atual e redirecionar o utilizador para o postLogoutRedirectUri. O comportamento padrão é redirecionar o utilizador para window.location.href.

function logoutRedirect(logoutRequest?: EndSessionRequest): Promise<void>

Parâmetros

logoutRequest
EndSessionRequest

Devoluções

Promise<void>

removeEventCallback(string)

Remove callback com id fornecido do callback array

function removeEventCallback(callbackId: string)

Parâmetros

callbackId

string

removePerformanceCallback(string)

Remove um callback registado com o addPerformanceCallback.

function removePerformanceCallback(callbackId: string): boolean

Parâmetros

callbackId

string

Devoluções

boolean

setActiveAccount(null | AccountInfo)

Define a conta para ser usada como a conta ativa. Se nenhuma conta for passada para as APIs do AcquireToken, a MSAL utilizará esta conta ativa.

function setActiveAccount(account: null | AccountInfo)

Parâmetros

account

null | AccountInfo

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

setNavigationClient(INavigationClient)

Cliente de navegação de conjuntos

function setNavigationClient(navigationClient: INavigationClient)

Parâmetros

navigationClient
INavigationClient

ssoSilent(Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>)

Esta função utiliza um iframe oculto para obter um código de autorização do eSTS. Existem casos em que isto pode não funcionar:

  • Qualquer navegador que utilize uma forma de Prevenção de Rastreio Inteligente
  • Se não houver uma sessão estabelecida com o serviço

Nestes casos, o pedido deve ser feito dentro de um popup ou redirecionamento full frame.

Nos casos em que é necessária interação, não pode enviar um pedido com prompt=nenhum.

Se o seu token de atualização expirou, pode usar esta função para obter silenciosamente um novo conjunto de tokens, desde que a sua sessão no servidor ainda exista.

function ssoSilent(request: Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>): Promise<AuthenticationResult>

Parâmetros

request

Partial<Omit<CommonAuthorizationUrlRequest, "responseMode" | "earJwk" | "codeChallenge" | "codeChallengeMethod" | "requestedClaimsHash" | "platformBroker">>

SsoSilentRequest

Devoluções

Uma promessa que é cumprida quando esta função está concluída, ou rejeitada se foi levantado um erro.