این سند نحوه استفاده از گواهیهای ایمیل S/MIME را در API جیمیل توضیح میدهد.
رابط برنامهنویسی کاربردی (API) جیمیل، دسترسی برنامهنویسیشده برای مدیریت گواهیهای ایمیل S/MIME را برای کاربران در دامنهی Google Workspace فراهم میکند.
برای اینکه گواهیها کار کنند، مدیر باید Hosted S/MIME را برای دامنه فعال کند .
استاندارد S/MIME مشخصاتی را برای رمزگذاری کلید عمومی و امضای دادههای MIME ارائه میدهد. هنگامی که گواهیهای S/MIME در یک حساب کاربری پیکربندی میشوند، Gmail از آنها به روشهای زیر استفاده میکند:
ایمیلهای خروجی را با گواهی کاربر و کلید خصوصی امضا کنید.
رمزگشایی ایمیلهای دریافتی با کلید خصوصی کاربر.
ایمیلهای خروجی را با گواهی گیرنده و کلید عمومی رمزگذاری کنید.
ایمیل دریافتی را با گواهی فرستنده و کلید عمومی تأیید کنید.
شما میتوانید گواهیهای S/MIME جداگانه تولید کنید و آنها را با استفاده از API جیمیل آپلود کنید. هر گواهی S/MIME برای یک نام مستعار خاص برای یک حساب ایمیل کاربر است. نامهای مستعار شامل آدرس ایمیل اصلی و آدرسهای سفارشی "ارسال به عنوان" هستند. API یک گواهی S/MIME واحد را به عنوان پیشفرض برای هر نام مستعار علامتگذاری میکند.
برای اطلاعات بیشتر در مورد نامهای مستعار، به مدیریت نامهای مستعار و امضاها با Gmail API مراجعه کنید.
دسترسی API را مجاز کنید
برای اجازه دسترسی به API جیمیل، از یکی از روشهای زیر استفاده کنید:
از یک حساب کاربری سرویس با تفویض اختیار در سطح دامنه استفاده کنید. برای توضیح این اصطلاحات، به «درباره احراز هویت و مجوز» اطلاعات کسب کنید. برای فعال کردن این گزینه، به «ایجاد اعتبارنامههای دسترسی» مراجعه کنید.
از یک جریان استاندارد OAuth 2.0 استفاده کنید که برای دریافت توکن دسترسی OAuth 2.0 نیاز به رضایت کاربر نهایی دارد. برای اطلاعات بیشتر، به بخش «درباره احراز هویت و مجوز بیشتر بدانید» مراجعه کنید.
برای استفاده از این گزینه، مدیر دامنه باید کادر فعال کردن رمزگذاری S/MIME برای ارسال و دریافت ایمیلها را در کنسول مدیریت گوگل انتخاب کند. برای اطلاعات بیشتر، به بخش فعال کردن رمزگذاری میزبانیشده S/MIME در کنسول مدیریت گوگل خود مراجعه کنید.
دامنههای ACL
API جیمیل به همان محدودههای ACL که متدهای sendAs جیمیل از آن استفاده میکنند، متکی است:
gmail.settings.basic: این scope برای بهروزرسانیSendAsS/MIME اصلی مورد نیاز است.gmail.settings.sharing: این دامنه برای بهروزرسانی سفارشی از S/MIME مورد نیاز است.
پیکربندی کلیدهای S/MIME
منبع settings.sendAs.smimeInfo چندین روش برای مدیریت گواهیهای S/MIME ارائه میدهد. هر گواهی با یک نام مستعار send-as برای یک کاربر مرتبط است.
برای تعیین نامهای مستعار ارسالی برای یک کاربر، از متد settings.sendAs.list در منبع settings.sendAs استفاده کنید.
یک کلید S/MIME آپلود کنید
از متد settings.sendAs.smimeInfo.insert در منبع settings.sendAs.smimeInfo برای آپلود یک کلید S/MIME جدید برای یک نام مستعار متعلق به یک کاربر استفاده کنید. نام مستعار هدف را با استفاده از پارامترهای مسیر زیر شناسایی کنید:
userId: آدرس ایمیل کاربر. از مقدار ویژهmeبرای نشان دادن کاربر احراز هویت شده استفاده کنید.sendAsEmail: نام مستعاری که کلید را برای آن آپلود میکنید. این آدرس ایمیل در سربرگFrom:برای ایمیلهای ارسالی با استفاده از این نام مستعار نمایش داده میشود.
گواهی S/MIME و کلید خصوصی باید در فیلد pkcs12 با آن فرمت موجود باشند؛ هیچ فیلد دیگری نباید در درخواست تنظیم شود. فیلد pkcs12 شامل کلید S/MIME کاربر و زنجیره گواهی امضا است. API قبل از پذیرش این فیلد، اعتبارسنجیهای استاندارد را روی آن انجام میدهد و موارد زیر را تأیید میکند:
- موضوع با آدرس ایمیل مشخص شده مطابقت دارد.
- تاریخ انقضا معتبر است.
- مرجع صدور گواهی (CA) در فهرست مورد اعتماد گوگل قرار دارد.
- این گواهینامهها با محدودیتهای فنی جیمیل مطابقت دارند.
اگر کلید رمزگذاری شده باشد، رمز عبور باید در فیلد encryptedKeyPassword باشد. فراخوانی موفقیتآمیز متد settings.sendAs.smimeInfo.insert id منبع settings.sendAs.smimeInfo را که برای ارجاع به کلید در آینده استفاده میشود، برمیگرداند.
فهرست کردن کلیدهای S/MIME کاربر
از متد settings.sendAs.smimeInfo.list در منبع settings.sendAs.smimeInfo برای بازگرداندن لیست کلیدهای S/MIME برای کاربر داده شده برای نام مستعار داده شده استفاده کنید. نام مستعار هدف را با استفاده از پارامترهای مسیر زیر شناسایی کنید:
userId: آدرس ایمیل کاربر. از مقدار ویژهmeبرای نشان دادن کاربر احراز هویت شده استفاده کنید.sendAsEmail: نام مستعاری که کلیدها برای آن فهرست میشوند. این آدرس ایمیل در سربرگFrom:برای ایمیلهای ارسالی با استفاده از این نام مستعار نمایش داده میشود.
کلیدهای S/MIME را برای یک نام مستعار بازیابی کنید
از متد settings.sendAs.smimeInfo.get در منبع settings.sendAs.smimeInfo برای بازگرداندن کلیدهای S/MIME خاص برای یک نام مستعار send-as خاص برای یک کاربر استفاده کنید. نام مستعار هدف را با استفاده از پارامترهای مسیر زیر شناسایی کنید:
userId: آدرس ایمیل کاربر. از مقدار ویژهmeبرای نشان دادن کاربر احراز هویت شده استفاده کنید.sendAsEmail: نام مستعاری که کلیدها را برای آن بازیابی میکنید. این آدرس ایمیل در سربرگFrom:برای ایمیلهای ارسالی با استفاده از این نام مستعار نمایش داده میشود.
حذف کلید S/MIME
از متد settings.sendAs.smimeInfo.delete در منبع settings.sendAs.smimeInfo برای حذف کلید S/MIME مشخص شده از یک نام مستعار استفاده کنید. نام مستعار هدف را با استفاده از پارامترهای مسیر زیر شناسایی کنید:
userId: آدرس ایمیل کاربر. از مقدار ویژهmeبرای نشان دادن کاربر احراز هویت شده استفاده کنید.sendAsEmail: نام مستعاری که کلیدهای آن را حذف میکنید. این آدرس ایمیل در سربرگFrom:برای ایمیلهای ارسالی با استفاده از این نام مستعار نمایش داده میشود.id: شناسه تغییرناپذیر برایsmimeInfo.
تنظیم کلید پیشفرض S/MIME برای یک نام مستعار
از متد settings.sendAs.smimeInfo.setDefault در منبع settings.sendAs.smimeInfo برای علامتگذاری کلید S/MIME مشخصشده به عنوان پیشفرض برای نام مستعار مشخصشده استفاده کنید. نام مستعار هدف را با استفاده از پارامترهای مسیر زیر شناسایی کنید:
userId: آدرس ایمیل کاربر. از مقدار ویژهmeبرای نشان دادن کاربر احراز هویت شده استفاده کنید.sendAsEmail: نام مستعاری که قرار است کلیدهای آن به عنوان پیشفرض تنظیم شوند. این آدرس ایمیل در سربرگFrom:برای ایمیلهای ارسالی با استفاده از این نام مستعار نمایش داده میشود.id: شناسه تغییرناپذیر برایsmimeInfo.
نمونههای کد
نمونههای کد زیر نحوه استفاده از API جیمیل برای مدیریت گواهیهای S/MIME برای سازمانی با چندین کاربر را نشان میدهد:
ایجاد یک منبع smimeInfo برای گواهی S/MIME
این نمونه کد نحوه خواندن یک گواهی از یک فایل، کدگذاری آن به یک رشته Base64URL و اختصاص آن به فیلد pkcs12 در منبع settings.sendAs.smimeInfo را نشان میدهد:
جاوا
پایتون
یک گواهی S/MIME آپلود کنید
برای آپلود یک گواهی، متد settings.sendAs.smimeInfo.insert را فراخوانی کنید و منبع settings.sendAs.smimeInfo را در بدنه درخواست ارائه دهید:
جاوا
پایتون
مدیریت گواهیهای چندین کاربر
این نمونههای کد نحوه مدیریت گواهینامهها برای چندین کاربر در یک سازمان را در یک فراخوانی دستهای نشان میدهند:
درج گواهیها از فایل CSV
در زیر یک نمونه فایل CSV آمده است که شناسههای کاربر و مسیر گواهی هر کاربر را فهرست میکند:
$ cat certificates.csv
user1@example.com,/path/to/user1_cert.p12,cert_password_1
user2@example.com,/path/to/user2_cert.p12,cert_password_2
user3@example.com,/path/to/user3_cert.p12,cert_password_3
جاوا
شما میتوانید از نمونههای CreateSmimeInfo و InsertSmimeInfo برای آپلود گواهینامهها برای کاربران مشخصشده در یک فایل CSV استفاده کنید:
پایتون
شما میتوانید از نمونههای create_smime_info و insert_smime_info برای آپلود گواهینامهها برای کاربران مشخصشده در یک فایل CSV استفاده کنید:
مدیریت گواهی
این نمونه چندین روش از منبع settings.sendAs.smimeInfo را ترکیب میکند تا نحوه مدیریت گواهینامهها برای سازمان شما را نشان دهد. این نمونه گواهینامههای کاربر را فهرست میکند. اگر گواهینامه پیشفرض منقضی شده یا تنظیم نشده باشد، گواهینامه موجود در فایل مشخص شده را بارگذاری میکند. سپس گواهینامهای را که انقضای آن به آینده دورتری مربوط میشود، به عنوان پیشفرض تنظیم میکند.
سپس این تابع، مشابه نمونهی قبلیِ درج گواهیها از یک فایل CSV ، یک فایل CSV را پردازش میکند.
جاوا
پایتون
مباحث مرتبط
- مدیریت نامهای مستعار و امضاها با Gmail API
- انتخاب محدودههای API جیمیل
- فعال کردن Hosted S/MIME برای رمزگذاری پیام