TLS متقابل OpenAI به سازمانها امکان میدهد یک لایه امنیتی اضافی برای ترافیک API مربوط به OpenAI خود پیکربندی کنند. پس از پیکربندی، درخواستهای API باید به https://mtls.api.openai.com (یا برای مشتریان محل اقامت داده اتحادیه اروپا، به https://mtls-eu.api.openai.com) ارسال شوند و ترافیک فقط در صورتی پذیرفته میشود که کلید API و گواهی کلاینت درست ارائه شوند. mTLS برای داشبورد https://platform.openai.com اعمال نمیشود. این قابلیت در حال حاضر در نسخه بتا است.
چگونه یکپارچهسازی mTLS را راهاندازی کنم؟
در نوار پیمایش تنظیمات، زبانه «TLS متقابل» را خواهید دید.
بارگذاری گواهی
فعالسازی گواهی
پس از بارگذاری گواهی، گام بعدی فعالسازی گواهی شماست. پس از اینکه یک گواهی برای پروژهای فعال شد، همه درخواستهای API به آن پروژه نیازمند گواهی کلاینت متناظر نیز خواهند بود. اگر یک پروژه چند گواهی فعال داشته باشد، میتوانید هر گواهی کلاینت متناظر را ارسال کنید. اگر گواهیای برای سازمان فعال شود، به همه درخواستهای API اعمال میشود و همه پروژهها آن را «به ارث میبرند».
الزامات گواهی CA
میتوانید هر گواهی CA از نوع X.509 در قالب PEM را که الزامات زیر را داشته باشد آپلود کنید:
گواهیهای کلاینتی را که قصد استفاده از آنها را دارید مستقیماً امضا کند، یا لنگر یک زنجیره گواهی معتبر باشد که کلاینت شما ارائه میکند.
دارای افزونههای Certificate Authority، Subject Key Identifier و Authority Key Identifier (در قالب KeyIdentifier) باشد
مجوزهای Key Usage: «Certificate Sign, CRL Sign» را داشته باشد
طوری تنظیم نشده باشد که ظرف ۱ روز منقضی شود
اندازه کل گواهی باید کمتر از 16kb باشد.
الزامات گواهی کلاینت
اگر پشتیبانی از زنجیره گواهی برای سازمان شما فعال باشد، کلاینت شما میتواند گواهی برگ کلاینت و گواهیهای میانیِ لازم برای ساخت یک زنجیره معتبر تا یک گواهی آپلودشده فعال را ارائه کند. در غیر این صورت، گواهیهای کلاینت باید مستقیماً توسط گواهیهایی امضا شده باشند که از قبل آپلود کردهاید. بهجز این مورد، گواهیهای کلاینت شما باید الزامات زیر را داشته باشند:
دارای افزونههای Subject Key Identifier و Authority Key Identifier (در قالب KeyIdentifier) باشد
مجوزهای Key Usage: «Digital Signature, Key Encipherment» را داشته باشد
مجوز Extended Key Usage: «TLS Web Client Authentication» را داشته باشد
دارای افزونه Subject Alternate Name باشد
پشتیبانی از زنجیره گواهی برای mTLS در API
پشتیبانی از زنجیره گواهی به کلاینت شما امکان میدهد گواهی برگ کلاینت را همراه با گواهیهای میانیِ لازم برای ساخت یک زنجیره معتبر تا یک گواهی آپلودشده فعال ارائه کند.
این قابلیت به شما اجازه میدهد گواهیهای میانی را بدون آپلود هر گواهی میانی جدید چرخش دهید، به شرطی که گواهی آپلودشده فعال که بهعنوان لنگر اعتماد استفاده میشود معتبر بماند.
پشتیبانی از زنجیره گواهی در حال حاضر با درخواست قابل دسترسی است. برای درخواست دسترسی، با مدیر حساب خود تماس بگیرید یا یک تیکت پشتیبانی باز کنید.
کلاینت شما باید همه گواهیهای میانیِ لازم را ارائه کند. OpenAI گواهیهای میانیِ جاافتاده را از طریق AIA واکشی نمیکند. بررسیهای CRL و OCSP همچنان پشتیبانی نمیشوند.
پرسشهای متداول
آیا میتوانم mTLS را از طریق API پیکربندی کنم؟
بله — برای اطلاعات بیشتر میتوانید مرجع API را در https://platform.openai.com/docs/api-reference/ ببینید.
کدام نقاط پایان از 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 استفاده کنید (صفحه راهنما را اینجا ببینید). در بیشتر کلاینتهای HTTP دیگر نیز راههایی برای ارسال گواهیهای کلاینت وجود دارد. نمونهها: requests در پایتون، fetch در js. از طریق SDKهای رسمی ما، امکان جایگزینکردن کلاینت HTTP را نیز پشتیبانی میکنیم — برای نمونهای در پایتون اینجا را ببینید.
وقتی پشتیبانی از زنجیره گواهی فعال است، کلاینت HTTP خود را طوری پیکربندی کنید که گواهی برگ کلاینت و همه گواهیهای میانیِ لازم را ارائه کند. پیکربندی دقیق به کلاینت HTTP شما بستگی دارد.
پیش از اعمال mTLS برای ترافیک تولید، مطمئن شوید کلاینت HTTP مورد استفاده شما با درخواستهای گواهی کلاینت بهدرستی کار میکند (برخی، مانند WebSockets در بعضی مرورگرها، چنین نیستند). توجه داشته باشید که سرور ما در درخواست گواهی کلاینت، فهرست certificate_authorities ارائه نمیکند.
چه کسانی میتوانند به گواهیها دسترسی داشته باشند و آنها را تغییر دهند؟
از طریق رابط کاربری داشبورد https://platform.openai.com/settings/organization/mtls، مالکان سازمان میتوانند به گواهیها دسترسی داشته باشند و آنها را تغییر دهند. هر کسی که کلید API ادمین داشته باشد (https://platform.openai.com/settings/organization/admin-keys) نیز میتواند به گواهیها دسترسی داشته باشد/آنها را تغییر دهد، اما توجه کنید — اگر Mutual TLS را در سطح سازمان فعال کنید، برای این درخواستهای API نیز گواهیها را الزامی میکنید. همه تغییرات mTLS در گزارشهای ممیزی قابل مشاهدهاند.
چند گواهی میتوانم داشته باشم؟
هر سازمان میتواند حداکثر ۵۰ گواهی بارگذاری کند که میتوانند بین پروژهها به اشتراک گذاشته شوند، اما نه با سازمانهای دیگر. میتوانید هر بار یک گواهی را برای ۱۰ پروژه بهصورت یک عملیات اتمی فعال/غیرفعال کنید. همچنین میتوانید هر بار ۱۰ گواهی را برای سازمان خود یا برای ۱ پروژه مشخص فعال/غیرفعال کنید.
آیا میتوانم گواهیها را بهروزرسانی یا حذف کنم؟
میتوانید نام گواهیهای خود را بهروزرسانی کنید، اما نه محتوای آنها را. همچنین اگر گواهیها در حال حاضر در هیچ محدودهای فعال نباشند، میتوانید آنها را حذف کنید.
ابطال گواهی چگونه کار میکند؟
در حال حاضر، از بررسیهای CRL یا OCSP پشتیبانی نمیکنیم. جایگزین پیشنهادی این است که بهجای آن کلید API خود را حذف یا چرخش دهید. همچنین میتوانید گواهیهای CA خود را جایگزین کنید یا از گواهیهای کلاینت با دوره اعتبار کوتاهتر استفاده کنید.
آیا میتوانم از زنجیرههای گواهی طولانیتر استفاده کنم؟
بله، اگر پشتیبانی از زنجیره گواهی برای سازمان شما فعال باشد. کلاینت شما باید گواهی برگ کلاینت و هر گواهی میانیِ لازم را ارائه کند تا OpenAI بتواند زنجیره را تا یک گواهی آپلودشده فعال تأیید کند. برای درخواست دسترسی، با مدیر حساب خود تماس بگیرید یا یک تیکت پشتیبانی باز کنید.
پیکربندی پیشنهادی چیست؟
هنگام راهاندازی اولیه این قابلیت، توصیه میکنیم با یک پروژه staging شروع کنید که ترافیک رسمی تولید را سرویس نمیدهد. از این فرصت استفاده کنید تا مطمئن شوید گواهیهایتان بهدرستی روی ماشینهای شما تنظیم شدهاند و میتوانید ترافیک API را با موفقیت ارسال کنید. گذشته از این، توصیه میکنیم برای درک بهتر نیازهای خود با تیم امنیت سازمانتان مشورت کنید.
پشتیبانی بیشتر
میتوانید قابلیت mTLS را بهطور کامل و بهصورت سلفسرویس از طریق داشبورد و API مدیریت کنید. بااینحال، اگر میخواهید ابتدا mTLS را در حالت سایه فعال کنید، لطفاً با مدیر حساب خود تماس بگیرید یا با شروع یک گفتوگوی جدید از گوشه پایین سمت راست این صفحه، تیکت پشتیبانی باز کنید.
پیوست: اصطلاحات
گواهی CA: یکی از گواهیهای مورد اعتماد شما که برای تأیید گواهیهای کلاینت استفاده میشود. این گواهی میتواند مستقیماً گواهیهای کلاینتی را که همراه درخواستها ارسال میکنید امضا کند یا بهعنوان لنگر زنجیره گواهی ارائهشده توسط کلاینت شما عمل کند. میتوانید از گواهیهای CA خودامضا استفاده کنید.
آپلود گواهی: افزودن یک گواهی CA به حساب شما. این گواهی هنوز در هیچجا برای mTLS اعمال نمیشود، اما میتوانید پیکربندی آن را آغاز کنید.
دامنه: یک پروژه مشخص یا کل سازمان شما.
فعالسازی یک گواهی CA در یک دامنه: mTLS را بهطور مشخص برای آن دامنه فعال میکند، و همه درخواستهای مبتنی بر کلید API باید شامل گواهی کلاینتی باشند که در برابر گواهی CA فعال قابل تأیید باشد.
غیرفعالسازی یک گواهی CA در یک دامنه: استفاده از این گواهی برای تأیید درخواستها در این دامنه را غیرفعال میکند. اگر برای آن دامنه هیچ گواهیای باقی نمانده باشد، mTLS عملاً خاموش میشود.
بهارثبردن گواهی: اگر گواهیای را برای سازمان خود فعال کنید، برای همه پروژهها نیز فعال خواهد شد.
