OpenAI Mutual TLS umożliwia organizacjom skonfigurowanie dodatkowej warstwy zabezpieczeń dla ruchu OpenAI API. Po skonfigurowaniu żądania API powinny być kierowane do https://mtls.api.openai.com (lub https://mtls-eu.api.openai.com w przypadku klientów korzystających z rezydencji danych w UE), a ruch zostanie zaakceptowany tylko wtedy, gdy podany zostanie właściwy klucz API i certyfikat klienta. mTLS nie dotyczy panelu https://platform.openai.com. Ta funkcja jest obecnie w wersji 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 aktywowanie certyfikatu. Gdy certyfikat zostanie aktywowany dla projektu, wszystkie żądania API kierowane do tego projektu zaczną wymagać również odpowiedniego certyfikatu klienta. Jeśli w projekcie aktywowano wiele certyfikatów, możesz przekazać dowolny odpowiadający im certyfikat klienta. Jeśli certyfikat zostanie aktywowany dla organizacji, będzie dotyczyć wszystkich żądań API i będzie „dziedziczony” przez wszystkie projekty.
Wymagania dotyczące 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 wygasa w ciągu 1 dnia
łączny rozmiar certyfikatu musi być mniejszy niż 16 KB.
Wymagania dotyczące 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
Często zadawane pytania
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ługiwany w
/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
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 przekazywania certyfikatów klienta. Przykłady: requests w Pythonie, fetch w JS. Za pośrednictwem naszych oficjalnych zestawów SDK obsługujemy także zastępowanie klienta HTTP — przykład dla Pythona znajdziesz tutaj.
Przed wymuszeniem mTLS dla ruchu produkcyjnego upewnij się, że używany klient HTTP działa prawidłowo z żądaniami certyfikatów klienta (niektóre, np. WebSockets w określonych przeglądarkach, nie działają). 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ć?
Za pośrednictwem interfejsu panelu https://platform.openai.com/settings/organization/mtls właściciele organizacji mogą uzyskiwać dostęp do certyfikatów i je modyfikować. Każda osoba z kluczem Admin API Key (https://platform.openai.com/settings/organization/admin-keys) również może uzyskiwać dostęp do certyfikatów i je modyfikować, ale pamiętaj — jeśli aktywujesz Mutual TLS na poziomie organizacji, wymusisz certyfikaty także dla tych żądań API. Wszystkie zmiany mTLS są widoczne w dziennikach audytu.
Ile certyfikatów mogę mieć?
Każda organizacja może przesłać maksymalnie 50 certyfikatów, które można udostępniać między projektami, ale nie innym organizacjom. Możesz atomowo aktywować/dezaktywować certyfikat dla 10 projektów naraz. Możesz też aktywować/dezaktywować 10 certyfikatów naraz dla swojej organizacji lub dla 1 konkretnego projektu.
Czy mogę aktualizować lub usuwać certyfikaty?
Możesz aktualizować nazwy swoich certyfikatów, ale nie ich treść. Możesz także 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 także wymienić certyfikaty CA albo użyć certyfikatów klienta o krótszych okresach ważności.
Czy mogę używać dłuższych łańcuchów certyfikatów?
Obecnie obsługujemy tylko łańcuchy jednopoziomowe — tzn. Twój certyfikat CA powinien bezpośrednio podpisywać certyfikaty klienta. Jeśli masz dodatkowe pytania, skontaktuj się ze swoim opiekunem klienta.
Jaka jest zalecana konfiguracja?
Podczas początkowej konfiguracji tej funkcji zalecamy rozpoczęcie od projektu stagingowego, który nie obsługuje oficjalnego ruchu produkcyjnego. Wykorzystaj tę okazję, aby upewnić się, że certyfikaty są prawidłowo skonfigurowane na Twoich maszynach i że możesz skutecznie wysyłać ruch API. Poza tym zalecamy konsultację z zespołem ds. bezpieczeństwa w Twojej organizacji, aby jak najlepiej zrozumieć Twoje potrzeby.
Dodatkowe wsparcie
Możesz samodzielnie obsługiwać funkcję mTLS za pomocą panelu i API. Jeśli jednak chcesz najpierw włączyć mTLS w trybie shadow, skontaktuj się ze swoim opiekunem klienta lub otwórz zgłoszenie do pomocy technicznej, rozpoczynając nowy czat w prawym dolnym rogu tej strony.
Dodatek: terminologia
Certyfikat CA: jeden z Twoich zaufanych certyfikatów, który bezpośrednio podpisał certyfikaty klienta wysyłane przez Ciebie z żądaniami. Możesz używać samopodpisanych certyfikatów CA.
Przesłanie certyfikatu: dodanie certyfikatu CA do konta. Nie jest on jeszcze nigdzie wymuszany dla mTLS, ale możesz zacząć go konfigurować.
Zakres: konkretny projekt lub cała organizacja.
Aktywowanie certyfikatu CA w zakresie: włącza mTLS konkretnie dla tego zakresu, a wszystkie żądania oparte na kluczu API będą musiały wymagać certyfikatu klienta podpisanego przez certyfikat CA.
Dezaktywowanie certyfikatu CA w zakresie: wyłącza użycie tego certyfikatu do weryfikowania żądań w tym zakresie. Jeśli dla zakresu nie pozostały żadne certyfikaty, mTLS jest faktycznie wyłączony.
Dziedziczenie certyfikatu: jeśli aktywujesz certyfikat dla swojej organizacji, zostanie on aktywowany również dla wszystkich projektów.
