Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни управления API
В этой статье вы узнаете о способах проверки подлинности и авторизации конечных точек API Azure OpenAI, управляемых с помощью Azure Управление API. В этой статье показаны следующие распространенные методы:
Проверка подлинности в API OpenAI Azure с помощью политик, которые аутентифицируются, используя либо ключ API, либо управляемую учетную запись Microsoft Entra ID.
Авторизация - Для более точного контроля доступа предварительно авторизуйте запросы, которые передают маркеры OAuth 2.0, созданные поставщиком удостоверений, таким как Microsoft Entra ID.
Для справки см. статью
Предварительные условия
Перед выполнением действий, описанных в этой статье, необходимо выполнить следующие действия.
- Экземпляр системы управления API. См. пример шагов в статье Создание экземпляра управления API Azure.
- Ресурс и модель Azure OpenAI добавлены в ваш экземпляр управления API. Например, см. инструкции по импорту API OpenAI Azure в качестве REST API.
- Разрешения на создание регистрации приложения у поставщика удостоверений, например, у клиента Microsoft Entra, связанного с вашей подпиской на Azure (для авторизации OAuth 2.0).
Аутентификация с помощью ключа API
По умолчанию для проверки подлинности в API OpenAI Azure используется ключ API. Для этого типа проверки подлинности все запросы API должны содержать допустимый ключ API в заголовке api-key HTTP.
- Управление API может безопасно управлять ключом API с помощью именованного значения.
- Затем именованное значение можно использовать в политике API, чтобы задать
api-keyзаголовок в запросах к API OpenAI Azure. Мы предоставляем два примера того, как это сделать: один используетset-backend-serviceполитику, а другой используетset-headerполитику.
Хранение ключа API в именованном значении
- Получите ключ API из ресурса Azure OpenAI. На портале Azure найдите ключ на странице «Ключи и конечная точка» ресурса Azure OpenAI.
- Перейдите к экземпляру управления API и в левом меню выберите Именованные значения.
- Выберите +Добавить и добавьте значение в качестве секрета или дополнительно для повышения безопасности используйте ссылку на хранилище ключей.
Передача ключа API в запросах к API — политика настройки службы бэкенда.
Создайте бэкенд, который указывает на Azure OpenAI API.
- В меню слева экземпляра управления API выберите бэкенды.
- Выберите +Добавить и введите описательное имя серверной части. Пример: openai-backend.
- В разделе " Тип" выберите "Пользовательский" и введите URL-адрес конечной точки Azure OpenAI. Пример:
https://contoso.openai.azure.com/openai. - В разделе учетные данные авторизации выберите заголовки и введите api-key в качестве имени заголовка и именованное значение в качестве значения.
- Нажмите кнопку создания.
Добавьте следующий
set-backend-serviceфрагмент политики вinboundраздел политики, чтобы передать ключ API в запросах к API OpenAI Azure.В этом примере серверный ресурс — это openai-backend.
<set-backend-service backend-id="openai-backend" />
Передача ключа API в запросах API — политика установки заголовков
Кроме того, добавьте следующий set-header фрагмент политики в inbound раздел политики, чтобы передать ключ API в запросах к API Azure OpenAI. Этот фрагмент политики задает api-key заголовок с именованным значением, которое вы установили.
В этом примере именованное значение в Управлении API — openai-api-key.
<set-header name="api-key" exists-action="override">
<value>{{openai-api-key}}</value>
</set-header>
Аутентифицироваться с помощью управляемой идентичности
Альтернативным и рекомендуемым способом проверки подлинности в API OpenAI Azure является использование управляемого удостоверения в идентификаторе Microsoft Entra. Для получения дополнительной информации см. Как настроить Службу Azure OpenAI с управляемым удостоверением.
Ниже приведены шаги по настройке экземпляра API Management для использования управляемого удостоверения для аутентификации запросов к Azure OpenAI API.
Включите управляемую идентификацию, назначаемую системой или пользователем, для вашего экземпляра API Management. В следующем примере предполагается, что вы включили управляемое удостоверение, назначенное системой.
Назначьте управляемому удостоверению роль пользователя Cognitive Services OpenAI с областью действия, соответствующей ресурсу. Например, назначьте управляемому удостоверению, назначаемому системой, роль пользователя OpenAI Cognitive Services на ресурсе Azure OpenAI. Подробные инструкции см. в статье "Управление доступом на основе ролей" для службы Azure OpenAI.
Добавьте следующий фрагмент политики в
inboundраздел политики для проверки подлинности запросов к API Azure OpenAI с помощью управляемого удостоверения.В этом примере:
- Политика
authentication-managed-identityполучает токен доступа для управляемого удостоверения. - Политика
set-headerзадаетAuthorizationзаголовок запроса с помощью маркера доступа.
<authentication-managed-identity resource="https://cognitiveservices.azure.com" output-token-variable-name="managed-id-access-token" ignore-error="false" /> <set-header name="Authorization" exists-action="override"> <value>@("Bearer " + (string)context.Variables["managed-id-access-token"])</value> </set-header>- Политика
Подсказка
Альтернативой использованию authentication-managed-identity и set-header политикам, приведенным в этом примере, является настройка внутреннего ресурса, который направляет запросы API к конечной точке Службы OpenAI Azure. В конфигурации серверной части включите аутентификацию с помощью управляемого удостоверения для службы Azure OpenAI. Управление API Azure автоматизирует эти действия при импорте API непосредственно из Службы Azure OpenAI. Дополнительные сведения см. в статье "Импорт API из Службы OpenAI Azure".
Авторизация OAuth 2.0 с помощью поставщика удостоверений
Чтобы обеспечить более подробный доступ к API OpenAPI определенными пользователями или клиентами, можно предварительно настроить доступ к API Azure OpenAI с помощью авторизации OAuth 2.0 с идентификатором Microsoft Entra или другим поставщиком удостоверений. Дополнительные сведения см. в статье "Защита API с помощью службы управления API в Azure и авторизации OAuth 2.0 с помощью Microsoft Entra ID".
Примечание.
Используйте авторизацию OAuth 2.0 в рамках стратегии глубокой защиты. Это не замена аутентификации с использованием ключа API или аутентификации с управляемой идентификацией для API Azure OpenAI.
Ниже приведены высокие шаги по ограничению доступа к API пользователям или приложениям, авторизованным с помощью поставщика удостоверений.
Создайте приложение в вашем поставщике удостоверений, чтобы представлять API OpenAI в Azure API Management. Если вы используете идентификатор Microsoft Entra, зарегистрируйте приложение в клиенте Идентификатора Microsoft Entra ID. Запишите сведения, например, идентификатор приложения и универсальный код ресурса (URI) аудитории.
При необходимости настройте приложение для получения ролей или областей, представляющих точные разрешения, необходимые для доступа к API OpenAI Azure.
inboundДобавьте фрагмент политики в экземпляр API Management для проверки запросов, представляющих веб-токен JSON (JWT) в заголовкеAuthorization. Поместите этот фрагмент перед другимиinboundполитиками, установленными для проверки подлинности в API OpenAI Azure.Примечание.
В следующих примерах показана общая структура политик для проверки JWT. Настройте их под вашего провайдера идентификаций и требования вашего приложения и API.
validate-azure-ad-token . Если вы используете идентификатор Microsoft Entra, настройте
validate-azure-ad-tokenполитику для проверки аудитории и утверждений в JWT. Дополнительные сведения см. в справочнике по политике.<validate-azure-ad-token tenant-id={{TENANT_ID}} header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid."> <client-application-ids> <application-id>{{CLIENT_APP_ID}}</application-id> </client-application-ids> <audiences> <audience>...</audience> </audiences> <required-claims> <claim name=...> <value>...</value> </claim> </required-claims> </validate-azure-ad-token>validate-jwt — если вы используете другого поставщика удостоверений, настройте
validate-jwtполитику для валидации аудитории и утверждений в JWT. Дополнительные сведения см. в справочнике по политике.<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid."> <openid-config url={{OPENID_CONFIGURATION_URL}} /> <issuers> <issuer>{{ISSUER_URL}}</issuer> </issuers> <audiences> <audience>...</audience> </audiences> <required-claims> <claim name=...> <value>...</value> </claim> </required-claims> </validate-jwt>
Связанный контент
- Дополнительные сведения об идентификаторе Microsoft Entra и OAuth2.0.
- Проверка подлинности запросов к службам ИИ Azure