OpenAI Mutual TLS organizacijama omogućuje konfiguriranje dodatnog sloja sigurnosti za njihov OpenAI API promet. Nakon konfiguriranja, API zahtjevi trebaju se slati na https://mtls.api.openai.com (ili https://mtls-eu.api.openai.com za korisnike s rezidentnošću podataka u EU-u), a promet će biti prihvaćen samo ako su navedeni odgovarajući API ključ i klijentski certifikat. mTLS se ne primjenjuje na nadzornu ploču https://platform.openai.com. Ova je značajka trenutačno u beta verziji.
Kako postaviti integraciju mTLS-a?
Na navigacijskoj traci postavki vidjet ćete karticu „Mutual TLS”.
Prijenos certifikata
Aktiviranje certifikata
Nakon prijenosa certifikata, sljedeći je korak aktivirati certifikat. Nakon što se certifikat aktivira za projekt, svi API zahtjevi koji idu prema tom projektu počet će zahtijevati i odgovarajući klijentski certifikat. Ako projekt ima više aktiviranih certifikata, možete proslijediti bilo koji odgovarajući klijentski certifikat. Ako je certifikat aktiviran za organizaciju, primjenjivat će se na sve API zahtjeve i „nasljeđuju” ga svi projekti.
Zahtjevi za CA certifikate
Možete prenijeti bilo koji X.509 CA certifikat u PEM formatu koji ispunjava sljedeće zahtjeve:
izravno potpisuje klijentske certifikate koje namjeravate upotrebljavati ili služi kao sidro valjanog lanca certifikata koji predstavlja vaš klijent.
ima proširenja Certificate Authority, Subject Key Identifier i Authority Key Identifier (u formatu KeyIdentifier)
ima dopuštenja Key Usage: „Certificate Sign, CRL Sign”
ne istječe unutar 1 dana
ukupna veličina certifikata mora biti manja od 16 kB.
Zahtjevi za klijentske certifikate
Ako je za vašu organizaciju omogućena podrška za lanac certifikata, vaš klijent može predstaviti krajnji klijentski certifikat i posredničke certifikate potrebne za izgradnju valjanog lanca do aktivnog prenesenog certifikata. U suprotnom, klijentski certifikati moraju biti izravno potpisani certifikatima koje ste unaprijed prenijeli. Osim toga, vaši klijentski certifikati moraju ispunjavati sljedeće zahtjeve:
ima proširenja Subject Key Identifier i Authority Key Identifier (u formatu KeyIdentifier)
ima dopuštenja Key Usage: „Digital Signature, Key Encipherment”
ima dopuštenje Extended Key Usage: „TLS Web Client Authentication”
ima proširenje Subject Alternate Name
Podrška za lanac certifikata za API mTLS
Podrška za lanac certifikata omogućuje vašem klijentu da predstavi krajnji klijentski certifikat s posredničkim certifikatima potrebnima za izgradnju valjanog lanca do aktivnog prenesenog certifikata.
To vam može omogućiti rotiranje posredničkih certifikata bez prijenosa svakog novog posredničkog certifikata, sve dok aktivni preneseni certifikat koji se upotrebljava kao sidro pouzdanosti ostaje valjan.
Podrška za lanac certifikata trenutačno je dostupna na zahtjev. Obratite se svojem voditelju korisničkog računa ili otvorite zahtjev za podršku kako biste zatražili pristup.
Vaš klijent mora predstaviti sve potrebne posredničke certifikate. OpenAI ne dohvaća nedostajuće posredničke certifikate putem AIA-e. CRL i OCSP provjere i dalje nisu podržane.
Česta pitanja
Mogu li konfigurirati mTLS putem API-ja?
Da — za više informacija pogledajte API referencu na https://platform.openai.com/docs/api-reference/.
Koje krajnje točke podržavaju mTLS?
Tijekom ovog beta razdoblja mTLS je službeno podržan u
/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
Kako poslati klijentske certifikate uz zahtjev?
Za cURL zahtjev možete upotrijebiti opcije --cert i --key (pogledajte man stranicu ovdje). U većini drugih HTTP klijenata također postoje načini za prosljeđivanje klijentskih certifikata. Primjeri: requests u Pythonu, fetch u JS-u. Putem naših službenih SDK-ova podržavamo i nadjačavanje HTTP klijenta — pogledajte ovdje primjer za Python.
Kada je omogućena podrška za lanac certifikata, konfigurirajte HTTP klijent tako da predstavi krajnji klijentski certifikat i sve potrebne posredničke certifikate. Točna konfiguracija ovisi o vašem HTTP klijentu.
Prije nametanja mTLS-a za produkcijski promet provjerite ponaša li se HTTP klijent koji upotrebljavate dobro sa zahtjevima za klijentske certifikate (neki se, poput WebSocketsa u određenim preglednicima, ne ponašaju tako). Imajte na umu da naš poslužitelj ne pruža popis certificate_authorities u zahtjevu za klijentski certifikat.
Tko može pristupiti certifikatima i mijenjati ih?
Putem sučelja nadzorne ploče https://platform.openai.com/settings/organization/mtls, vlasnici organizacije mogu pristupiti certifikatima i mijenjati ih. Svatko s Admin API Key (https://platform.openai.com/settings/organization/admin-keys) također može pristupiti certifikatima i mijenjati ih, no imajte na umu — ako aktivirate Mutual TLS na razini organizacije, certifikati će se provoditi i za te API zahtjeve. Sve promjene mTLS-a vidljive su u zapisnicima nadzora.
Koliko certifikata mogu imati?
Svaka organizacija može prenijeti do 50 certifikata, koji se mogu dijeliti među projektima, ali ne i s drugim organizacijama. Certifikat možete atomski aktivirati/deaktivirati za 10 projekata odjednom. Alternativno, možete aktivirati/deaktivirati 10 certifikata odjednom za svoju organizaciju ili za 1 određeni projekt.
Mogu li ažurirati ili izbrisati certifikate?
Možete ažurirati nazive svojih certifikata, ali ne i njihov sadržaj. Certifikate možete i izbrisati ako trenutačno nisu aktivni ni u jednom opsegu.
Kako funkcionira opoziv certifikata?
Trenutačno ne podržavamo CRL ni OCSP provjere. Preporučena alternativa je da umjesto toga izbrišete ili rotirate svoj API ključ. Možete i zamijeniti svoje CA certifikate ili upotrebljavati klijentske certifikate s kraćim razdobljima valjanosti.
Mogu li upotrebljavati dulje lance certifikata?
Da, ako je za vašu organizaciju omogućena podrška za lanac certifikata. Vaš klijent mora predstaviti krajnji klijentski certifikat i sve potrebne posredničke certifikate kako bi OpenAI mogao provjeriti lanac do aktivnog prenesenog certifikata. Obratite se svojem voditelju korisničkog računa ili otvorite zahtjev za podršku kako biste zatražili pristup.
Koja je preporučena konfiguracija?
Pri početnom postavljanju ove značajke preporučujemo da započnete s pripremnim projektom koji ne poslužuje službeni produkcijski promet. Iskoristite ovu priliku kako biste provjerili jesu li vaši certifikati pravilno postavljeni na vašim računalima i možete li uspješno slati API promet. Osim toga, preporučujemo da se posavjetujete sa sigurnosnim timom svoje organizacije kako biste najbolje razumjeli svoje potrebe.
Dodatna podrška
Značajkom mTLS možete u potpunosti samostalno upravljati putem nadzorne ploče i API-ja. Međutim, ako biste najprije željeli omogućiti mTLS u načinu sjene, obratite se svojem voditelju računa ili otvorite zahtjev za podršku pokretanjem novog chata u donjem desnom kutu ove stranice.
Dodatak: Terminologija
CA certifikat: Jedan od vaših pouzdanih certifikata koji se upotrebljava za provjeru klijentskih certifikata. Može izravno potpisivati klijentske certifikate koje šaljete uz zahtjeve ili služiti kao sidro za lanac certifikata koji predstavlja vaš klijent. Možete upotrebljavati samopotpisane CA certifikate.
Prenesite certifikat: dodavanje CA certifikata na vaš račun. Još se nigdje ne primjenjuje za mTLS, ali ga možete početi konfigurirati.
Opseg: određeni projekt ili cijela vaša organizacija.
Aktiviranje CA certifikata u opsegu: omogućuje mTLS posebno za taj opseg, a svi zahtjevi utemeljeni na API ključu moraju uključivati klijentski certifikat koji se može provjeriti prema aktivnom CA certifikatu.
Deaktiviranje CA certifikata u opsegu: onemogućuje upotrebu ovog certifikata za provjeru zahtjeva u tom opsegu. Ako za taj opseg više nemate nijedan certifikat, mTLS je zapravo isključen.
Nasljeđivanje certifikata: ako aktivirate certifikat za svoju organizaciju, bit će aktiviran i za sve projekte.
