Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Когда приложение размещено в Azure (с использованием таких служб, как Azure App Service, Azure Functions или Azure Container Apps), вы можете использовать управляемую идентификацию для безопасной аутентификации вашего приложения для доступа к ресурсам Azure.
Управляемое удостоверение предоставляет идентичность вашему приложению, что позволяет ему подключаться к другим ресурсам Azure без необходимости использования секрета (например, строки подключения или ключа). Внутренняя система Azure распознает удостоверение вашего приложения и знает, к каким ресурсам оно имеет право доступа. Azure использует эти сведения для автоматического получения маркеров Microsoft Entra для приложения, что позволяет подключаться к другим ресурсам Azure без необходимости управлять секретами проверки подлинности (создавать или менять).
Типы управляемых удостоверений
Существует два типа управляемых удостоверений:
- Назначаемые системой управляемые удостоверения — один ресурс Azure
- Назначаемые пользователем управляемые удостоверения — несколько ресурсов Azure
В этой статье рассматриваются действия по включению и использованию управляемого удостоверения, назначаемого системой, для приложения. Если вам нужно использовать управляемое удостоверение, назначаемое пользователем, см. статью "Управление назначаемыми пользователем управляемыми удостоверениями ", чтобы узнать, как создать управляемое удостоверение, назначаемое пользователем.
Назначаемые системой управляемые удостоверения для одного ресурса
Назначаемые системой управляемые удостоверения предоставляются и привязаны непосредственно к ресурсу Azure. При включении управляемого удостоверения в ресурсе Azure вы получите назначаемое системой управляемое удостоверение для этого ресурса. Управляемая идентификация привязана к жизненному циклу ресурса Azure. При удалении ресурса Azure автоматически удаляет удостоверение личности. Так как необходимо включить управляемое удостоверение для ресурса Azure, в котором размещен код, этот тип удостоверения является самым простым типом управляемого удостоверения для использования.
Назначаемые пользователем управляемые удостоверения для нескольких ресурсов
Назначенное пользователем управляемое удостоверение является автономным ресурсом Azure. Этот тип удостоверения чаще всего используется, если решение имеет несколько рабочих нагрузок, которые выполняются в нескольких ресурсах Azure, которые должны совместно использовать одинаковые удостоверения и одинаковые разрешения. Например, предположим, что решение включает приложения, которые выполняются в нескольких экземплярах службы приложений и виртуальных машин. Все приложения должны получить доступ к одному набору ресурсов Azure. Создание и использование пользовательского управляемого удостоверения для этих ресурсов является лучшим вариантом проектирования.
1. Включить системно назначаемую управляемую идентичность в размещенном приложении
Первым шагом является включение управляемого удостоверения в ресурсе Azure, на котором размещено приложение. Например, если вы размещаете приложение Express.js с помощью Службы приложений Azure, необходимо включить управляемое удостоверение для этого веб-приложения службы приложений. Если вы используете виртуальную машину для размещения приложения, вы можете включить ее для использования управляемого удостоверения.
Вы можете включить управляемое удостоверение для ресурса Azure через портал Azure или с помощью Azure CLI.
2. Назначение ролей управляемому удостоверению
Затем необходимо определить, какие роли (разрешения) требуется вашему приложению, и назначить управляемое удостоверение этим ролям в Azure. Управляемому удостоверению можно назначить роли на уровне ресурса, группы ресурсов или области подписки. В этом примере показано, как назначать роли в области группы ресурсов, поскольку большинство приложений группирует все свои ресурсы Azure в одну группу ресурсов.
3. Реализация DefaultAzureCredential в приложении
DefaultAzureCredential автоматически определяет использование управляемого удостоверения и использует его для аутентификации в других ресурсах Azure. Как описано в статье обзор библиотеки удостоверений Azure для проверки подлинности JavaScript,DefaultAzureCredential
поддерживает несколько методов проверки подлинности и определяет используемый метод во время выполнения. Таким образом, приложение может использовать различные методы проверки подлинности в разных средах без реализации кода для конкретной среды.
Сначала добавьте пакет @azure/identity в приложение.
npm install @azure/identity
Затем для любого кода JavaScript, создающего клиентский объект Azure SDK в приложении, необходимо выполнить следующие действия.
-
DefaultAzureCredential
Импортируйте класс из@azure/identity
модуля. - Создание объекта
DefaultAzureCredential
. - Передайте объект конструктору
DefaultAzureCredential
клиентского объекта пакета SDK Azure.
Пример этих шагов показан в следующем сегменте кода.
// connect-with-default-azure-credential.js
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config'
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
new DefaultAzureCredential()
);