Autenticazione basata su IAM AI generativa

È possibile raggiungere l'endpoint OpenAI-Compatible utilizzando i due metodi di autenticazione riportati di seguito.

Utilizza le API key per test e sviluppo precoce. Utilizza l'autenticazione basata su IAM per i carichi di lavoro di produzione e gli ambienti gestiti da OCI. In questo argomento viene descritto come impostare l'autenticazione IAM OCI.

Autenticazione IAM OCI

L'API OCI Responses supporta completamente l'autenticazione IAM OCI. In questa sezione viene descritto come utilizzare l'autenticazione basata su IAM anziché le chiavi API.

Quando utilizzare l'autenticazione IAM

Prendere in considerazione l'uso dell'autenticazione IAM quando:

mc

  • Esecuzione di applicazioni nei servizi OCI (ad esempio, Functions o OKE)
  • Evitare credenziali di lunga durata come le chiavi API
  • Applicazione di un controllo dell'accesso capillare tramite criteri IAM

Installare la libreria di autenticazione IAM OCI

Installare la libreria oci-genai-auth, che fornisce le utility di supporto per l'integrazione dell'autenticazione IAM OCI con OpenAI SDK:

pip install oci-genai-auth

Questa libreria include i seguenti strumenti di supporto per l'autenticazione:

  • OciSessionAuth (per lo sviluppo locale)
  • OciUserPrincipalAuth
  • OciInstancePrincipalAuth
  • OciResourcePrincipalAuth (per ambienti gestiti da OCI)

Risorse

Configurare il client OpenAI

Quando si utilizza l'autenticazione IAM, inizializzare il client OpenAI con un client HTTP personalizzato e un handler di autenticazione. In questo caso, il valore api_key è "not used".

Esempio: sviluppo locale (OciSessionAuth)

Utilizzare questo approccio durante l'esecuzione locale del codice (ad esempio, su un laptop che utilizza un profilo CLI 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)

Esempio: OCI Managed Environments (OciResourcePrincipalAuth)

Utilizzare questo approccio quando si esegue in servizi OCI come OCI Functions o 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()),
)

L'uso dell'autenticazione IAM OCI consente all'applicazione di accedere in modo sicuro all'AI generativa OCI senza gestire le chiavi API, allineandosi al contempo alle procedure di sicurezza OCI standard.