Поделиться через


Проверка подлинности приложений Go в службах Azure с помощью библиотеки удостоверений Azure

Приложения могут использовать библиотеку удостоверений Azure для проверки подлинности в идентификаторе Microsoft Entra, который предоставляет доступ к службам и ресурсам Azure. Это требование проверки подлинности применяется, развертывается ли приложение в Azure, размещено локально или работает локально на рабочей станции разработчика. В следующих разделах описаны рекомендуемые подходы к проверке подлинности приложения в идентификаторе Microsoft Entra в разных средах при использовании клиентских библиотек пакета SDK Azure.

Аутентификация на основе токенов с помощью Microsoft Entra ID — это рекомендуемый подход для аутентификации приложений в Azure вместо использования строк подключения или параметров на основе ключей. Модуль клиента удостоверений Azure для Go предоставляет проверку подлинности на основе маркеров и позволяет приложениям аутентифицироваться в ресурсах Azure, независимо от того, работают ли они локально, в Azure или на локальном сервере.

Преимущества проверки подлинности на основе токенов

Проверка подлинности на основе маркеров обеспечивает следующие преимущества по сравнению со строками подключения:

  • Проверка подлинности на основе маркеров гарантирует, что только определенные приложения, предназначенные для доступа к ресурсу Azure, могут сделать это, в то время как любой пользователь или любое приложение со строкой подключения может подключиться к ресурсу Azure.
  • Проверка подлинности на основе маркеров позволяет дополнительно ограничить доступ к ресурсам Azure только определенным разрешениям, необходимым для приложения. Этот подход следует принципу наименьшей привилегии. В отличие от этого, строка подключения предоставляет полные права ресурсу Azure.
  • При использовании управляемого удостоверения для проверки подлинности на основе маркеров Azure обрабатывает административные функции, поэтому вам не нужно беспокоиться о таких задачах, как защита или смена секретов. Эта функция делает приложение более безопасным, так как нет строки подключения или секрета приложения, которые могут быть скомпрометированы.
  • Строки подключения функционально эквивалентны учетным данным и требуют специальной обработки, чтобы предотвратить случайную утечку. Их необходимо хранить безопасно (например, в Azure Key Vault) и никогда не закодировать их в приложении или зафиксировать их в системе управления версиями. Инициатива Microsoft Secure Future Initiative (SFI) запрещает использование строк подключения и аналогичных долгосрочных секретов, так как их можно использовать для компрометации приложения, если ими не управлять тщательно.
  • Библиотека идентификационных данных Azure получает токены Microsoft Entra и управляет ими.

Ограничьте использование строк подключения сценариями, в которых проверка подлинности на основе токенов не является вариантом, начальными приложениями для доказательства концепции или прототипами разработки, которые не обращаются к продуктивным или конфиденциальным данным. По возможности используйте типы учетных данных в библиотеке удостоверений Azure для проверки подлинности в ресурсах Azure.

Проверка подлинности в разных средах

Тип проверки подлинности на основе маркеров, который приложение использует для проверки подлинности в ресурсах Azure, зависит от того, где работает приложение. На следующей схеме приведены рекомендации по различным сценариям и средам:

Диаграмма, показывающая рекомендуемые стратегии аутентификации с использованием токенов для приложения в зависимости от того, где оно работает.

Когда приложение:

Проверка подлинности для размещенных в Azure приложений

При размещении приложения в Azure он может использовать управляемые удостоверения для проверки подлинности в ресурсах Azure без необходимости управлять учетными данными. Существует два типа управляемых удостоверений: назначаемые пользователем и назначаемые системой.

Использование управляемого удостоверения, назначаемого пользователем

Вы создаете управляемое удостоверение, назначаемое пользователем, в качестве отдельного ресурса Azure. Ее можно назначить одному или нескольким ресурсам Azure, позволяя этим ресурсам совместно использовать одинаковые удостоверения и разрешения. Чтобы пройти проверку подлинности с помощью управляемого удостоверения, назначаемого пользователем, создайте удостоверение, назначьте его ресурсу Azure, а затем настройте приложение для использования этого удостоверения для проверки подлинности, указав его идентификатор клиента, идентификатор ресурса или идентификатор объекта.

Использование управляемого удостоверения, назначаемого системой

Вы включаете системно назначенное управляемое удостоверение непосредственно на ресурсе Azure. Идентификатор привязан к жизненному циклу этого ресурса и автоматически удаляется при удалении ресурса. Чтобы пройти проверку подлинности с помощью управляемого удостоверения, назначаемого системой, включите удостоверение в ресурсе Azure, а затем настройте приложение для использования этого удостоверения для проверки подлинности.

Проверка подлинности во время локальной разработки

Во время локальной разработки вы можете аутентифицироваться в ресурсах Azure с помощью учетных данных разработчика или учетной записи службы. Этот метод проверки подлинности позволяет протестировать логику проверки подлинности приложения без развертывания в Azure.

Использование учетных данных разработчика

Вы можете использовать собственные учетные данные Azure для проверки подлинности в ресурсах Azure во время локальной разработки. Как правило, вы используете средство разработки, например Azure CLI, которое может предоставить приложению необходимые маркеры для доступа к службам Azure. Этот метод удобно, но его следует использовать только для целей разработки.

Использование служебного принципала

Вы создаете учетную запись службы в клиенте Microsoft Entra, чтобы представлять приложение и использовать ее для проверки подлинности для доступа к ресурсам Azure. Вы можете настроить приложение для использования учетных данных сервисного принципала во время локальной разработки. Этот метод является более безопасным, чем использование учетных данных разработчика и ближе к тому, как приложение проходит проверку подлинности в рабочей среде. Однако это все еще менее идеально, чем использование управляемого удостоверения из-за необходимости секретов.

Проверка подлинности для приложений, размещенных в локальной среде

Для приложений, размещенных в локальной среде, можно использовать служебный принципал для аутентификации в Azure. Этот метод включает создание учетной записи службы в Microsoft Entra ID, назначение ей необходимых разрешений и настройку приложения, чтобы использовать ее учетные данные. С помощью этого метода локальное приложение может безопасно получить доступ к службам Azure.