Authentification, clés API et organisation
Authentification, clés API et organisation
Avant d’écrire une seule ligne de code, vous devez configurer votre accès à l’API OpenAI. Cette leçon couvre la création de clés, la gestion des organisations et les bonnes pratiques de sécurité.
Créer votre compte et obtenir une clé API
Étape 1 : Inscription sur la plateforme
Rendez-vous sur platform.openai.com et créez un compte. Vous obtiendrez automatiquement des crédits gratuits pour commencer à expérimenter.
Étape 2 : Générer une clé API
Dans le tableau de bord, accédez à API Keys et créez une nouvelle clé :
# Votre clé API ressemble à ceci (ne la partagez jamais !)
# sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# La bonne pratique : variable d'environnement
import os
api_key = os.environ.get("OPENAI_API_KEY")
Étape 3 : Configurer la variable d’environnement
# Linux / macOS — ajoutez dans ~/.bashrc ou ~/.zshrc
export OPENAI_API_KEY="sk-proj-votre-cle-ici"
# Windows PowerShell
$env:OPENAI_API_KEY = "sk-proj-votre-cle-ici"
# Fichier .env (avec python-dotenv)
# .env
OPENAI_API_KEY=sk-proj-votre-cle-ici
Types de clés API
OpenAI propose plusieurs types de clés selon vos besoins :
Clés de projet (recommandées)
Les clés de projet (sk-proj-...) sont liées à un projet spécifique et offrent le meilleur contrôle :
from openai import OpenAI
# Le SDK détecte automatiquement OPENAI_API_KEY
client = OpenAI()
# Ou spécifiez explicitement (déconseillé en production)
client = OpenAI(api_key="sk-proj-...")
Clés de service
Pour les applications serveur qui nécessitent un accès élevé, les clés de service offrent des permissions supplémentaires mais doivent être gérées avec une attention particulière.
Organisations et projets
Structure hiérarchique
OpenAI organise l’accès en trois niveaux :
- Organisation : votre entreprise ou équipe
- Projet : un regroupement logique (ex: “Chatbot production”, “Analyse données”)
- Clé API : liée à un projet spécifique
from openai import OpenAI
# Spécifier l'organisation (utile si vous appartenez à plusieurs)
client = OpenAI(
organization="org-xxxxxxxxxxxx",
project="proj-xxxxxxxxxxxx"
)
Pourquoi utiliser les projets ?
- Isolation des coûts : chaque projet a son propre suivi de consommation
- Rate limits séparés : un projet qui consomme beaucoup n’impacte pas les autres
- Contrôle d’accès : assignez des membres spécifiques à chaque projet
- Clés indépendantes : révoquez une clé sans affecter les autres projets
Bonnes pratiques de sécurité
Ne jamais exposer vos clés
# MAUVAIS — clé en dur dans le code
client = OpenAI(api_key="sk-proj-abc123") # DANGER !
# BON — variable d'environnement
client = OpenAI() # Lit OPENAI_API_KEY automatiquement
# BON — fichier .env avec python-dotenv
from dotenv import load_dotenv
load_dotenv()
client = OpenAI()
Rotation régulière des clés
# Script de vérification de l'âge des clés
from datetime import datetime, timedelta
# Bonne pratique : rotation tous les 90 jours
# Créez une nouvelle clé, mettez à jour vos déploiements,
# puis supprimez l'ancienne clé
Fichier .gitignore
# Ajoutez TOUJOURS ces lignes à votre .gitignore
.env
.env.local
.env.production
*.key
Vérifier votre configuration
Voici un script complet pour vérifier que tout fonctionne :
from openai import OpenAI
import os
def verifier_configuration():
"""Vérifie que la configuration API est correcte."""
# Vérifier la présence de la clé
api_key = os.environ.get("OPENAI_API_KEY")
if not api_key:
print("ERREUR : OPENAI_API_KEY non définie")
return False
print(f"Clé détectée : {api_key[:8]}...{api_key[-4:]}")
# Tester la connexion
try:
client = OpenAI()
response = client.responses.create(
model="gpt-5.3",
input="Répondez uniquement : OK"
)
print(f"Connexion réussie : {response.output_text}")
return True
except Exception as e:
print(f"ERREUR de connexion : {e}")
return False
verifier_configuration()
# Résultat attendu :
# Clé détectée : sk-proj-...xxxx
# Connexion réussie : OK
Points clés à retenir
- Utilisez des clés de projet (
sk-proj-...) pour chaque application - Stockez vos clés dans des variables d’environnement, jamais dans le code
- Organisez vos accès avec la hiérarchie Organisation → Projet → Clé
- Effectuez une rotation régulière de vos clés (tous les 90 jours)
- Ajoutez
.envà votre.gitignoresystématiquement