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.
Este artigo mostra-lhe como inicializar o ConfidentialClientApplication objeto no MSAL Node. Vais aprender a usar segredos e certificados de forma segura, e a configurar a autoridade.
Pré-requisitos
Antes de inicializar uma aplicação, precisa primeiro de a registar no centro de administração Microsoft Entra, estabelecendo uma relação de confiança entre a sua aplicação e a plataforma de identidades da Microsoft.
Depois de registar a sua aplicação, precisará de alguns ou todos os valores seguintes que podem ser encontrados no centro de administração Microsoft Entra.
| Value | Obrigatório | Description |
|---|---|---|
| ID do aplicativo (cliente) | Obrigatório | Um GUID que identifica de forma única a sua aplicação dentro da plataforma de identidades da Microsoft. |
| Autoridade | Optional | O URL do fornecedor de identidade (a instância) e o público de início de sessão da sua aplicação. A instância e o público de iniciação de sessão, quando concatenados, constituem a autoridade. |
| ID da diretoria (tenant) | Optional | Especifique o ID do diretório (locatário) se estiver a criar uma aplicação empresarial exclusivamente para a sua organização, frequentemente designada por uma aplicação de locatário único. |
| Redirecionar URL | Optional | Se estiver a criar uma aplicação Web, o redirectUri especifica onde o fornecedor de identidade (a plataforma de identidade da Microsoft) deve devolver os tokens de segurança que emitiu. |
Inicialização do ConfidentialClientApplication objeto
Para usar o MSAL Node, é necessário instanciar um objeto ConfidentialClient .
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
import * as msal from "@azure/msal-node";
import "dotenv/config"; // process.env now has the values defined in a .env file
const clientAssertionCallback = async (config) => {
// network request that uses config.clientId and (optionally) config.tokenEndpoint
const result = await Promise.resolve(
"network request which gets assertion"
);
return result;
};
const clientConfig = {
auth: {
clientId: "your_client_id",
authority: "your_authority",
clientSecret: process.env.clientSecret, // OR
clientCertificate: {
thumbprintSha256: process.env.thumbprint,
privateKey: process.env.privateKey,
}, // OR
clientAssertion: clientAssertionCallback, // or a predetermined clientAssertion string
},
};
const cca = new msal.ConfidentialClientApplication(clientConfig);
Por favor, consulte Questões comuns ao importar certificados.
Noções básicas de configuração
As opções de configuração para nó têm common parâmetros e specific parâmetros por fluxo de autenticação.
-
clientIdé obrigatório para inicializar uma aplicação pública de cliente -
authorityassume por defeito o valor dehttps://login.microsoftonline.com/common/se o utilizador não o definir durante a configuração - Uma credencial de Cliente é obrigatória para clientes confidenciais. Credencial de cliente pode ser uma:
-
clientSecreté uma string secreta gerada e definida no registo da aplicação. -
clientCertificateé um certificado definido no registo da aplicação. OthumbprintSha256é uma impressão digital SHA-256 X.509 do certificado, e aprivateKeyé a chave privada codificada em PEM.x5cé a cadeia opcional de certificados X.509 utilizada em cenários de autenticação baseados no nome do titular/do emitente. -
clientAssertioné um objeto ClientAssertion que contém uma cadeia de caracteres de asserção ou uma função de retorno de chamada que devolve uma cadeia de caracteres de asserção que a aplicação usa ao solicitar um token, bem como o tipo da asserção (urn:ietf:params:oauth:client-assertion-type:jwt-bearer). O callback é invocado sempre que a MSAL precisa de adquirir um token do emissor do token. Os programadores de aplicações devem geralmente usar o callback porque as asserções expiram e é necessário criar novas asserções. Os programadores de aplicações são responsáveis pela vida útil da asserção. Use este mecanismo para obter tokens para uma API posterior usando uma Credencial de Identidade Federada.
-
Para mais opções sobre Configuração , consulte Configuração no Nó MSAL.
Configurar Autoridade
Por predefinição, o MSAL é configurado com o inquilino common, que é utilizado para aplicações multi-inquilino e aplicações que permitem contas pessoais (não B2C).
authority: 'https://login.microsoftonline.com/common/'
Se o público da sua candidatura for um único inquilino, deve fornecer uma autoridade com o seu ID de inquilino, conforme abaixo:
authority: 'https://login.microsoftonline.com/{your_tenant_id}'