Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Nó da Biblioteca de Autenticação da Microsoft (MSAL) pode usar o Logon Único da Microsoft para agente do Linux para fornecer logon único (SSO) e aquisição segura de tokens em distribuições do Linux com suporte. O agente gerencia os handshakes de autenticação e o ciclo de vida dos tokens, permitindo que os usuários se beneficiem da integração com contas já conhecidas pelo sistema.
Este artigo explica o que é o agente do Linux, as distribuições que ele dá suporte e como habilitar a aquisição de tokens agenciados em um aplicativo Node.js.
Para obter uma visão geral do suporte do broker em todas as plataformas, consulte Usando o MSAL Node com o Broker de Token Nativo.
O que é o broker no Linux
O logon único da Microsoft para Linux é um intermediário de autenticação distribuído independentemente da distribuição Linux. Instale-o com um gerenciador de pacotes (sudo apt install microsoft-identity-broker ou sudo dnf install microsoft-identity-broker). Ele também é agrupado como uma dependência de aplicativos Microsoft, como Portal da Empresa.
Os principais benefícios incluem:
- Logon único. Simplifica como os usuários se autenticam com Microsoft Entra ID e protege os tokens de atualização contra exfiltração e uso indevido.
- Segurança aprimorada. Melhorias de segurança são fornecidas por meio de atualizações do broker, sem exigir alterações no código do aplicativo.
- Proteção de token. O agente garante que os tokens de atualização sejam associados ao dispositivo.
- Integração do sistema. Os aplicativos se conectam ao seletor de conta interno, permitindo que os usuários selecionem rapidamente uma conta existente.
Distribuições com suporte
- Ubuntu 22.04 / 24.04 (x64)
- Red Hat Enterprise Linux (RHEL) 8/9 /10 (x64)
Pré-requisitos
- Node.js 18 ou posterior
- Instalar
@azure/msal-node-extensionscomo uma dependência -
microsoft-identity-brokerdeve ser instalado no dispositivo - Registre o URI de redirecionamento do broker no registro do seu aplicativo (consulte URI de redirecionamento abaixo)
- Instalar as dependências do sistema necessárias (consulte as dependências do sistema abaixo)
URI de redirecionamento
Para fluxos de agentes do Linux, registre o seguinte URI de redirecionamento na plataforma Aplicativos móveis e de área de trabalho no portal do Azure:
https://login.microsoftonline.com/common/oauth2/nativeclient
Dependências do sistema
Ubuntu 22.04/24.04
sudo apt install libsecret-1-0 libdbus-1-3
- libsecret — armazena e recupera com segurança tokens de autenticação por meio do chaveiro do sistema (chaveiro GNOME ou carteira KDE).
-
dbus — Comunicação entre processos com o agente de autenticação. Um barramento de sessão D-Bus deve estar em execução (padrão em ambientes de área de trabalho; servidores sem interface gráfica podem precisar de
dbus-run-sessionou equivalente).
sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0
- WebKitGTK — Fornece o navegador embutido para a interface interativa de login.
- GTK — O kit de ferramentas de interface do usuário subjacente exigido pelo WebKitGTK.
habilitar o recurso
A ativação do broker no Linux usa a mesma configuração usada no Windows e no macOS. Passe uma instância de NativeBrokerPlugin na configuração do broker:
import { PublicClientApplication, Configuration } from "@azure/msal-node";
import { NativeBrokerPlugin } from "@azure/msal-node-extensions";
const msalConfig: Configuration = {
auth: {
clientId: "your-client-id",
},
broker: {
nativeBrokerPlugin: new NativeBrokerPlugin(),
},
};
const pca = new PublicClientApplication(msalConfig);
Note
msal-node não recorre a um fluxo via navegador se o broker não estiver disponível. Habilite apenas a autenticação agenciada em dispositivos Linux com suporte para evitar falhas inesperadas.
Aquisição de tokens
Aquisição interativa de token
Use acquireTokenInteractive para solicitar um token por meio do agente do Linux:
const tokenRequest = {
scopes: ["User.Read"],
};
const result = await pca.acquireTokenInteractive(tokenRequest);
console.log("Access token:", result.accessToken);
Aquisição silenciosa de token
Após uma entrada interativa inicial, as solicitações de token subsequentes podem ser feitas silenciosamente:
const accounts = await pca.getAllAccounts();
if (accounts.length > 0) {
const silentRequest = {
scopes: ["User.Read"],
account: accounts[0],
};
const result = await pca.acquireTokenSilent(silentRequest);
console.log("Access token (silent):", result.accessToken);
}
Armazenamento de token em cache
O intermediário de autenticação gerencia o cache dos tokens de atualização e de acesso. Os tokens adquiridos por meio do agente são gerenciados pelo próprio agente e são associados ao dispositivo. Você não precisa configurar o cache personalizado ao usar o broker.
Diferenças ao usar o broker do Linux
- Quando o broker precisar solicitar a interação do usuário, uma caixa de diálogo nativa de login (baseada em WebKitGTK) será exibida. Isso altera a experiência do usuário (UX) em comparação com a autenticação baseada em navegador.
- O parâmetro
forceRefreshparaacquireTokenSilentnão tem suporte. Você pode receber um token armazenado em cache do broker, independentemente dessa sinalização. - Um barramento de sessão D-Bus deve estar em execução para que a comunicação com o agente funcione.
Limitations
- As autoridades do Azure AD B2C e do Serviços de Federação do Active Directory (AD FS) não têm suporte por meio do agente do Linux.
- Não há suporte para IDPs (provedores de identidade de terceiros).
-
microsoft-identity-brokerdeve ser instalado no dispositivo para que o broker funcione. -
msal-nodenão retornará a um navegador se o agente não estiver disponível. Habilite o broker apenas em ambientes que o suportem. - Atualmente, não há suporte para prova de posse (PoP) do token de acesso por meio do agente do Linux.