Mutual TLS w OpenAI umożliwia organizacjom skonfigurowanie dodatkowej warstwy zabezpieczeń dla ruchu OpenAI API. Po skonfigurowaniu żądania API należy kierować do https://mtls.api.openai.com (lub https://mtls-eu.api.openai.com dla klientów z rezydencją danych w UE), a ruch będzie akceptowany tylko wtedy, gdy podano właściwy klucz API i certyfikat klienta. mTLS nie dotyczy panelu https://platform.openai.com. Ta funkcja jest obecnie w fazie beta.
Jak skonfigurować integrację mTLS?
Na pasku nawigacji ustawień zobaczysz kartę „Mutual TLS”.
Prześlij certyfikat
Aktywuj certyfikat
Po przesłaniu certyfikatu następnym krokiem jest jego aktywacja. Gdy certyfikat zostanie aktywowany dla projektu, wszystkie żądania API kierowane do tego projektu będą również wymagać odpowiedniego certyfikatu klienta. Jeśli projekt ma aktywowanych wiele certyfikatów, możesz przekazać dowolny odpowiadający certyfikat klienta. Jeśli certyfikat jest aktywowany dla organizacji, będzie miał zastosowanie do wszystkich żądań API i zostanie „odziedziczony” przez wszystkie projekty.
Wymagania dla certyfikatu CA
Możesz przesłać dowolny certyfikat CA X.509 w formacie PEM, który spełnia następujące wymagania:
bezpośrednio podpisuje certyfikaty klienta, których planujesz używać do wysyłania żądań
ma rozszerzenia Certificate Authority, Subject Key Identifier i Authority Key Identifier (w formacie KeyIdentifier)
ma uprawnienia Key Usage: „Certificate Sign, CRL Sign”
nie wygaśnie w ciągu 1 dnia
łączny rozmiar certyfikatu musi być mniejszy niż 16 KB.
Wymagania dla certyfikatu klienta
Certyfikaty klienta muszą być bezpośrednio podpisane przez certyfikaty przesłane wcześniej. Obecnie obsługujemy tylko jednopoziomowe łańcuchy certyfikatów. Poza tym certyfikaty klienta muszą spełniać następujące wymagania:
ma rozszerzenia Subject Key Identifier i Authority Key Identifier (w formacie KeyIdentifier)
ma uprawnienia Key Usage: „Digital Signature, Key Encipherment”
ma uprawnienie Extended Key Usage: „TLS Web Client Authentication”
ma rozszerzenie Subject Alternate Name
FAQ
Czy mogę skonfigurować mTLS przez API?
Tak — więcej informacji znajdziesz w dokumentacji API pod adresem https://platform.openai.com/docs/api-reference/.
Które punkty końcowe obsługują mTLS?
W tym okresie beta mTLS jest oficjalnie obsługiwane w:
/v1/chat/completions (ze wszystkimi obsługiwanymi rozszerzeniami, np. image, audio, streaming itp.)/v1/completions/v1/embeddings/v1/audio/transcriptions/v1/audio/speech/v1/files/v1/batches/v1/responses/v1/images/v1/moderations/v1/realtime (przez websockety po stronie serwera)/v1/fine_tuning/v1/tunnels
Jak wysłać certyfikaty klienta wraz z żądaniem?
W przypadku żądania cURL możesz użyć opcji --cert i --key (zobacz stronę man tutaj). W większości innych klientów HTTP również istnieją sposoby przekazania certyfikatów klienta. Przykłady: requests w Pythonie, fetch w JS. W naszych oficjalnych SDK obsługujemy także nadpisanie klienta HTTP — przykład w Pythonie znajdziesz tutaj.
Przed wymuszeniem mTLS dla ruchu produkcyjnego upewnij się, że używany klient HTTP poprawnie obsługuje żądania certyfikatów klienta (niektóre, np. WebSockety w części przeglądarek, tego nie robią). Pamiętaj, że nasz serwer nie udostępnia listy certificate_authorities w żądaniu certyfikatu klienta.
Kto może uzyskiwać dostęp do certyfikatów i je modyfikować?
W interfejsie panelu pod adresem https://platform.openai.com/settings/organization/mtls dostęp do certyfikatów i możliwość ich modyfikacji mają właściciele organizacji. Każdy z kluczem Admin API (https://platform.openai.com/settings/organization/admin-keys) również może uzyskiwać dostęp do certyfikatów i je modyfikować, ale uwaga — jeśli włączysz Mutual TLS na poziomie organizacji, wymóg certyfikatów obejmie także te żądania API. Wszystkie zmiany mTLS są widoczne w logach audytowych.
Ile certyfikatów mogę mieć?
Każda organizacja może przesłać maksymalnie 50 certyfikatów, które można współdzielić między projektami, ale nie z innymi organizacjami. Możesz atomowo aktywować/dezaktywować certyfikat dla 10 projektów jednocześnie. Alternatywnie możesz jednocześnie aktywować/dezaktywować 10 certyfikatów dla swojej organizacji lub dla 1 konkretnego projektu.
Czy mogę aktualizować lub usuwać certyfikaty?
Możesz aktualizować nazwy certyfikatów, ale nie ich treść. Możesz też usuwać certyfikaty, jeśli nie są obecnie aktywne w żadnym zakresie.
Jak działa unieważnianie certyfikatów?
Obecnie nie obsługujemy list CRL ani OCSP stapling. Zalecaną alternatywą jest zamiast tego usunięcie lub rotacja klucza API. Możesz też wymienić certyfikaty CA lub używać certyfikatów klienta z krótszym okresem ważności.
Czy mogę używać dłuższych łańcuchów certyfikatów?
Obecnie obsługujemy tylko łańcuchy jednopoziomowe — tzn. certyfikat CA powinien bezpośrednio podpisywać certyfikaty klienta. Jeśli masz dodatkowe pytania, skontaktuj się ze swoim Account Directorem.
Jaka jest zalecana konfiguracja?
Przy początkowej konfiguracji tej funkcji zalecamy zacząć od projektu stagingowego, który nie obsługuje oficjalnego ruchu produkcyjnego. Wykorzystaj to, aby upewnić się, że certyfikaty są poprawnie skonfigurowane na Twoich maszynach i że możesz skutecznie wysyłać ruch API. Poza tym zalecamy konsultację z zespołem bezpieczeństwa Twojej organizacji, aby jak najlepiej zrozumieć swoje potrzeby.
Dodatkowe wsparcie
Z funkcji mTLS możesz w pełni korzystać samodzielnie przez panel i API. Jeśli jednak chcesz najpierw włączyć mTLS w trybie shadow, skontaktuj się ze swoim Account Directorem lub otwórz zgłoszenie do pomocy, rozpoczynając nowy czat w prawym dolnym rogu tej strony.
Aneks: terminologia
Certyfikat CA: jeden z Twoich zaufanych certyfikatów, który bezpośrednio podpisał certyfikaty klienta wysyłane wraz z żądaniami. Możesz używać certyfikatów CA z podpisem własnym.
Przesłanie certyfikatu: dodanie certyfikatu CA do Twojego konta. Nie jest on jeszcze nigdzie wymuszany dla mTLS, ale możesz zacząć go konfigurować.
Zakres: konkretny projekt lub cała Twoja organizacja.
Aktywacja certyfikatu CA w zakresie: włącza mTLS dla tego konkretnego zakresu, a wszystkie żądania oparte na kluczu API będą wymagać certyfikatu klienta podpisanego przez ten certyfikat CA.
Dezaktywacja certyfikatu CA w zakresie: wyłącza użycie tego certyfikatu do weryfikacji żądań w tym zakresie. Jeśli dla danego zakresu nie pozostaną żadne certyfikaty, mTLS będzie w praktyce wyłączone.
Dziedziczenie certyfikatu: jeśli aktywujesz certyfikat dla swojej organizacji, zostanie on aktywowany również dla wszystkich projektów.
