Compartir a través de


Uso de Azure OpenAI sin claves

Las solicitudes de aplicación a la mayoría de los servicios de Azure deben autenticarse con claves o conexiones sin contraseña. Los desarrolladores deben ser diligentes para no exponer nunca las claves en una ubicación que no sea segura. Cualquiera que obtenga acceso a la clave se puede autenticar en el servicio. La autenticación sin claves ofrece ventajas mejoradas de administración y seguridad con respecto a la clave de cuenta porque no hay ninguna clave (ni cadena de conexión) que almacenar.

Las conexiones sin claves se habilitan con los pasos siguientes:

  • Configure la autenticación.
  • Establezca variables de entorno, según sea necesario.
  • Use un tipo de credencial de biblioteca de identidades de Azure para crear un objeto de cliente de Azure OpenAI.

Autenticación

Para usar las bibliotecas cliente de Azure es necesaria la autenticación en Microsoft Entra ID.

La autenticación difiere en función del entorno en el que se ejecuta la aplicación:

Bloque de creación sin claves de Azure OpenAI

Use el vínculo siguiente para explorar la plantilla azure OpenAI Keyless Building Block AI. Esta plantilla aprovisiona una cuenta de Azure OpenAI con el permiso de rol RBAC de la cuenta de usuario para la autenticación sin claves (Microsoft Entra) para acceder a los SDK de api de OpenAI.

Nota:

En este artículo se usan una o varias plantillas de aplicaciones de IA como base para los ejemplos e instrucciones del artículo. Las plantillas de aplicaciones de IA le proporcionan implementaciones de referencia bien mantenidas y fáciles de implementar que le ayudan a garantizar un punto inicial de alta calidad para sus aplicaciones de IA.

Explore la plantilla .NET End to end de Azure OpenAI Keyless Authentication Building Block AI.

Autenticación para el desarrollo local

Seleccione una herramienta para la autenticación durante el desarrollo local.

Autenticación para entornos hospedados en Azure

Obtenga información sobre cómo administrar DefaultAzureCredential para las aplicaciones implementadas en Azure.

Configuración de roles para la autorización

  1. Busque el rol para el uso de Azure OpenAI. En función de cómo quiera establecer ese rol, necesita el nombre o el identificador.

    Nombre de rol Id. de rol
    En el caso de la CLI de Azure o Azure PowerShell, puede usar el nombre del rol. Para Bicep, necesita el identificador de rol.
  2. Utilice la siguiente tabla para seleccionar un rol y un identificador.

    Caso de uso Nombre de rol Id. de rol
    Asistentes Cognitive Services OpenAI Contributor a001fd3d-188f-4b5d-821b-7da978bf7442
    Finalizaciones de chat Cognitive Services OpenAI User 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
  3. Seleccione un tipo de identidad para usarlo.

    • Identidad personal: es su identidad personal vinculada al inicio de sesión en Azure.
    • Identidad administrada: identidad administrada por Azure y creada para su uso en Azure. Para la identidad administrada, cree una identidad administrada asignada por el usuario. Al crear la identidad administrada, necesitará el Client ID, también conocido como app ID.
  4. Para buscar su identidad personal, utilice uno de los siguientes comandos. Use el identificador como <identity-id> en el paso siguiente.

    Para el desarrollo local, para obtener su propio identificador de identidad, use el siguiente comando. Debe iniciar sesión con az login antes de usar este comando.

    az ad signed-in-user show \
        --query id -o tsv
    
  5. Asigne el rol de control de acceso basado en roles (RBAC) a la identidad del grupo de recursos.

    Para conceder permisos de identidad al recurso mediante RBAC, asigne un rol mediante el comando az role assignment create de la CLI de Azure.

    az role assignment create \
        --role "Cognitive Services OpenAI User" \
        --assignee "<identity-id>" \
        --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"
    

    Si procede, reemplace <identity-id>, <subscription-id> y <resource-group-name> por los valores reales.

Configuración de las variables de entorno

Para conectarse a Azure OpenAI, el código debe conocer el punto de conexión de recursos y puede necesitar otras variables de entorno.

  1. Cree una variable de entorno para el punto de conexión de Azure OpenAI.

    • AZURE_OPENAI_ENDPOINT: esta URL es el punto de acceso para el recurso de Azure OpenAI.
  2. Cree variables de entorno basadas en la ubicación en la que se ejecuta la aplicación:

    Location Identidad Descripción
    Local Personal En el caso de los entornos de ejecución locales con su identidad personal, inicie sesión para crear su credencial con una herramienta.
    Nube de Azure Identidad administrada asignada por el usuario Cree una variable de entorno AZURE_CLIENT_ID que contenga el identificador de cliente de la identidad administrada asignada por el usuario para autenticarse.

Instalación de la biblioteca cliente de identidades de Azure

Use el vínculo siguiente para instalar la biblioteca cliente de Azure Identity.

Instale la biblioteca cliente de identidades de Azure para .NET:

dotnet add package Azure.Identity

Uso de DefaultAzureCredential

DefaultAzureCredential de la biblioteca de identidades de Azure permite al cliente ejecutar el mismo código en el entorno de desarrollo local y en la nube de Azure.

Para más información sobre DefaultAzureCredential para .NET, vea Biblioteca cliente de Azure Identity para .NET.

using Azure;
using Azure.AI.OpenAI;
using Azure.Identity;
using System;
using static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");

OpenAIClient client = new(new Uri(endpoint), new DefaultAzureCredential());

Recursos