Opções de configuração de autenticação

Antes de começares aqui, certifica-te de que percebes como inicializar um objeto de aplicação.

A biblioteca MSAL tem um conjunto de opções de configuração que podem ser usadas para personalizar o comportamento dos seus fluxos de autenticação. Estas opções podem ser definidas no construtor do PublicClientApplication objeto ou como parte das APIs de pedido. Aqui descrevemos o objeto de configuração que pode ser passado para o PublicClientApplication construtor.

Usando o objeto config

O objeto de configuração tem a seguinte estrutura e pode ser passado para o PublicClientApplication construtor. O único parâmetro de configuração necessário é o ID do cliente da aplicação. Tudo o resto é opcional, mas pode ser obrigatório dependendo do inquilino e do modelo de candidatura.

const msalConfig = {
    auth: {
        clientId: "enter_client_id_here",
        authority: "https://login.microsoftonline.com/common",
        knownAuthorities: [],
        cloudDiscoveryMetadata: "",
        redirectUri: "enter_redirect_uri_here",
        postLogoutRedirectUri: "enter_postlogout_uri_here",
        navigateToLoginRequestUrl: true,
        clientCapabilities: ["CP1"],
    },
    cache: {
        cacheLocation: "sessionStorage",
    },
    system: {
        loggerOptions: {
            loggerCallback: (
                level: LogLevel,
                message: string,
                containsPii: boolean
            ): void => {
                if (containsPii) {
                    return;
                }
                switch (level) {
                    case LogLevel.Error:
                        console.error(message);
                        return;
                    case LogLevel.Info:
                        console.info(message);
                        return;
                    case LogLevel.Verbose:
                        console.debug(message);
                        return;
                    case LogLevel.Warning:
                        console.warn(message);
                        return;
                }
            },
            piiLoggingEnabled: false,
        },
        windowHashTimeout: 60000,
        iframeHashTimeout: 6000,
        loadFrameTimeout: 0,
        protocolMode: "AAD"
    },
    telemetry: {
        application: {
            appName: "My Application",
            appVersion: "1.0.0",
        },
    },
};

const msalInstance = new PublicClientApplication(msalConfig);

Opções de configuração

Opções de Configuração de Autenticação

Option Description Formato Valor padrão
clientId ID da aplicação da sua candidatura. Pode ser encontrado no painel de registo de aplicações do portal do Azure UUID/GUID Nenhum. Este parâmetro é necessário para que a MSAL realize quaisquer ações.
authority URI do inquilino para autenticar e autorizar. Normalmente assume a forma de https://{uri}/{tenantid} String em formato URI com tenant - https://{uri}/{tenantid} https://login.microsoftonline.com/common
knownAuthorities Um conjunto de URIs que se sabe serem válidos. Usado em cenários B2C. Array de strings em formato URI Matriz vazia []
cloudDiscoveryMetadata Uma cadeia que contém a resposta de descoberta da nuvem. Usado em cenários Microsoft Entra. cadeia (de caracteres) Corda vazia ""
authorityMetadata Uma string contendo a resposta endpoint .well-known/openid-configuration. cadeia (de caracteres) Corda vazia ""
redirectUri URI onde a resposta do código de autorização é enviada de volta. Qualquer local aqui especificado deve ter a biblioteca MSAL disponível para tratar da resposta. String em formato URI absoluto ou relativo Página de pedido de login (window.location.href da página que fez o pedido de autorização)
postLogoutRedirectUri URI que é redirecionado depois de uma chamada de logout(). String em formato URI absoluto ou relativo. Passe null para desativar o redirecionamento pós-logout. Página de pedido de login (window.location.href da página que fez o pedido de autorização)
navigateToLoginRequestUrl Se true, navegará de volta ao local original do pedido antes de processar a resposta do código de autorização. Se o redirectUri for o mesmo que o local original do pedido, esta flag deve ser definida como falso. Booleano true
clientCapabilities Conjunto de capacidades a ser adicionado a todos os pedidos de rede como parte do xms_cc pedido de reclamações Matriz de cadeias de caracteres []
azureCloudOptions Um conjunto definido de opções cloud Azure para os programadores poderem recorrer automaticamente às suas autoridades cloud específicas. AzureCloudOptions AzureCloudInstance.None
skipAuthorityMetadataCache Um flag para escolher se deve usar a cache local de metadados durante a inicialização da autoridade. O cache de metadados é utilizado se não for fornecido metadados de autoridade e antes de ser feita uma chamada de rede para metadados. Booleano false
onRedirectNavigate Um callback que passou a URL para onde o MSAL navegará nos fluxos de redirecionamento. Regressar false na chamada de retorno para a navegação. Função - (url: string) => boolean \| void undefined
instanceAware Uma bandeira indicando se o STS deve enviar de volta parâmetros adicionais para especificar de onde os tokens devem ser recuperados. Booleano false
isMcp Se true, é necessário um resource parâmetro em todos os pedidos de token. Utilizado para fluxos do Protocolo de Contexto do Modelo (MCP). Booleano false

Opções de Configuração de Cache

Option Description Formato Valor padrão
cacheLocation Localização da cache de tokens no navegador. Valor de cadeia que deve ser um dos seguintes: "sessionStorage", "localStorage", "memoryStorage" sessionStorage
temporaryCacheLocation (Descontinuado) Localização da cache temporária no navegador. Esta opção só deve ser alterada para casos específicos e excecionais. Para mais informações, veja cache. Valor de cadeia que deve ser um dos seguintes: "sessionStorage", "localStorage", "memoryStorage" sessionStorage
storeAuthStateInCookie (Descontinuado) Se for verdade, armazena os itens em cache em cookies bem como na cache do navegador. Foi anteriormente utilizado para compatibilidade com o Internet Explorer. Booleano false
secureCookies (Descontinuado) Se for verdade e storeAuthStateInCookie também estiver ativado, o MSAL adiciona a Secure flag ao cookie do navegador para que só possa ser enviada via HTTPS. Booleano false
cacheMigrationEnabled Se for verdade, as entradas de cache de versões mais antigas do MSAL são atualizadas para se conformarem ao esquema de cache mais recente no arranque. Se a sua aplicação não foi atualizada recentemente para uma nova versão do MSAL.js, pode desativar isto em segurança. Se as entradas antigas da cache não forem migradas, pode resultar numa falha na cache ao tentar recuperar contas ou tokens, e os utilizadores afetados podem ter de se reautenticar para se atualizarem. Booleano true quando se usa localStorage, false caso contrário
claimsBasedCachingEnabled Se true, os tokens de acesso são armazenados em cache sob uma chave contendo o hash da cadeia de reivindicações solicitada, resultando numa falha de cache e num novo pedido de token de rede quando o mesmo pedido de token é feito com reivindicações diferentes ou em falta. Se definidos para false, os tokens são armazenados em cache sem claims, mas todos os pedidos que contenham claims vão para a rede e sobrescrevem qualquer token previamente armazenado em cache com os mesmos escopos. Booleano false

Note

A temporaryCacheLocation opção foi descontinuada nas versões recentes do MSAL Browser e poderá ser removida numa futura versão maior. Não deve depender desta opção para novas implementações.

Note

As storeAuthStateInCookie opções e secureCookies foram descontinuadas nas versões recentes do MSAL Browser. Estas opções eram principalmente usadas para compatibilidade com o Internet Explorer, que já não é suportado. Podem ser removidos numa futura versão importante.

Veja Cache em MSAL para mais informações.

Opções de Configuração do Sistema

Option Description Formato Valor padrão
loggerOptions Objeto de configuração para logger. Veja abaixo. Veja abaixo.
windowHashTimeout Tempo limite em milissegundos para esperar que as operações pop-up se resolvam. inteiro (milissegundos) 60000
iframeHashTimeout Tempo limite em milissegundos para esperar que as operações de iframe se resolvam. inteiro (milissegundos) 6000
loadFrameTimeout Tempo de espera em milissegundos para esperar que as operações iframe/pop-up sejam resolvidas. Se fornecida, definirá valores por defeito para windowHashTimeout e iframeHashTimeout. inteiro (milissegundos) undefined
navigateFrameWait Atraso em milissegundos para esperar que o iframe carregue na janela. inteiro (milissegundos) No IE ou Edge: 500, em todos os outros navegadores: 0
asyncPopups (Descontinuado — usar navigatePopups em vez disso.) Define se os pop-ups são abertos assíncronos. Quando definido para false, surgem popups em branco antes de acontecer qualquer outra coisa. Quando definido para true, surgem popups ao fazer o pedido de rede. Booleano false
navigatePopups Define se os pop-ups são abertos e navegados para mais tarde. Quando definido para true, são abertos pop-ups em branco e depois navegam até ao domínio de login. Quando definido para false, os popups são abertos diretamente no domínio de login. Isto pode ser definido false para cenários onde about:blank não é suportado, como aplicações de ambiente de trabalho ou aplicações web progressivas. Booleano true
allowRedirectInIframe Por defeito, o MSAL não permite que operações de redirecionamento sejam iniciadas quando a aplicação está dentro de um iframe. Defina este flag para true remover esta verificação. Booleano false
cryptoOptions Objeto de configuração para operações criptográficas no navegador. Ver Opções de Configuração Cripto Ver Opções de Configuração Cripto
pollIntervalMilliseconds Intervalo de tempo em milissegundos entre polls do hash do URL popup durante a autenticação. inteiro (milissegundos) 30
protocolMode Enum representa o modo de protocolo a utilizar. Se "AAD", MSAL funciona nos endpoints AAD compatíveis com OIDC v2; se "OIDC", funciona noutros endpoints compatíveis com OIDC. cadeia (de caracteres) "AAD"

Opções de Configuração do Logger

Option Description Formato Valor padrão
loggerCallback Função de callback que gere o registo das instruções MSAL. Função - loggerCallback: (level: LogLevel, message: string, containsPii: boolean): void Ver acima.
piiLoggingEnabled Se for verdade, informações pessoais identificáveis (PII) são incluídas nos registos. Booleano false

Opções de Configuração Cripto

Option Description Formato Valor padrão
useMsrCrypto Se deve usar o MSR Crypto se estiver disponível no navegador (e outras interfaces criptográficas não estão disponíveis). Booleano false
entropy Valores aleatórios criptograficamente fortes usados para seed MSR Crypto (por exemplo, crypto.randomBytes(48) a partir de Node). Recomenda-se 48 bits de entropia. É obrigatório se useMsrCrypto estiver ativado. Uint8Array undefined

Opções de Configuração de Telemetria

Option Description Formato Valor padrão
application Opções de telemetria para aplicações que utilizam MSAL.js Ver abaixo Ver abaixo
client Instância cliente de desempenho de telemetria IPerformanceClient StubPerformanceClient

Telemetria de Aplicação

Option Description Formato Valor padrão
appName Nome único de cadeia de uma aplicação cadeia (de caracteres) Fio vazio ""
appVersion Versão da aplicação usando MSAL cadeia (de caracteres) Fio vazio ""