Authentification basée sur IAM pour l'IA générative

Vous pouvez atteindre le point d'extrémité compatible OpenAI à l'aide des deux méthodes d'authentification suivantes :

Utilisez des clés d'API pour les tests et le développement anticipé. Utiliser l'authentification basée sur IAM pour les charges de travail de production et les environnements OCI gérés. Cette rubrique montre comment configurer l'authentification OCI IAM.

Authentification OCI IAM

L'API OCI Responses prend entièrement en charge l'authentification OCI IAM. Cette section explique comment utiliser l'authentification basée sur IAM au lieu des clés d'API.

Quand utiliser l'authentification IAM

Envisagez d'utiliser l'authentification IAM lorsque :

mc

  • Exécution d'applications dans les services OCI (par exemple, Functions ou OKE)
  • Éviter les données d'identification de longue durée telles que les clés d'API
  • Application d'un contrôle d'accès détaillé au moyen de stratégies IAM

Installer la bibliothèque d'authentification OCI IAM

Installez la bibliothèque oci-genai-auth, qui fournit des utilitaires d'aide pour intégrer l'authentification OCI IAM à la trousse SDK OpenAI :

pip install oci-genai-auth

Cette bibliothèque comprend les outils d'aide à l'authentification suivants :

  • OciSessionAuth (pour le développement local)
  • OciUserPrincipalAuth
  • OciInstancePrincipalAuth
  • OciResourcePrincipalAuth (pour les environnements gérés par OCI)

Ressources

Configurer le client OpenAI

Lors de l'utilisation de l'authentification IAM, initialisez le client OpenAI avec un client HTTP et un programme de traitement d'authentification personnalisés. La valeur api_key est "not used" dans ce cas.

Exemple : Développement local (OciSessionAuth)

Utilisez cette approche lorsque vous exécutez du code localement (par exemple, sur un ordinateur portable à l'aide d'un profil d'interface de ligne de commande 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)

Exemple : Environnements gérés OCI (OciResourcePrincipalAuth)

Utilisez cette approche lors de l'exécution dans des services OCI tels que le service Fonctions OCI ou OCI Container Engine pour 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()),
)

L'utilisation de l'authentification OCI IAM permet à l'application d'accéder en toute sécurité à l'IA générative d'OCI sans gérer les clés d'API, tout en s'alignant sur les pratiques de sécurité OCI standard.