Aller au contenu principal

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 :

  1. Organisation : votre entreprise ou équipe
  2. Projet : un regroupement logique (ex: “Chatbot production”, “Analyse données”)
  3. 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 .gitignore systématiquement