Comportamento imediato com MSAL.js

MSAL.js permite passar um valor de prompt como parte de seus métodos de login ou solicitação de token. Com base no cenário do aplicativo, você pode personalizar o comportamento do prompt do Microsoft Entra para uma solicitação definindo o parâmetro prompt no objeto de solicitação:

import { PublicClientApplication } from "@azure/msal-browser";

const pca = new PublicClientApplication({
    auth: {
        clientId: "YOUR_CLIENT_ID"
    }
});

const loginRequest = {
    scopes: ["user.read"],
    prompt: 'select_account',
}

pca.loginPopup(loginRequest)
    .then(response => {
        // do something with the response
    })
    .catch(error => {
        // handle errors
    });

Valores de prompt suportados

Os seguintes valores de prompt podem ser usados ao autenticar com a plataforma de identidade da Microsoft:

Parâmetro Comportamento
login Força o usuário a inserir suas credenciais nessa solicitação, negando o logon único.
none Garante que o usuário não receba nenhum prompt interativo. Se a solicitação não puder ser concluída silenciosamente usando o logon único, a plataforma de identidade da Microsoft retornará um erro login_required ou interaction_required .
consent Aciona a caixa de diálogo de consentimento OAuth depois que o usuário entra, solicitando que o usuário conceda permissões ao aplicativo.
select_account Interrompe o logon único fornecendo uma experiência de seleção de conta listando todas as contas na sessão ou uma opção para escolher uma conta completamente diferente.
create Aciona uma caixa de diálogo de inscrição que permite que usuários externos criem uma conta. Para obter mais informações, consulte: Inscrição de autoatendimento

MSAL.js lançará um invalid_prompt erro para quaisquer valores de prompt não suportados:

invalid_prompt_value: Supported prompt values are 'login', 'select_account', 'consent', 'create' and 'none'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest Given value: my_custom_prompt

Valores de prompt padrão

A seguir mostra os valores de prompt padrão que o MSAL.js usa:

Método MSAL.js Prompt padrão Prompts permitidos
loginPopup N/D Qualquer
loginRedirect N/D Qualquer
ssoSilent none N/D (ignorado)
acquireTokenPopup N/D Qualquer
acquireTokenRedirect N/D Qualquer
acquireTokenSilent none N/D (ignorado)

Nota

Observe que prompt é um parâmetro de nível de protocolo e sinaliza o comportamento de autenticação desejado para o provedor de identidade. Isso não afeta o comportamento .js MSAL e o MSAL.js não tem controle sobre como o serviço irá lidar com a solicitação. Na maioria das circunstâncias, o Microsoft Entra ID tentará honrar a solicitação. Se isso não for possível, ele pode retornar uma resposta de erro ou ignorar completamente o valor de prompt fornecido.

Solicitações interativas com prompt=none

Geralmente, quando você precisar fazer uma solicitação silenciosa, use um método MSAL silencioso.js (, ) e trate quaisquer erros login_required ou interaction_required com um método interativo (loginPopupssoSilent, , , acquireTokenPopupacquireTokenRedirectacquireTokenSilentloginRedirect).

Em alguns casos, no entanto, o valor none de prompt pode ser usado em conjunto com um método MSAL interativo.js para obter autenticação silenciosa. Por exemplo, devido às restrições de cookies de terceiros em alguns navegadores, ssoSilent as solicitações falharão apesar de uma sessão de usuário ativa com o Microsoft Entra ID. Como solução, você pode passar o valor none de prompt para uma solicitação interativa, como loginPopup. O MSAL.js abrirá uma janela pop-up para o Microsoft Entra ID e o Microsoft Entra ID honrará o valor do prompt utilizando o cookie de sessão existente. Nesse caso, o usuário verá uma breve janela pop-up, mas não será solicitada uma entrada de credencial.

Próximos passos