Проверка подлинности размещенных в Azure приложений в ресурсах Azure с помощью пакета SDK Azure для .NET
Если приложение размещено в Azure с помощью службы, например службы приложение Azure, Azure Виртуальные машины или Экземпляры контейнеров Azure, рекомендуемый подход к проверке подлинности приложения в ресурсах Azure — использовать управляемое удостоверение.
Управляемое удостоверение предоставляет удостоверение для приложения, которое может подключаться к другим ресурсам Azure без необходимости использовать секретный ключ или другой секрет приложения. На внутреннем уровне Azure знает удостоверение приложения и какие ресурсы разрешено подключаться. Azure использует эти сведения для автоматического получения токенов Microsoft Entra для приложения, чтобы разрешить ему подключаться к другим ресурсам Azure без необходимости управлять секретами приложений.
Типы управляемых удостоверений
Существует два типа управляемых удостоверений:
- Назначаемые системой управляемые удостоверения. Этот тип управляемого удостоверения предоставляется и привязан непосредственно к ресурсу Azure. При включении управляемого удостоверения в ресурсе Azure вы получите назначаемое системой управляемое удостоверение для этого ресурса. Управляемое удостоверение, назначаемое системой, привязано к жизненному циклу ресурса Azure, с которым он связан. Поэтому при удалении ресурса Azure автоматически удаляет удостоверение. Так как необходимо включить управляемое удостоверение для ресурса Azure, в котором размещен код, это самый простой тип управляемого удостоверения.
- Назначаемые пользователем управляемые удостоверения . Вы также можете создать управляемое удостоверение в качестве автономного ресурса Azure. Это чаще всего используется при наличии нескольких рабочих нагрузок, выполняемых на нескольких ресурсах Azure, которые должны совместно использовать одно удостоверение и одинаковые разрешения. Например, если решение имело компоненты, работающие на нескольких Служба приложений и экземплярах виртуальных машин, которые все необходимые для доступа к одному набору ресурсов Azure, создание и использование управляемого удостоверения, назначаемого пользователем, в этих ресурсах имеет смысл.
В этой статье рассматриваются действия по включению и использованию управляемого удостоверения, назначаемого системой, для приложения. Если вам нужно использовать управляемое удостоверение, назначаемое пользователем, см. статью "Управление назначаемыми пользователем управляемыми удостоверениями ", чтобы узнать, как создать управляемое удостоверение, назначаемое пользователем.
1. Включение управляемого удостоверения в ресурсе Azure, в котором размещено приложение
Первым шагом является включение управляемого удостоверения в ресурсе Azure, в котором размещено приложение. Например, если вы размещаете приложение .NET с помощью службы приложение Azure, необходимо включить управляемое удостоверение для веб-приложения Служба приложений, в котором размещено приложение. Если вы использовали виртуальную машину для размещения приложения, вы позволите виртуальной машине использовать управляемое удостоверение.
Вы можете включить управляемое удостоверение для ресурса Azure с помощью портал Azure или Azure CLI.
2. Назначение ролей управляемому удостоверению
Затем необходимо определить, какие роли (разрешения) требуется вашему приложению, и назначить управляемое удостоверение этим ролям в Azure. Управляемое удостоверение можно назначить роли в ресурсе, группе ресурсов или подписке область. В этом примере показано, как назначать роли в группе ресурсов область, так как большинство приложений группируют все ресурсы Azure в одну группу ресурсов.
3. Реализация DefaultAzureCredential в приложении
DefaultAzureCredential
поддерживает несколько методов проверки подлинности и определяет метод проверки подлинности, используемый во время выполнения. Таким образом, приложение может использовать различные методы проверки подлинности в разных средах без реализации конкретного кода среды.
Порядок и расположения, в которых DefaultAzureCredential
поиск учетных данных найден в DefaultAzureCredential.
Чтобы реализовать DefaultAzureCredential
, сначала добавьте Azure.Identity
в приложение пакеты и при необходимости Microsoft.Extensions.Azure
. Это можно сделать с помощью командной строки или диспетчер пакетов NuGet.
Откройте среду терминала в каталоге проекта приложения и введите следующую команду.
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Службы Azure обычно обращаются с помощью соответствующих клиентских классов из пакета SDK. Эти классы и собственные пользовательские службы должны быть зарегистрированы в файле, чтобы их можно было получить с помощью внедрения зависимостей во Program.cs
всем приложении. В ней Program.cs
выполните приведенные ниже действия, чтобы правильно настроить службу и DefaultAzureCredential
.
Azure.Identity
Включите пространства имен сMicrosoft.Extensions.Azure
помощью инструкции using.- Зарегистрируйте службу Azure с помощью соответствующих вспомогательных методов.
- Передайте экземпляр
DefaultAzureCredential
объекта методуUseCredential
.
Пример этого показан в следующем сегменте кода.
using Microsoft.Extensions.Azure;
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddAzureClients(x =>
{
x.AddBlobServiceClient(new Uri("https://<account-name>.blob.core.windows.net"));
x.UseCredential(new DefaultAzureCredential());
});
Кроме того, вы также можете использовать DefaultAzureCredential
службы напрямую без помощи дополнительных методов регистрации Azure, как показано ниже.
using Azure.Identity;
// Inside of Program.cs
builder.Services.AddSingleton<BlobServiceClient>(x =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
При запуске приведенного выше кода на локальной рабочей станции во время локальной разработки он будет выглядеть в переменных среды для субъекта-службы приложений или в Visual Studio, VS Code, Azure CLI или Azure PowerShell для набора учетных данных разработчика, который можно использовать для проверки подлинности приложения в ресурсах Azure во время локальной разработки.
При развертывании в Azure этот же код также может пройти проверку подлинности приложения в других ресурсах Azure. DefaultAzureCredential
может получать параметры среды и конфигурации управляемых удостоверений для автоматической проверки подлинности в других службах.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по