Аутентификация на основе управляемых удостоверений

ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API

Используйте политику authentication-managed-identity для аутентификации внутренней службы с помощью управляемого удостоверения. Эта политика по сути использует управляемое удостоверение для получения маркера доступа из Microsoft Entra ID для доступа к указанному ресурсу. После успешного получения маркера политика задаст значение маркера в заголовке Authorization с помощью схемы Bearer. Управление API кэширует маркер до истечения срока его действия.

Для запроса маркера может использоваться удостоверение, назначаемое системой, и любое из нескольких удостоверений, назначаемых пользователем. Если client-id это не указано, предполагается, что назначаемое системой удостоверение. Если указана переменная client-id, маркер запрашивается для этого удостоверения, назначаемого пользователем, из Microsoft Entra ID.

Примечание.

Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.

Предостережение

Вопросы безопасности: Пользователи с разрешениями на изменение политик управления API могут использовать эту политику для проверки подлинности в качестве управляемого удостоверения службы. Однако они не могут получить прямой доступ к ресурсам, не назначив управляемому удостоверению экземпляру службы управления API. После назначения управляемого удостоверения пользователи, которые могут изменять политики, могут получить доступ к маркеру проверки подлинности, распространить его на серверную часть или записать его для последующего использования. Подробные рекомендации по безопасности и стратегии устранения рисков см. в статье "Рекомендации по обеспечению безопасности для управляемых удостоверений " в обзоре управляемого удостоверения.

Правило политики

<authentication-managed-identity resource="resource" client-id="clientid of user-assigned identity" output-token-variable-name="token-variable" ignore-error="true|false"/>  

Атрибуты

Атрибут Описание Обязательное поле По умолчанию.
ресурс Строка. Идентификатор приложения целевого веб-API (защищенного ресурса) в Microsoft Entra ID. Допустимы выражения политики. Да Н/П
идентификатор клиента Строка. Идентификатор клиента назначаемого пользователем удостоверения в Microsoft Entra ID. Выражения политики не допускаются. нет Недоступно Назначаемое системой удостоверение используется, если атрибут отсутствует.
output-token-variable-name Строка. Имя переменной контекста, которая получит значение токена в качестве объекта типа string. Выражения политики не допускаются. нет Н/П
ignore-error Логическое значение. Если задано значение true, конвейер политики продолжает выполняться, даже если маркер доступа не получен. нет false

Использование

Заметки об использовании

  • Если эта политика определена в глобальной области, полученный маркер будет доступен в контексте выполнения политики для всех API, в том числе в рабочих областях. Если маркер должен быть доступен только для определенных API, рассмотрите возможность применения политики в более узкой области (например, на уровне продукта или API), а не для глобальной политики.

  • Пересылка маркеров — это ответственность клиента. При оценке этой политики управление API получает маркер из Microsoft Entra ID и перенаправляет его в серверную as-is в заголовке Authorization. Управление API не проверяет, в какую серверную часть отправляется маркер. Это ответственность клиента, чтобы гарантировать, что маркеры перенаправляются только в предполагаемые и доверенные серверные службы. Тщательно настройте внутренние сущности и другие политики, чтобы предотвратить отправку маркеров в непреднамеренные назначения.

Примеры

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

<authentication-managed-identity resource="https://graph.microsoft.com"/> 
<authentication-managed-identity resource="https://cognitiveservices.azure.com"/> <!--Azure OpenAI-->
<authentication-managed-identity resource="https://management.azure.com/"/> <!--Azure Resource Manager-->
<authentication-managed-identity resource="https://vault.azure.net"/> <!--Azure Key Vault-->
<authentication-managed-identity resource="https://servicebus.azure.net/"/> <!--Azure Service Bus-->
<authentication-managed-identity resource="https://eventhubs.azure.net/"/> <!--Azure Event Hub-->
<authentication-managed-identity resource="https://storage.azure.com/"/> <!--Azure Blob Storage-->
<authentication-managed-identity resource="https://database.windows.net/"/> <!--Azure SQL-->
<authentication-managed-identity resource="https://signalr.azure.com"/> <!--Azure SignalR-->
<authentication-managed-identity resource="AD_application_id"/> <!--Application (client) ID of your own Azure AD Application-->

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

<authentication-managed-identity resource="AD_application_id"
   output-token-variable-name="msi-access-token" ignore-error="false" /> <!--Application (client) ID of your own Azure AD Application-->
<set-header name="Authorization" exists-action="override">
   <value>@("Bearer " + (string)context.Variables["msi-access-token"])</value>
</set-header>

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

<send-request mode="new" timeout="20" ignore-error="false">
    <set-url>https://example.com/</set-url>
    <set-method>GET</set-method>
    <authentication-managed-identity resource="ResourceID"/>
</send-request>

Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.