Использование управляемого удостоверения
В этой статье показано, как создать и использовать управляемое удостоверение в Azure Web PubSub.
Внимание
Azure Web PubSub может поддерживать только одно управляемое удостоверение. Вы можете добавить удостоверение, назначаемое системой, или удостоверение, назначаемое пользователем.
Добавление назначаемого системой удостоверения
Чтобы настроить управляемое удостоверение в портал Azure, создайте экземпляр Azure Web PubSub и включите эту функцию.
В портал Azure создайте ресурс Web PubSub. Перейдите к ресурсу на портале.
В меню слева выберите "Удостоверение".
Выберите вкладку "Назначенная системой" и установите для параметра "Состояние включено". Выберите Сохранить.
Добавление назначаемого пользователем удостоверения
Чтобы создать ресурс Web PubSub с помощью назначаемого пользователем удостоверения, создайте удостоверение и добавьте идентификатор ресурса удостоверения в службу.
Создайте ресурс управляемого удостоверения, назначаемого пользователем.
В портал Azure создайте ресурс Web PubSub. Перейдите к ресурсу на портале.
В меню слева выберите "Удостоверение".
Перейдите на вкладку Назначаемое пользователем и нажмите Добавить.
Найдите созданное удостоверение и выберите его. Выберите Добавить.
Использование управляемого удостоверения в сценариях событий клиента
Azure Web PubSub — это полностью управляемая служба, поэтому вы не можете использовать управляемое удостоверение для получения маркеров вручную. Вместо этого, когда Web PubSub отправляет события обработчику событий, он использует управляемое удостоверение для получения маркера доступа. Затем служба задает маркер доступа в Authorization
заголовке HTTP-запроса.
Настройка проверки подлинности управляемого удостоверения для обработчика событий
Добавьте назначаемое системой удостоверение или удостоверение, назначаемое пользователем.
Перейдите к разделу "Настройка параметров концентратора " и добавьте или измените обработчик событий вышестоящего потока.
В разделе "Проверка подлинности" выберите "Использовать управляемое удостоверение", а затем установите флажок "Указать выданную аудиторию маркеров". Аудитория становится утверждением
aud
в маркере доступа. Утверждение может быть частью проверки для обработчика событий.Для проверки подлинности можно выбрать один из следующих вариантов:
- Используйте существующее приложение Microsoft Entra. Используется идентификатор приложения, выбранного вами.
- Используйте URI идентификатора приложения субъекта-службы.
Внимание
Использование пустого ресурса фактически получает целевой объект маркера для Microsoft Graph. В настоящее время Microsoft Graph включает шифрование маркеров, поэтому оно не поддерживается для приложения для проверки подлинности маркера, отличного от Microsoft Graph. Для представления вышестоящего целевого объекта всегда следует создать субъект-службу. Задайте значение идентификатора приложения или URI идентификатора приложения для созданного субъекта-службы.
Проверка подлинности в приложении Функции Azure
Вы можете легко настроить проверку доступа для приложения "Функции", не изменив код.
В портал Azure перейдите в приложение "Функции".
В меню слева выберите "Проверка подлинности".
Выберите " Добавить поставщика удостоверений".
На вкладке "Основные сведения" для поставщика удостоверений выберите Майкрософт.
Чтобы действие выполнялось, если запрос не прошел проверку подлинности, выберите вход с помощью идентификатора Microsoft Entra.
Вариант создания регистрации выбирается по умолчанию. Имя регистрации можно изменить. Дополнительные сведения о включении поставщика Microsoft Entra см. в разделе "Настройка службы приложение Azure" или приложения Функции Azure для использования входа в систему идентификатора Microsoft Entra.
Перейдите к ресурсу Web PubSub и добавьте назначаемое системой удостоверение или удостоверение, назначаемое пользователем.
В меню слева для ресурса Web PubSub выберите "Параметры".
Выберите "Изменить" , чтобы изменить параметры концентратора, а затем выберите "Изменить ", чтобы изменить параметры обработчика событий. В разделе "Проверка подлинности" выберите "Использовать управляемое удостоверение " и установите флажок "Выбрать из существующих приложений ". Выберите созданное приложение.
После настройки этих параметров приложение "Функции" отклоняет запросы, у которых нет маркера доступа в заголовке.
Проверка маркера доступа
Если вы не используете функцию веб-приложения службы приложение Azure или Функции Azure, можно также проверить маркер.
Маркер в заголовке Authorization
— это маркер доступа платформы удостоверений Майкрософт.
Чтобы проверить маркер доступа, приложение также должно проверить аудиторию и маркер подписи. Маркеры подписывания должны проверяться в отношении значений в документе обнаружения OpenID. Пример см. в независимой от клиента версии документа.
По промежуточному слоям Microsoft Entra есть встроенные возможности проверки маркеров доступа. Вы можете просмотреть наши примеры , чтобы найти тот, который написан на языке, который вы хотите использовать.
Мы предоставляем библиотеки и примеры кода, демонстрирующие обработку проверки маркеров. Для проверки веб-токена JSON (JWT) также доступны несколько партнерских библиотек с открытым кодом. Существует по крайней мере один вариант почти для каждой платформы и языка. Дополнительные сведения о библиотеках авторизации Microsoft Entra и примерах кода см. в платформа удостоверений Майкрософт библиотеках проверки подлинности.
Если узлы обработчика событий в Функции Azure или веб-приложения, можно легко настроить вход Microsoft Entra.
Использование управляемого удостоверения для ссылки на хранилище ключей
Web PubSub может получить доступ к хранилищу ключей, чтобы получить секрет с помощью управляемого удостоверения.
Добавьте назначаемое системой удостоверение или удостоверение, назначаемое пользователем для Azure Web PubSub.
В хранилище ключей предоставьте разрешения на чтение секрета для управляемого удостоверения с помощью политик доступа. Дополнительные сведения см. в статье "Назначение политики доступа к хранилищу ключей" в портал Azure.
В настоящее время эта функция может использоваться в следующем сценарии:
- Используйте синтаксис
{@Microsoft.KeyVault(SecretUri=<secret-identity>)}
для получения секретов из хранилища ключей в параметре шаблона URL-адреса обработчика событий.