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.
Warning
Antes de começares aqui, certifica-te de que compreendes o Uso de credenciais de certificado com MSAL Node.
A autenticação SNI (Subject Name/Issuer) permite que uma aplicação autentique usando um certificado público de uma CA confiável pré-determinada para suportar cenários complexos de rollover de certificados. Utiliza o parâmetro de cabeçalho X5C para fornecer o certificado ao servidor.
Os utilizadores internos devem seguir as instruções no wiki interno do Microsoft Entra para configurar o respetivo ambiente do Microsoft Entra para suportar SNI.
x5c Reivindicação
Terá de fornecer ao objeto de configuração do MSAL, no campo clientCertificate.x5c, a cadeia de caracteres do seu certificado codificado em pem, além de fornecer clientCertificate.thumbprintSha256 e clientCertificate.privateKey:
Exemplo x5c de cadeia de um .pem ficheiro:
-----BEGIN CERTIFICATE-----
<cert1>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<cert2>
-----END CERTIFICATE-----
// ...
Ver também: Certificados: conversão de pfx para pem
Configuração do aplicativo
Utilização segura de segredos e certificados
Segredos nunca devem ser codificados fixamente. O pacote dotenv npm pode ser usado para armazenar segredos ou certificados num ficheiro .env (localizado na pasta raiz do projeto) que deve ser incluído no .gitignore para evitar uploads acidentais dos segredos.
Os certificados também podem ser lidos a partir de ficheiros através do módulo fs do NodeJS. No entanto, nunca devem ser armazenados no diretório do projeto. As aplicações de produção devem obter certificados do Azure KeyVault ou de outros cofres de chaves seguros.
Por favor, consulte certificados e segredos para mais informações.
Veja o exemplo de MSAL: auth-code-with-certs
O excerto abaixo demonstra como inicializar a MSAL para autenticação por Nome de Sujeito / 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);
Problemas comuns
Por favor, consulte Questões comuns ao importar certificados.