Le TLS mutuel d’OpenAI permet aux organisations de configurer une couche de sécurité supplémentaire pour leur trafic API OpenAI. Une fois la configuration effectuée, les requêtes API doivent être envoyées à https://mtls.api.openai.com (ou à https://mtls-eu.api.openai.com pour les clients soumis à la résidence des données dans l’UE), et le trafic ne sera accepté que si la bonne clé API et le bon certificat client sont fournis. mTLS ne s’applique pas au tableau de bord https://platform.openai.com. Cette fonctionnalité est actuellement en bêta.
Comment configurer l’intégration mTLS ?
Dans la barre de navigation des paramètres, vous verrez un onglet « TLS mutuel ».
Importer le certificat
Activer le certificat
Après avoir importé votre certificat, l’étape suivante consiste à activer votre certificat. Une fois qu’un certificat est activé pour un projet, toutes les requêtes API destinées à ce projet commenceront également à exiger un certificat client correspondant. Si plusieurs certificats sont activés pour un projet, vous pouvez fournir n’importe quel certificat client correspondant. Si un certificat est activé pour l’organisation, il s’appliquera à toutes les requêtes API et sera « hérité » par tous les projets.
Exigences relatives aux certificats d’AC
Vous pouvez téléverser tout certificat d’AC X.509 au format PEM qui répond aux exigences suivantes :
signe directement les certificats client que vous prévoyez d’utiliser, ou sert d’ancre à une chaîne de certificats valide présentée par votre client.
possède les extensions Certificate Authority, Subject Key Identifier et Authority Key Identifier (au format KeyIdentifier)
possède les autorisations Key Usage : « Certificate Sign, CRL Sign »
n’expire pas dans un délai de 1 jour
la taille totale du certificat doit être inférieure à 16 Ko.
Exigences relatives aux certificats client
Si la prise en charge des chaînes de certificats est activée pour votre organisation, votre client peut présenter un certificat client feuille et les certificats intermédiaires nécessaires pour établir une chaîne valide jusqu’à un certificat téléversé actif. Sinon, les certificats client doivent être directement signés par les certificats que vous avez téléversés au préalable. En dehors de cela, vos certificats client doivent répondre aux exigences suivantes :
possède les extensions Subject Key Identifier et Authority Key Identifier (au format KeyIdentifier)
possède les autorisations Key Usage : « Digital Signature, Key Encipherment »
possède l’autorisation Extended Key Usage : « TLS Web Client Authentication »
possède l’extension Subject Alternate Name
Prise en charge des chaînes de certificats pour mTLS API
La prise en charge des chaînes de certificats permet à votre client de présenter un certificat client feuille avec les certificats intermédiaires nécessaires pour établir une chaîne valide jusqu’à un certificat téléversé actif.
Cela peut vous permettre de faire tourner les certificats intermédiaires sans téléverser chaque nouvel intermédiaire, tant que le certificat téléversé actif utilisé comme ancre de confiance reste valide.
La prise en charge des chaînes de certificats est actuellement disponible sur demande. Contactez votre responsable de compte ou ouvrez un ticket d’assistance pour demander l’accès.
Votre client doit présenter tous les certificats intermédiaires requis. OpenAI ne récupère pas les certificats intermédiaires manquants via AIA. Les vérifications CRL et OCSP ne sont toujours pas prises en charge.
FAQ
Puis-je configurer mTLS via l’API ?
Oui — vous pouvez consulter la référence de l’API à l’adresse https://platform.openai.com/docs/api-reference/ pour plus d’informations.
Quels endpoints prennent en charge mTLS ?
Pendant cette période de bêta, mTLS est officiellement pris en charge dans
/v1/chat/completions (with all supported extensions e.g. image, audio, streaming, etc.)/v1/completions/v1/embeddings/v1/audio/transcriptions/v1/audio/speech/v1/files/v1/batches/v1/responses/v1/images/v1/moderations/v1/realtime (via server-side web sockets)/v1/fine_tuning/v1/tunnels
Comment envoyer des certificats client avec ma requête ?
Pour une requête cURL, vous pouvez utiliser les options --cert et --key (voir la page de manuel ici). Dans la plupart des autres clients HTTP, il existe également des moyens de transmettre des certificats client. Exemples : requests en Python, fetch en JS. Avec nos SDK officiels, nous prenons également en charge le remplacement du client HTTP ; voir ici pour un exemple en Python.
Lorsque la prise en charge des chaînes de certificats est activée, configurez votre client HTTP pour qu’il présente le certificat client feuille et tous les certificats intermédiaires requis. La configuration exacte dépend de votre client HTTP.
Avant d’imposer mTLS au trafic de production, assurez-vous que le client HTTP que vous utilisez gère correctement les demandes de certificat client (certains, comme les WebSockets dans certains navigateurs, ne le font pas). Notez que notre serveur ne fournit pas de liste certificate_authorities dans la demande de certificat client.
Qui peut accéder aux certificats et les modifier ?
Via l’interface utilisateur du tableau de bord https://platform.openai.com/settings/organization/mtls, les propriétaires de l’organisation peuvent accéder aux certificats et les modifier. Toute personne disposant d’une clé d’API administrateur (https://platform.openai.com/settings/organization/admin-keys) peut également accéder aux certificats et les modifier, mais attention — si vous activez le TLS mutuel au niveau de l’organisation, vous imposerez également les certificats à ces requêtes API. Toutes les modifications mTLS sont visibles dans les journaux d’audit.
Combien de certificats puis-je avoir ?
Chaque organisation peut importer jusqu’à 50 certificats, qui peuvent être partagés entre les projets, mais pas avec d’autres organisations. Vous pouvez activer/désactiver un certificat de façon atomique pour 10 projets à la fois. Vous pouvez également activer/désactiver 10 certificats à la fois pour votre organisation ou pour 1 projet spécifique.
Puis-je mettre à jour ou supprimer des certificats ?
Vous pouvez mettre à jour les noms de vos certificats, mais pas leur contenu. Vous pouvez également supprimer des certificats s’ils ne sont actuellement actifs à aucune portée.
Comment fonctionne la révocation des certificats ?
Pour le moment, nous ne prenons pas en charge les vérifications CRL ou OCSP. L’alternative recommandée consiste plutôt à supprimer ou à faire tourner votre clé API. Vous pouvez également remplacer vos certificats d’AC ou utiliser des certificats client ayant des périodes de validité plus courtes.
Puis-je utiliser des chaînes de certificats plus longues ?
Oui, si la prise en charge des chaînes de certificats est activée pour votre organisation. Votre client doit présenter le certificat client feuille et tout certificat intermédiaire requis afin qu’OpenAI puisse vérifier la chaîne jusqu’à un certificat téléversé actif. Contactez votre responsable de compte ou ouvrez un ticket d’assistance pour demander l’accès.
Quelle est la configuration recommandée ?
Lors de la configuration initiale de cette fonctionnalité, nous vous recommandons de commencer par un projet de staging qui ne sert pas le trafic de production officiel. Profitez-en pour vous assurer que vos certificats sont correctement configurés sur vos machines et que vous pouvez envoyer du trafic API avec succès. Par ailleurs, nous vous recommandons de consulter l’équipe de sécurité de votre organisation afin de mieux comprendre vos besoins.
Support supplémentaire
Vous pouvez gérer entièrement la fonctionnalité mTLS vous-même via le tableau de bord et l’API. Cependant, si vous souhaitez d’abord activer mTLS en mode shadow, contactez votre responsable de compte ou ouvrez un ticket de support en lançant une nouvelle discussion dans l’angle inférieur droit de cette page.
Annexe : terminologie
Certificat d’AC : l’un de vos certificats de confiance, utilisé pour vérifier les certificats client. Il peut signer directement les certificats client que vous envoyez avec les requêtes ou servir d’ancre à une chaîne de certificats présentée par votre client. Vous pouvez utiliser des certificats d’AC auto-signés.
Téléverser un certificat : ajouter un certificat d’AC à votre compte. Il n’est pas encore appliqué pour mTLS, mais vous pouvez commencer à le configurer.
Portée : un projet précis ou l’ensemble de votre organisation.
Activer un certificat d’AC pour une portée : active mTLS spécifiquement pour cette portée, et toutes les requêtes basées sur une clé API doivent inclure un certificat client vérifiable avec le certificat d’AC actif.
Désactiver un certificat d’AC pour une portée : désactive l’utilisation de ce certificat pour vérifier les requêtes dans cette portée. S’il ne reste aucun certificat pour cette portée, mTLS est effectivement désactivé.
Hériter d’un certificat : si vous activez un certificat pour votre organisation, il sera également activé pour tous les projets.
