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.
Warning
Antes de começar aqui, certifique-se de entender como usar credenciais de certificado com o MSAL Node.
A autenticação SNI (Nome da Entidade/Emissor) permite que um aplicativo se autentique usando um certificado público de uma AC confiável predeterminada para dar suporte a cenários complexos de substituição de certificado. Ele usa o parâmetro de cabeçalho X5C para fornecer o certificado ao servidor.
Os usuários de primeira parte devem seguir as instruções no wiki de Microsoft Entra interno para configurar seu ambiente de Microsoft Entra para dar suporte ao SNI.
x5c declaração
Você precisará fornecer a cadeia de caracteres do seu certificado codificado pem ao objeto de configuração do MSAL no campo clientCertificate.x5c, além de fornecer clientCertificate.thumbprintSha256 e clientCertificate.privateKey:
Exemplo de string x5c de um arquivo .pem:
-----BEGIN CERTIFICATE-----
<cert1>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<cert2>
-----END CERTIFICATE-----
// ...
Veja também: Certificados: convertendo pfx em pem
Configuração do aplicativo
Usando segredos e certificados com segurança
Os segredos nunca devem ser codificados. O pacote dotenv npm pode ser usado para armazenar segredos ou certificados em um arquivo .env (localizado no diretório raiz do projeto) que deve ser incluído em .gitignore para evitar uploads acidentais dos segredos.
Os certificados também podem ser lidos de arquivos por meio do módulo fs do NodeJS. No entanto, eles nunca devem ser armazenados no diretório do projeto. Os aplicativos de produção devem buscar certificados de Azure KeyVault ou outros cofres de chaves seguros.
Consulte certificados e segredos para obter mais informações.
Confira o exemplo de MSAL: auth-code-with-certs
O trecho de código abaixo demonstra como inicializar o MSAL para autenticação de Nome do Assunto/Emissor (SNI):
var msal = require('@azure/msal-node');
require('dotenv').config(); // process.env now has the values defined in a .env file
const config = {
auth: {
clientId: "ENTER_CLIENT_ID",
authority: "https://login.microsoftonline.com/ENTER_TENANT_ID",
clientCertificate: {
thumbprintSha256: process.env.thumbprint, // a 64-digit hexadecimal string
privateKey: process.env.privateKey,
x5c: process.env.x5c
}
}
}
};
// Create msal application object
const cca = new msal.ConfidentialClientApplication(config);