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:
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.
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
Para el desarrollo local, para obtener su propio identificador de identidad, use el siguiente comando. Debe iniciar sesión con Connect-AzAccount antes de usar este comando.
Al usar Bicep implementado con Azure Developer CLI, la identidad de la persona o el servicio que ejecuta la implementación se establece con el parámetro principalId.
La variable main.parameters.json siguiente se establece con la identidad que ejecuta el proceso.
Para su uso en Azure, especifique una identidad administrada asignada por el usuario como parte del proceso de implementación de Bicep. Cree una identidad administrada asignada por el usuario independiente de la identidad que ejecuta el proceso.
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>"
Para conceder permisos de aplicación al recurso de Azure OpenAI mediante RBAC, asigne un rol mediante el cmdlet New-AzRoleAssignment de Azure PowerShell.
Use la siguiente plantilla de Bicep de Azure OpenAI para crear el recurso y establecer la autenticación para el identityId. Bicep necesita el identificador de rol. La instancia de name que se muestra en este fragmento de código de Bicep no es el rol de Azure; es específica de la implementación de Bicep.
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.
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.
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.
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.
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());