Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A Biblioteca de Autenticação da Microsoft (MSAL) Node pode utilizar o intermediário de autenticação do macOS para fornecer início de sessão único (SSO) e aquisição segura de tokens, utilizando contas conhecidas pelo sistema operativo. Este artigo explica o broker do macOS e como ativar e usar a autenticação intermediada no MSAL Node.
Para uma visão geral do suporte a corretores em todas as plataformas, consulte Usar o Nó MSAL com o Broker Nativo de Tokens.
O que é o broker macOS
No macOS, o broker de autenticação é fornecido pelo plug-in SSO Microsoft Enterprise para dispositivos Apple, que vem com a aplicação Portal da Empresa. O intermediário gere os procedimentos de autenticação e o ciclo de vida dos tokens para as contas associadas. Os principais benefícios incluem:
- Segurança reforçada. As melhorias de segurança são implementadas através de atualizações do corretor sem necessidade de alterações no código da aplicação. Os tokens de atualização estão ligados ao dispositivo e protegidos contra exfiltração.
- Integração com sistemas. Os utilizadores podem reutilizar contas existentes com sessão iniciada no Portal da Empresa, reduzindo a necessidade de voltar a introduzir as credenciais.
- Proteção de tokens. O intermediário garante que os tokens de atualização ficam associados ao contexto do dispositivo.
Plataformas e arquiteturas suportadas
| Component | Suportado |
|---|---|
| Arquitetura | ARM64 (Apple Silicon) e x64 (Intel) |
| Versão macOS | macOS 10.15 (Catalina) e posteriores |
Sugestão
Recomendamos a atualização para a versão mais recente do macOS para garantir a compatibilidade com as funcionalidades de segurança mais recentes e as funcionalidades do intermediário.
Pré-requisitos
- Node.js 18 ou posterior
- Instalar
@azure/msal-node-extensionscomo uma dependência - O dispositivo deve ser inscrito através do Portal da Empresa. Após a inscrição, verifique se outras aplicações da Microsoft conseguem iniciar sessão através da extensão SSO (por exemplo, pode iniciar sessão no Word através do Portal da Empresa).
- Registe o URI de redirecionamento do corretor no registo da tua aplicação. Para os valores de URI suportados, veja Redirecionar URI.
Redirecionar URL
Para os fluxos do broker no macOS, tem de registar um URI de redirecionamento específico da plataforma na plataforma Aplicações móveis e de ambiente de trabalho no portal do Azure.
Para aplicações não assinadas (scripts, ferramentas CLI):
Utilize o seguinte URI de redirecionamento para aplicações não assinadas, como scripts e ferramentas de linha de comandos (CLI):
msauth.com.msauth.unsignedapp://auth
Para aplicações assinadas/agrupadas:
Use o seguinte formato de URI de redirecionamento para aplicações assinadas ou agrupadas:
msauth.<your-bundle-id>://auth
Substitua <your-bundle-id> pelo identificador Apple bundle da sua aplicação (por exemplo, msauth.com.example.myapp://auth).
Importante
O URI de redirecionamento de corretores deve ser usado apenas para fluxos de corretores. Se a sua aplicação também usar fluxos de autenticação baseados em navegador, use um URI de redirecionamento separado para esses. Se o broker redirecionar o URI para um fluxo baseado no navegador, resultará num erro.
Ativar a funcionalidade
Ativar o broker do macOS requer a mesma configuração do Windows. 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 baseado no navegador se o corretor não estiver disponível. Só ative a autenticação intermediária em ambientes que suportem o broker para evitar falhas inesperadas.
Obter tokens
Aquisição interativa de tokens
Use acquireTokenInteractive para pedir um token através do broker macOS:
const tokenRequest = {
scopes: ["User.Read"],
};
const result = await pca.acquireTokenInteractive(tokenRequest);
console.log("Access token:", result.accessToken);
Aquisição silenciosa de token
Após um início de sessão interativo inicial, os pedidos subsequentes de tokens podem ser efetuados de forma silenciosa:
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 em cache de tokens
O intermediário de autenticação gere o armazenamento em cache de tokens de atualização e de acesso. Os tokens adquiridos através do corretor são geridos pelo próprio corretor e estão ligados ao dispositivo. Não precisas de configurar cache personalizada ao usar o broker.
Diferenças ao usar o broker macOS
- Quando o broker precisa de pedir interação, aparece um diálogo nativo de autenticação do macOS. Isto altera a experiência do utilizador (UX) em comparação com a autenticação baseada no navegador.
- O
forceRefreshparâmetro paraacquireTokenSilentnão é suportado. Pode receber um token em cache do corretor independentemente desta bandeira. - A prova de posse (PoP) do token de acesso é suportada através do mediador.
Limitações
- As autoridades Azure AD B2C e Serviços de Federação do Active Directory (AD FS) (AD FS) não são suportadas através do broker macOS.
- Os fornecedores de identidade de terceiros (IDPs) não são suportados.
- O Portal da Empresa deve ser instalado e o dispositivo deve estar inscrito para que o corretor funcione.
-
msal-nodenão recorre a um navegador se o corretor não estiver disponível. Só ative o corretor em ambientes que o suportem.