Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функции Azure предоставляют управляемое удостоверение, которое является готовым решением для защиты доступа к Базе данных SQL Azure и другим службам Azure. Управляемые удостоверения делают ваше приложение более безопасным, устраняя из него конфиденциальные данные, такие как учетные данные в строках подключения. В этом руководстве вы добавите управляемое удостоверение в приложение-функцию, использующее Azure SQL bindings.
В этом учебном процессе используется управляемая идентичность, назначенная пользователем (UAMI), что рекомендуется так как она может использоваться между ресурсами и не зависит от жизненного цикла приложения. Для получения дополнительной информации о подключениях на основе идентичности в Функции Azure см. раздел «Configure connections to remote services».
После завершения этого учебника ваше функциональное приложение подключается к База данных SQL Azure без необходимости использовать имя пользователя и пароль.
Обзор ваших шагов:
Предоставление доступа к базе данных пользователю Microsoft Entra
Во-первых, включите аутентификацию Microsoft Entra в базу данных SQL, назначив пользователя Microsoft Entra администратором Active Directory сервера. Этот пользователь отличается от учетной записи Майкрософт, которую вы использовали для регистрации на подписку Azure. Он должен быть пользователем, которого вы создали, импортировали, синхронизировали или пригласили в Microsoft Entra ID. Дополнительные сведения о разрешенных пользователях Microsoft Entra см. в разделе о функциях и ограничениях Microsoft Entra в базе данных SQL.
Вы можете включить аутентификацию Microsoft Entra через портал Azure, PowerShell или Azure CLI. Инструкции по Azure CLI приведены в следующем разделе. Для получения информации о выполнении этой задачи через портал Azure и PowerShell см. документацию Azure SQL по аутентификации Microsoft Entra.
Если у клиента Microsoft Entra еще нет пользователя, создайте его, выполнив действия по добавлению или удалению пользователей с помощью идентификатора Microsoft Entra.
Найдите идентификатор объекта пользователя Microsoft Entra с помощью команды
az ad user listи замените <user-principal-name>. Сохраните результат в переменную.Для Azure CLI 2.37.0 и более новых версий:
azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].id --output tsv)Для более ранних версий Azure CLI:
azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].objectId --output tsv)Совет
Чтобы просмотреть список всех имен пользователей в Microsoft Entra ID, выполните команду
az ad user list --query [].userPrincipalName.Добавьте этого пользователя Microsoft Entra в качестве администратора Active Directory, используя
az sql server ad-admin createкоманду в Cloud Shell. В следующей команде замените <server-name> именем сервера (без суффикса.database.windows.net).az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id $azureaduser
Для получения дополнительной информации о добавлении администратора Active Directory см. раздел «Создание администратора Microsoft Entra для вашего сервера».
Создайте управляемую идентичность, назначаемую пользователем
Создайте управляемую личность, назначенную пользователем, и назначьте её своему функциональному приложению. Используйте идентификатор, назначенный пользователем, потому что вы можете использовать её повторно на нескольких ресурсах, и её жизненный цикл независим от вашего функционального приложения.
В портале Azure найдите Managed Identities и выберите Создать.
Выберите подписку, группу ресурсов, регион и дайте идентичности имя (например).
my-sql-identityВыберите Проверить и создать, а затем выберите Создать.
После создания идентификации перейдите к своему приложению-функции в портале.
В разделе «Настройки» выберите «Идентичность», а затем вкладку «Назначено пользователем ».
Выберите «Добавить», выберите управляемую личность, которую вы создали, и выберите «Добавить».
Совет
Вы также можете использовать управляемую идентификацию системного назначения. Если предпочитаете системное назначение, включите его на вкладке «Назначенное системой » на странице «Идентичность ». При использовании удостоверения, назначаемого системой, <identity-name> в SQL-командах обозначает имя вашего приложения-функции, и параметр User Id в строке подключения не нужен.
Предоставление управляемому удостоверению доступа к Базе данных SQL
На этом этапе подключитесь к базе данных SQL, используя учетную запись Microsoft Entra, и предоставите управляемой идентификации доступ к базе данных.
Откройте предпочитаемое SQL-средство и войдите в систему с помощью учетной записи пользователя Microsoft Entra, например учетной записи пользователя Microsoft Entra, которого вы назначили администратором. Этот шаг можно выполнить в Cloud Shell, используя команду SQLCMD.
sqlcmd -S <server-name>.database.windows.net -d <db-name> -U <aad-user-name> -P "<aad-password>" -G -l 30В командной строке SQL нужной базы данных выполните следующие команды, чтобы предоставить функции требуемые разрешения. Например,
CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [<identity-name>]; ALTER ROLE db_datawriter ADD MEMBER [<identity-name>]; GO<identity-name — это имя> управляемого удостоверения в Microsoft Entra ID. Для удостоверения, назначаемого пользователем, это имя совпадает с именем, которое вы присвоили удостоверению при его создании (например,
my-sql-identity). Для системной идентичности имя всегда совпадает с именем вашего функционального приложения.Note
Если вы используете триггер Azure SQL, управляемое удостоверение требует дополнительных разрешений за пределами
db_datareaderиdb_datawriter. Дополнительные сведения см. в разделе Предоставление разрешений для триггера Azure SQL.
Настройка строки подключения функции Azure SQL
На последнем этапе настройте функцию приложения SQL строка подключения для использования управляемой идентификационной аутентификации Microsoft Entra.
В коде функции вы указываете имя параметра строки подключения как атрибут привязки ConnectionStringSetting, как показано в атрибутах и аннотациях входной SQL-привязки.
В настройках приложения вашего функционального приложения обновите настройку SQL строка подключения, чтобы она следовала следующему формату:
Server=<server-name>.database.windows.net; Authentication=Active Directory Default; Database=<database-name>; User Id=<client-id-of-user-assigned-identity>
Замените <server-name> имя вашего сервера SQL, <database-name> имя базы данных и <client-id-of-user-assigned-identity> идентификатор клиента управляемой личности, назначенной пользователем. Идентификатор клиента можно найти на странице обзора управляемого ресурса идентичности в портале Azure.
Совет
Ключевое Active Directory Default слово для аутентификации работает как локально (с использованием учетных данных разработчика), так и в Azure (с использованием управляемой идентичности). Эта функция позволяет использовать одну и ту же строка подключения в обеих средах. Для управляемой идентичности, назначенной системой, опустите этот User Id параметр.
Для получения дополнительной информации о соединениях на основе идентичности см. раздел «Конфигурировать соединения с удалёными сервисами».