رابط برنامهنویسی کاربردی Gmail S/MIME دسترسی برنامهنویسیشده برای مدیریت گواهیهای ایمیل S/MIME را برای کاربران در یک دامنه Google Workspace فراهم میکند.
برای اینکه گواهیها کار کنند، مدیر باید S/MIME را برای دامنه فعال کند .
استاندارد S/MIME مشخصاتی را برای رمزگذاری کلید عمومی و امضای دادههای MIME ارائه میدهد. پیکربندی گواهیهای S/MIME در حساب کاربری باعث میشود Gmail از آن گواهی به روشهای زیر استفاده کند:
- جیمیل از گواهی و کلید خصوصی کاربر برای امضای ایمیلهای خروجی استفاده میکند.
- جیمیل از کلید خصوصی کاربر برای رمزگشایی ایمیلهای دریافتی استفاده میکند.
- جیمیل از گواهی و کلید عمومی گیرنده برای رمزگذاری ایمیلهای خروجی استفاده میکند.
- جیمیل از گواهی و کلید عمومی فرستنده برای تأیید ایمیل دریافتی استفاده میکند.
شما گواهیهای S/MIME جداگانهای تولید میکنید و آنها را با استفاده از API آپلود میکنید. هر گواهی S/MIME برای یک نام مستعار خاص برای یک حساب ایمیل کاربر است. نامهای مستعار شامل آدرس ایمیل اصلی و همچنین آدرسهای سفارشی "ارسال به عنوان" هستند. یک گواهی S/MIME واحد به عنوان پیشفرض برای هر نام مستعار مشخص شده است.
مجوز دسترسی به API
دو نوع مجوز دسترسی به API وجود دارد:
- شما میتوانید از یک حساب کاربری سرویس با تفویض اختیار در سطح دامنه استفاده کنید. برای توضیح این شرایط، به مرور شرایط احراز هویت و مجوز مراجعه کنید. برای کسب اطلاعات در مورد فعال کردن این گزینه، به ایجاد یک حساب کاربری سرویس با تفویض اختیار در سطح دامنه مراجعه کنید.
- شما میتوانید از یک جریان استاندارد OAuth2 که برای دریافت توکن دسترسی Oauth2 نیاز به رضایت کاربر نهایی دارد، استفاده کنید. برای اطلاعات بیشتر، به نمای کلی احراز هویت و مجوز مراجعه کنید. برای استفاده از این گزینه، مدیر دامنه باید کادر انتخاب "دسترسی کاربر نهایی S/MIME API فعال شد" را در پنل کنترل دامنه فعال کند.
دامنههای ACL
این API به همان محدودههای ACL که متدهای sendAs در Gmail از آن استفاده میکنند، متکی است:
- تنظیمات اولیه جیمیل
- این محدوده برای بهروزرسانی SendAs S/MIME اصلی مورد نیاز است.
- تنظیمات.جیمیل.اشتراکگذاری
- این دامنه برای بهروزرسانی سفارشی از S/MIME مورد نیاز است.
با استفاده از API
منبع users.settings.sendAs.smimeInfo روشهایی را که برای مدیریت گواهیهای S/MIME استفاده میکنید، ارائه میدهد. هر گواهی با یک نام مستعار send-as برای یک کاربر مرتبط است.
یک کلید S/MIME آپلود کنید
از متد smimeInfo.insert() برای آپلود یک کلید S/MIME جدید برای یک نام مستعار متعلق به یک کاربر استفاده کنید. شما نام مستعار هدف را با استفاده از پارامترهای زیر شناسایی میکنید:
- شناسه کاربری
- آدرس ایمیل کاربر. میتوانید از مقدار ویژه
meبرای نشان دادن کاربر احراز هویت شده فعلی استفاده کنید. - ارسال به عنوان ایمیل
- نام مستعاری که کلید را برای آن آپلود میکنید. این آدرس ایمیلی است که در سربرگ "From:" برای ایمیلهای ارسالی با استفاده از این نام مستعار نمایش داده میشود.
گواهی S/MIME و کلید خصوصی باید در فیلد pkcs12 با آن فرمت موجود باشند؛ هیچ فیلد دیگری نباید در درخواست تنظیم شود. انتظار میرود فیلد PKCS12 شامل کلید S/MIME کاربر و زنجیره گواهی امضا باشد. API قبل از پذیرش این فیلد، اعتبارسنجیهای استاندارد را روی آن انجام میدهد و موارد زیر را تأیید میکند:
- موضوع با آدرس ایمیل مشخص شده مطابقت دارد.
- تاریخ انقضا معتبر است.
- مرجع صدور گواهی (CA) در فهرست معتبر ما قرار دارد.
- این گواهینامهها با محدودیتهای فنی جیمیل مطابقت دارند.
اگر کلید رمزگذاری شده باشد، رمز عبور باید در فیلد encryptedKeyPassword باشد. فراخوانیهای موفق insert() شناسه smimeInfo را برمیگرداند که میتواند برای ارجاع به کلید در آینده استفاده شود.
فهرست کردن کلیدهای S/MIME کاربر
از متد smimeInfo.list() برای برگرداندن لیست کلیدهای S/MIME برای کاربر داده شده و برای نام مستعار داده شده استفاده کنید. شما نام مستعار هدف را با استفاده از پارامترهای زیر شناسایی میکنید:
- شناسه کاربری
- آدرس ایمیل کاربر. میتوانید از مقدار ویژه
meبرای نشان دادن کاربر احراز هویت شده فعلی استفاده کنید. - ارسال به عنوان ایمیل
- نام مستعاری که کلیدها برای آن فهرست میشوند. این آدرس ایمیلی است که در سربرگ "From:" برای ایمیلهای ارسالی با استفاده از این نام مستعار نمایش داده میشود.
کلیدهای S/MIME را برای یک نام مستعار بازیابی کنید
از متد smimeInfo.get() برای برگرداندن کلیدهای S/MIME خاص برای یک نام مستعار ارسالی خاص برای یک کاربر استفاده کنید. شما نام مستعار هدف را با استفاده از پارامترهای زیر شناسایی میکنید:
- شناسه کاربری
- آدرس ایمیل کاربر. میتوانید از مقدار ویژه
meبرای نشان دادن کاربر احراز هویت شده فعلی استفاده کنید. - ارسال به عنوان ایمیل
- نام مستعاری که کلیدها را برای آن بازیابی میکنید. این آدرس ایمیلی است که در سربرگ "From:" برای ایمیلهای ارسالی با استفاده از این نام مستعار نمایش داده میشود.
حذف کلید S/MIME
از متد smimeInfo.delete() برای حذف کلید S/MIME مشخص شده از یک نام مستعار استفاده کنید. شما نام مستعار هدف را با استفاده از پارامترهای زیر شناسایی میکنید:
- شناسه کاربری
- آدرس ایمیل کاربر. میتوانید از مقدار ویژه
meبرای نشان دادن کاربر احراز هویت شده فعلی استفاده کنید. - ارسال به عنوان ایمیل
- نام مستعاری که کلیدها را برای آن بازیابی میکنید. این آدرس ایمیلی است که در سربرگ "From:" برای ایمیلهای ارسالی با استفاده از این نام مستعار نمایش داده میشود.
- شناسه
- شناسه تغییرناپذیر برای SmimeInfo.
تنظیم کلید پیشفرض S/MIME برای یک نام مستعار
از متد smimeInfo.setDefault() برای علامتگذاری کلید S/MIME مشخصشده به عنوان پیشفرض برای نام مستعار مشخصشده استفاده کنید. شما نام مستعار هدف را با استفاده از پارامترهای زیر شناسایی میکنید:
- شناسه کاربری
- آدرس ایمیل کاربر. میتوانید از مقدار ویژه
meبرای نشان دادن کاربر احراز هویت شده فعلی استفاده کنید. - ارسال به عنوان ایمیل
- نام مستعاری که کلیدها را برای آن بازیابی میکنید. این آدرس ایمیلی است که در سربرگ "From:" برای ایمیلهای ارسالی با استفاده از این نام مستعار نمایش داده میشود.
- شناسه
- شناسه تغییرناپذیر برای SmimeInfo.
کد نمونه
نمونههای کد زیر نحوهی استفاده از API برای مدیریت گواهیهای S/MIME برای سازمانی با چندین کاربر را نشان میدهند.
ایجاد یک منبع SmimeInfo برای گواهی S/MIME
نمونه کد زیر خواندن یک گواهی از فایل، کدگذاری آن به یک رشته base64url و اختصاص آن به فیلد pkcs12 از منبع smimeInfo را نشان میدهد:
جاوا
پایتون
آپلود گواهی S/MIME
برای آپلود یک گواهی، smimeInfo.insert را فراخوانی کنید و منبع 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 مشخص شده است، استفاده کنید:
مدیریت گواهی
این مثال چندین فراخوانی از API مربوط به smimeInfo را ترکیب میکند تا نشان دهد چگونه میتوانید گواهینامههای سازمان خود را مدیریت کنید. این مثال گواهینامههای کاربر را فهرست میکند و اگر گواهینامه پیشفرض منقضی شده یا تنظیم نشده باشد، گواهینامهای را که در فایل مشخص شده یافت میشود، آپلود میکند. سپس گواهینامهای را که انقضای آن در آینده دورتر است، به عنوان پیشفرض تنظیم میکند.
سپس این از تابعی که یک فایل CSV را پردازش میکند، مانند مثال قبلی، فراخوانی میشود.