Generative KI-IAM-basierte Authentifizierung

Sie können den OpenAI-kompatiblen Endpunkt mit den folgenden beiden Authentifizierungsmethoden erreichen:

Verwenden Sie API-Schlüssel für Tests und frühe Entwicklung. Verwenden Sie die IAM-basierte Authentifizierung für Produktions-Workloads und OCI-verwaltete Umgebungen. In diesem Thema wird gezeigt, wie Sie die OCI IAM-Authentifizierung einrichten.

OCI-IAM-Authentifizierung

Die OCI Responses API unterstützt die OCI IAM-Authentifizierung vollständig. In diesem Abschnitt wird gezeigt, wie Sie die IAM-basierte Authentifizierung anstelle von API-Schlüsseln verwenden.

Verwendung der IAM-Authentifizierung

Verwenden Sie die IAM-Authentifizierung in folgenden Situationen:

MCD

  • Anwendungen in OCI-Services ausführen (z.B. Functions oder OKE)
  • Vermeidung langlebiger Zugangsdaten wie API-Schlüssel
  • Fein granulierte Zugriffskontrolle über IAM-Policys durchsetzen

OCI IAM-Authentifizierungsbibliothek installieren

Installieren Sie die oci-genai-auth-Library, die Hilfsprogramme für die Integration der OCI-IAM-Authentifizierung mit dem OpenAI-SDK bereitstellt:

pip install oci-genai-auth

Diese Bibliothek enthält die folgenden Authentifizierungshilfen:

  • OciSessionAuth (für lokale Entwicklung)
  • OciUserPrincipalAuth
  • OciInstancePrincipalAuth
  • OciResourcePrincipalAuth (für OCI-verwaltete Umgebungen)

Ressourcen

OpenAI-Client konfigurieren

Initialisieren Sie bei Verwendung der IAM-Authentifizierung den OpenAI-Client mit einem benutzerdefinierten HTTP-Client und Authentifizierungs-Handler. Der api_key-Wert ist in diesem Fall "not used".

Beispiel: Lokale Entwicklung (OciSessionAuth)

Verwenden Sie diese Lösung, wenn Sie Code lokal ausführen (z.B. auf einem Laptop mit einem OCI-CLI-Profil):

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)

Beispiel: Von OCI verwaltete Umgebungen (OciResourcePrincipalAuth)

Verwenden Sie diesen Ansatz bei der Ausführung in OCI-Services wie OCI Functions oder 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()),
)

Mit der OCI IAM-Authentifizierung kann die Anwendung sicher auf OCI Generative AI zugreifen, ohne API-Schlüssel zu verwalten, während sie sich an die standardmäßigen OCI-Sicherheitspraktiken anpasst.