Generative KI-IAM-basierte Authentifizierung
Sie können den OpenAI-kompatiblen Endpunkt mit den folgenden beiden Authentifizierungsmethoden erreichen:
- OCI Generative AI-API-Schlüssel
- OCI-IAM-basierte Authentifizierung
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-authDiese Bibliothek enthält die folgenden Authentifizierungshilfen:
OciSessionAuth(für lokale Entwicklung)OciUserPrincipalAuthOciInstancePrincipalAuthOciResourcePrincipalAuth(für OCI-verwaltete Umgebungen)
Ressourcen
- Python:OCI GenAI-Authentifizierungspackage auf GitHub
- Java: OCI GenAI-Authentifizierungs-Java-SDK auf GitHub
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.