OpenAI Mutual TLS により、組織は OpenAI API トラフィックに追加のセキュリティレイヤーを設定できます。設定後、API リクエストは https://mtls.api.openai.com(EU データレジデンシーのお客様は https://mtls-eu.api.openai.com)に送信する必要があり、正しい API キーとクライアント証明書が提供された場合にのみトラフィックが受け付けられます。mTLS は https://platform.openai.com ダッシュボードには適用されません。この機能は現在ベータ版です。
mTLS 連携の設定方法
設定ナビゲーションバーに「Mutual TLS」タブが表示されます。
証明書をアップロード
証明書を有効化
証明書をアップロードしたら、次のステップは証明書を有効化することです。プロジェクトで証明書が有効化されると、そのプロジェクトに送信されるすべての API リクエストでも、対応するクライアント証明書が必要になります。プロジェクトで複数の証明書が有効化されている場合は、対応する任意のクライアント証明書を渡すことができます。組織に対して証明書が有効化されている場合、すべての API リクエストに適用され、すべてのプロジェクトに「継承」されます。
CA 証明書の要件
以下の要件を満たす、PEM 形式の任意の X.509 CA 証明書をアップロードできます。
リクエストに使用する予定のクライアント証明書に直接署名している
Certificate Authority、Subject Key Identifier、Authority Key Identifier(KeyIdentifier 形式)拡張を持つ
Key Usage: 「Certificate Sign, CRL Sign」権限を持つ
有効期限が 1 日以内に切れる設定になっていない
証明書の合計サイズが 16kb 未満である。
クライアント証明書の要件
クライアント証明書は、事前にアップロードした証明書によって直接署名されている必要があります。現時点では、単一長の証明書チェーンのみをサポートしています。これに加えて、クライアント証明書は以下の要件を満たす必要があります。
Subject Key Identifier および Authority Key Identifier 拡張(KeyIdentifier 形式)を持つ
Key Usage: 「Digital Signature, Key Encipherment」権限を持つ
Extended Key Usage: 「TLS Web Client Authentication」権限を持つ
Subject Alternate Name 拡張を持つ
FAQ
API 経由で mTLS を設定できますか?
はい。詳細については、https://platform.openai.com/docs/api-reference/ の API リファレンスを参照してください。
mTLS をサポートするエンドポイント
このベータ期間中、mTLS は以下で正式にサポートされています
/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
リクエストでクライアント証明書を送信するにはどうすればよいですか?
cURL リクエストでは、--cert オプションと --key オプションを使用できます(man ページはこちらを参照)。その他ほとんどの HTTP クライアントでも、クライアント証明書を渡す方法があります。例: Python の requests、JS の fetch。公式 SDK 経由でも HTTP クライアントのオーバーライドをサポートしています。Python の例はこちらを参照してください。
本番トラフィックに対して mTLS を強制する前に、使用している HTTP クライアントがクライアント証明書リクエストに対して適切に動作することを確認してください(一部のブラウザーの WebSocket など、適切に動作しないものもあります)。当社のサーバーは、クライアント証明書リクエストで certificate_authorities のリストを提供しない点に注意してください。
証明書にアクセスして変更できるのは誰ですか?
https://platform.openai.com/settings/organization/mtls ダッシュボード UI から、組織のオーナーが証明書にアクセスし、変更できます。Admin API Key(https://platform.openai.com/settings/organization/admin-keys)を持つユーザーも証明書にアクセス/変更できます。ただし注意してください。組織レベルで Mutual TLS を有効化すると、これらの API リクエストにも証明書が強制されます。mTLS に関するすべての変更は監査ログに表示されます。
証明書はいくつ持てますか?
各組織は最大 50 件の証明書をアップロードできます。証明書はプロジェクト間で共有できますが、他の組織とは共有できません。一度に 10 件のプロジェクトについて、証明書をアトミックに有効化/無効化できます。また、組織または特定の 1 件のプロジェクトについて、一度に 10 件の証明書を有効化/無効化できます。
証明書を更新または削除できますか?
証明書の名前は更新できますが、内容は更新できません。どのスコープでも現在有効になっていない証明書は削除することもできます。
証明書の失効はどのように機能しますか?
現時点では、CRL または OCSP ステープリングはサポートしていません。推奨される代替策は、代わりに API キーを削除またはローテーションすることです。CA 証明書を差し替えたり、有効期間の短いクライアント証明書を使用したりすることもできます。
より長い証明書チェーンを使用できますか?
現時点では、単一長のチェーンのみをサポートしています。つまり、CA 証明書がクライアント証明書に直接署名している必要があります。さらに質問がある場合は、アカウントディレクターにお問い合わせください。
推奨設定
この機能を最初に設定する際は、正式な本番トラフィックを処理しないステージングプロジェクトから始めることをお勧めします。この機会に、証明書がマシン上で適切に設定されていることと、API トラフィックを正常に送信できることを確認してください。これに加えて、ニーズを最もよく理解するために、組織のセキュリティチームに相談することをお勧めします。
追加サポート
mTLS 機能は、ダッシュボードと API から完全にセルフサービスで利用できます。ただし、まず mTLS をシャドウモードで有効にしたい場合は、アカウントディレクターに連絡するか、このページ右下の新しいチャットからサポートチケットを開いてください。
付録: 用語
CA 証明書: リクエストとともに送信するクライアント証明書に直接署名した、信頼済み証明書の 1 つです。自己署名 CA 証明書も使用できます。
証明書のアップロード: CA 証明書をアカウントに追加することです。まだ mTLS に対してどこにも強制されませんが、設定を開始できます。
スコープ: 特定のプロジェクト、または組織全体です。
スコープで CA 証明書を有効化: そのスコープに対して mTLS を有効にし、API キーベースのすべてのリクエストで、その CA 証明書によって署名されたクライアント証明書が必要になります。
スコープで CA 証明書を無効化: このスコープでリクエストを検証するためのこの証明書の使用を無効にします。そのスコープに証明書が 1 つも残っていない場合、mTLS は実質的にオフになります。
証明書の継承: 組織に対して証明書を有効化すると、すべてのプロジェクトでも有効化されます。
