Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Во время локальной разработки приложения должны пройти проверку подлинности в Azure для использования различных служб Azure. Проверка подлинности локально с помощью одного из следующих подходов:
- Используйте учетную запись разработчика с одним из инструментов для разработчиков, поддерживаемых библиотекой удостоверений Azure.
- Используйте субъект-службу.
В этой статье объясняется, как пройти проверку подлинности с помощью учетной записи разработчика с инструментами, поддерживаемыми библиотекой удостоверений Azure. В следующих разделах вы узнаете:
- Использование групп Microsoft Entra для эффективного управления разрешениями для нескольких учетных записей разработчиков.
- Назначение ролей учетным записям разработчиков для определения области действия разрешений.
- Как войти в поддерживаемые локальные средства разработки.
- Как пройти проверку подлинности с помощью учетной записи разработчика из кода приложения.
Поддерживаемые средства разработчика для проверки подлинности
Чтобы приложение выполнило проверку подлинности в Azure во время локальной разработки с помощью учетных данных Azure разработчика, разработчик должен войти в Azure из одного из следующих средств разработчика:
- Azure CLI (Интерфейс командной строки для Azure)
- Azure Developer CLI (Интерфейс командной строки для разработчиков Azure)
- Azure PowerShell
Библиотека идентификации Azure может обнаружить, что разработчик вошел с помощью одного из этих инструментов. Затем библиотека может получить токен доступа Microsoft Entra с помощью инструмента для аутентификации приложения в Azure от имени авторизованного пользователя.
Этот подход использует существующие учетные записи Azure разработчика для упрощения процесса проверки подлинности. Однако учетная запись разработчика, скорее всего, имеет больше разрешений, чем требуется для приложения, поэтому превышает разрешения, с которыми приложение работает в продакшене. В качестве альтернативы, можно создавать учетные записи служб приложений, которые можно использовать во время локальной разработкии обладать только тем доступом, который необходим приложению.
Создание группы Microsoft Entra для локальной разработки
Создайте группу Microsoft Entra, чтобы объединять роли (разрешения), необходимые приложению при локальной разработке, а не назначать роли отдельным объектам службы-принципала. Этот подход обеспечивает следующие преимущества:
- Каждый разработчик имеет одинаковые роли, назначенные на уровне группы.
- Если для приложения требуется новая роль, ее необходимо только добавить в группу для приложения.
- Если новый разработчик присоединяется к команде, для разработчика создается новая учетная запись службы приложений и добавляется в группу, гарантируя, что разработчик имеет необходимые разрешения на работу с приложением.
Перейдите на страницу обзора идентификатора Microsoft Entra на портале Azure.
Выберите все группы в меню слева.
На странице Группы выберите Создать группу.
На странице "Создать группу" заполните следующие поля формы:
- Тип группы: Выберите безопасность .
- Имя группы: введите имя группы, которая содержит ссылку на имя приложения или среды.
- Описание группы: введите описание, объясняющее назначение группы.
Выберите ссылку "Нет участников" в разделе "Члены", чтобы добавить участников в группу.
На открывшейся всплывающей панели найдите созданную ранее основную служебную учетную запись и выберите её из результатов фильтрации. Нажмите кнопку "Выбрать " в нижней части панели, чтобы подтвердить выбор.
Нажмите кнопку "Создать " в нижней части страницы "Создать группу ", чтобы создать группу и вернуться на страницу "Все группы ". Если вы не видите новую группу, подождите минуту и обновите страницу.
Назначьте роли группе
Затем определите, какие роли (разрешения) приложения требуются для ресурсов и назначьте эти роли созданной группе Microsoft Entra. Группы можно назначить роль в ресурсе, группе ресурсов или области подписки. В этом примере показано, как назначать роли в области группы ресурсов, так как большинство приложений группируют все свои ресурсы Azure в одну группу ресурсов.
На портале Azure перейдите на страницу обзора группы ресурсов, содержащей приложение.
Выберите управление доступом (IAM) в левой панели навигации.
На странице управления доступом (IAM) выберите +Добавить , а затем выберите "Добавить назначение ролей " в раскрывающемся меню. Страница "Добавление назначения ролей " предоставляет несколько вкладок для настройки и назначения ролей.
На вкладке "Роль" используйте поле поиска, чтобы найти роль, которую вы хотите назначить. Выберите роль и нажмите кнопку "Далее".
На вкладке "Члены" :
- Чтобы назначить доступ к значению , выберите "Пользователь", "Группа" или "Субъект-служба ".
- Для значения "Члены" нажмите кнопку "Выбрать участников ", чтобы открыть панель всплывающего меню "Выбор участников ".
- Найдите созданную ранее группу Microsoft Entra и выберите ее из отфильтрованных результатов. Выберите команду "Выбрать ", чтобы выбрать группу и закрыть панель всплывающего меню.
- Выберите Обзор + Назначение внизу вкладки Члены.
На вкладке "Обзор и назначение" выберите "Обзор и назначение" в нижней части страницы.
Вход в Azure с помощью средств разработчика
Затем войдите в Azure с помощью одного из нескольких средств разработчика, которые можно использовать для проверки подлинности в среде разработки. Учетная запись, которую вы используете для аутентификации, также должна существовать в созданной и настроенной ранее группе Microsoft Entra.
Разработчики могут использовать Azure CLI для проверки подлинности. Приложения, использующие DefaultAzureCredential или AzureCLICredential , могут использовать эту учетную запись для проверки подлинности запросов приложений.
Чтобы выполнить проверку подлинности с помощью Azure CLI, выполните az login команду. В системе с веб-браузером по умолчанию Azure CLI запускает браузер для проверки подлинности пользователя.
az login
Для систем без веб-браузера по умолчанию команда az login использует поток проверки подлинности кода устройства. Вы можете принудительно указать Azure CLI использовать поток кода устройства, а не запускать браузер с аргументом --use-device-code.
az login --use-device-code
Авторизация в службах Azure из вашего приложения
Пакет azidentity предоставляет различные учетные данные, адаптированные для поддержки различных сценариев и потоков проверки подлинности Microsoft Entra. Ниже показано, как использовать DefaultAzureCredential при работе со служебными единицами локально и в продуктивной среде.
Реализация кода
Для проверки подлинности клиентских объектов Пакета SDK Azure в Azure приложение должно использовать класс DefaultAzureCredential. В этом сценарии DefaultAzureCredential последовательно проверяется, вошёл ли разработчик в Azure с помощью Azure CLI или Azure Developer CLI. Если разработчик входит в Azure с помощью одного из этих средств, приложение использует учетные данные для проверки подлинности.
DefaultAzureCredential — это упорядоченная последовательность механизмов проверки подлинности в идентификаторе Microsoft Entra. Каждый механизм проверки подлинности — это тип, реализующий TokenCredential интерфейс и известный как учетные данные.
DefaultAzureCredential последовательно проверяет, выполнил ли разработчик вход в Azure с помощью Azure CLI или Azure developer CLI. Если разработчик входит в Azure с помощью одного из этих средств, приложение использует учетные данные для проверки подлинности. Дополнительные сведения о настройке цепочки учетных данных см. в разделе "Настройка DefaultAzureCredential".
Добавьте
azidentityпакет в ваше приложение.go get github.com/Azure/azure-sdk-for-go/sdk/azidentityДля любого кода Go, создающего клиентский объект Azure SDK в приложении, необходимо:
- Импортируйте пакет
azidentity. - Используйте
DefaultAzureCredentialилиAzureCLICredential, чтобы создать экземпляр учетных данных. Рассмотрим пример.
Чтобы использовать
DefaultAzureCredential, задайте для переменнойAZURE_TOKEN_CREDENTIALSdevсреды значение, указывающее, что приложение работает в среде разработки. Дополнительные сведения см. в разделе "Настройка DefaultAzureCredential".// Environment variable AZURE_TOKEN_CREDENTIALS=dev or a specific developer tool credential value cred, err := azidentity.NewDefaultAzureCredential(nil)Или используйте определенные учетные данные, например
AzureCLICredential,AzureDeveloperCLICredentialилиAzurePowerShellCredentialдля проверки подлинности с помощью пользователя, выполнившего вход для определенного средства разработки.cred, err := azidentity.NewAzureCLICredential(nil) // or cred, err := azidentity.NewAzureDeveloperCLICredential(nil) // or cred, err := azidentity.NewAzurePowerShellCredential(nil)
- Передайте экземпляр учетных данных в конструктор клиента Azure SDK.
- Импортируйте пакет
Пример этих шагов показан в следующем сегменте кода.
import (
"context"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
const (
account = "https://<replace_with_your_storage_account_name>.blob.core.windows.net/"
containerName = "sample-container"
blobName = "sample-blob"
sampleFile = "path/to/sample/file"
)
func main() {
// create a credential
cred, err := azidentity.NewDefaultAzureCredential(nil)
// or cred, err := azidentity.NewAzureCLICredential(nil)
// or cred, err := azidentity.NewAzureDeveloperCLICredential(nil)
// or cred, err := azidentity.NewAzurePowerShellCredential(nil)
if err != nil {
// TODO: handle error
}
// create a client for the specified storage account
client, err := azblob.NewClient(account, cred, nil)
if err != nil {
// TODO: handle error
}
// TODO: perform some action with the azblob Client
// _, err = client.DownloadFile(context.TODO(), <containerName>, <blobName>, <target_file>, <DownloadFileOptions>)
}