Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как инициализировать ConfidentialClientApplication объект в MSAL Node. Вы узнаете, как безопасно использовать секреты и сертификаты, а также как настроить центр сертификации.
Необходимые условия
Прежде чем инициализировать приложение, сначала необходимо зарегистрировать его в Центр администрирования Microsoft Entra, установив связь доверия между приложением и платформа удостоверений Майкрософт.
После регистрации приложения вам потребуется некоторые или все следующие значения, которые можно найти в Центр администрирования Microsoft Entra.
| Ценность | Обязательный | Description |
|---|---|---|
| Идентификатор приложения (клиента) | Обязательный | GUID, который однозначно идентифицирует ваше приложение на платформе идентификации Microsoft. |
| Авторитет | Optional | URL-адрес поставщика удостоверяющих данных ( instance) и аудитория для входа для вашего приложения. Экземпляр и аудитория входа в систему при объединении составляют центр авторизации. |
| ИД каталога (арендатора) | Optional | Укажите идентификатор каталога (клиента), если вы создаете бизнес-приложение исключительно для вашей организации, часто называемое однотенантным приложением. |
| Перенаправляющий URI | Optional | Если вы разрабатываете веб-приложение, элемент redirectUri указывает, куда поставщик удостоверений (платформа удостоверений Майкрософт) должен возвращать выданные им токены безопасности. |
Инициализация ConfidentialClientApplication объекта
Чтобы использовать MSAL Node, необходимо создать экземпляр объекта ConfidentialClient .
Безопасное использование секретов и сертификатов
Секреты никогда не должны быть жестко закодированы. Пакет dotenv npm можно использовать для хранения секретов или сертификатов в env-файле (расположен в корневом каталоге проекта), который должен быть включен в gitignore , чтобы предотвратить случайные отправки секретов.
Сертификаты также можно считывать из файлов с помощью модуля fs NodeJS. Однако они никогда не должны храниться в каталоге проекта. Рабочие приложения должны получать сертификаты из Azure KeyVault или других защищенных хранилищ ключей.
Дополнительные сведения см. в сертификатах и секретах .
См. пример 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);
Обратитесь к разделу Распространённые проблемы при импорте сертификатов.
Основы конфигурации
Параметры конфигурации для узла имеют common параметры и specific пареметры для каждого потока проверки подлинности.
-
clientIdявляется обязательным для инициализации общедоступного клиентского приложения -
authorityпо умолчанию имеет значениеhttps://login.microsoftonline.com/common/, если пользователь не задаёт его при настройке - Учетные данные клиента являются обязательными для конфиденциальных клиентов. Учетные данные клиента могут быть следующими:
-
clientSecret— это секретная строка, созданная при регистрации приложения. -
clientCertificate— это сертификат, заданный для регистрации приложения.thumbprintSha256— это отпечаток сертификата X.509 SHA-256, аprivateKey— закрытый ключ в кодировке PEM.x5c— это необязательная цепочка сертификатов X.509, используемая в сценариях проверки подлинности субъекта или издателя. -
clientAssertion— это объект ClientAssertion, содержащий строку утверждения или функцию обратного вызова, возвращающую строку утверждения, которую приложение использует при запросе токена, а также тип утверждения (urn:ietf:params:oauth:client-assertion-type:jwt-bearer). Функция обратного вызова вызывается каждый раз, когда MSAL необходимо получить токен от эмитента токена. Разработчики приложений обычно должны использовать обратный вызов, так как срок действия утверждений истекает, а новые утверждения необходимо создать. Разработчики приложений отвечают за время существования утверждения. Используйте этот механизм, чтобы получить токены для последующего API с помощью учетных данных федеративного удостоверения.
-
Дополнительные параметры Конфигурации см. в разделе Конфигурация в MSAL Node.
Настроить центр сертификации
По умолчанию MSAL настраивается с клиентом common , который используется для мультитенантных приложений и приложений, разрешающих персональные учетные записи (а не B2C).
authority: 'https://login.microsoftonline.com/common/'
Если целевая аудитория приложения — один арендатор, необходимо указать authority с идентификатором вашего арендатора, как показано ниже:
authority: 'https://login.microsoftonline.com/{your_tenant_id}'