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