Autenticación basada en IAM de IA generativa

Puede acceder al punto final compatible con OpenAI mediante los dos métodos de autenticación siguientes:

Utilice claves de API para las pruebas y el desarrollo temprano. Utiliza la autenticación basada en IAM para cargas de trabajo de producción y entornos gestionados por OCI. En este tema se muestra cómo configurar la autenticación de OCI IAM.

Autenticación de OCI IAM

La API de respuestas de OCI soporta por completo la autenticación de OCI IAM. En esta sección se muestra cómo utilizar la autenticación basada en IAM en lugar de las claves de API.

Cuándo utilizar la autenticación de IAM

Considere el uso de la autenticación de IAM cuando:

mc

  • Ejecución de aplicaciones en servicios de OCI (por ejemplo, Functions u OKE)
  • Evitar credenciales de larga duración como claves de API
  • Aplicación de control de acceso detallado mediante políticas de IAM

Instalación de la biblioteca de autenticación de IAM de OCI

Instale la biblioteca oci-genai-auth, que proporciona utilidades auxiliares para integrar la autenticación de OCI IAM con el SDK de OpenAI:

pip install oci-genai-auth

Esta biblioteca incluye los siguientes ayudantes de autenticación:

  • OciSessionAuth (para el desarrollo local)
  • OciUserPrincipalAuth
  • OciInstancePrincipalAuth
  • OciResourcePrincipalAuth (para entornos gestionados por OCI)

Recursos

Configurar el cliente OpenAI

Al utilizar la autenticación de IAM, inicialice el cliente OpenAI con un cliente HTTP personalizado y un manejador de autenticación. El valor api_key es "not used" en este caso.

Ejemplo: desarrollo local (OciSessionAuth)

Utilice este enfoque al ejecutar código localmente (por ejemplo, en un portátil que utiliza un perfil de la CLI de OCI):

from openai import OpenAI
from oci_openai import OciSessionAuth
import httpx

client = OpenAI(
    base_url="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1",  # update region if needed
    api_key="not-used",
    project="ocid1.generativeaiproject.oc1.us-chicago-1.xxxxxxxx",  # project OCID created earlier
    http_client=httpx.Client(auth=OciSessionAuth(profile_name="DEFAULT"))  # update profile if needed
)

response = client.responses.create(
    model="xai.grok-4-1-fast-reasoning",
    input="Write a one-sentence explanation of what a database is."
)

print(response.output_text)

Ejemplo: entornos gestionados de OCI (OciResourcePrincipalAuth)

Utilice este enfoque cuando se ejecute en servicios de OCI como OCI Functions u OCI Container Engine for Kubernetes (OKE):

from openai import OpenAI
from oci_openai import OciResourcePrincipalAuth
import httpx

client = OpenAI(
    base_url="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1",  # update region if needed
    api_key="not-used",
    project="ocid1.generativeaiproject.oc1.us-chicago-1.xxxxxxxx",  # project OCID created earlier
    http_client=httpx.Client(auth=OciResourcePrincipalAuth()),
)

El uso de la autenticación de OCI IAM permite a la aplicación acceder de forma segura a OCI Generative AI sin gestionar claves de API, al tiempo que se alinea con las prácticas de seguridad estándar de OCI.