توفّر واجهة برمجة تطبيقات S/MIME في Gmail إمكانية الوصول آليًا لإدارة شهادات البريد الإلكتروني S/MIME للمستخدمين في نطاق Google Workspace.
على المشرف تفعيل S/MIME للنطاق لكي تعمل الشهادات.
يوفّر معيار S/MIME مواصفات لتشفير المفتاح العمومي وتوقيع بيانات MIME. يؤدي إعداد شهادات S/MIME في حساب أحد المستخدمين إلى أن يستخدم Gmail هذه الشهادة بالطرق التالية:
- يستخدم Gmail شهادة المستخدم ومفتاحه الخاص لتوقيع الرسائل الصادرة.
- يستخدم Gmail المفتاح الخاص للمستخدم لفك تشفير الرسائل الواردة.
- يستخدم Gmail شهادة المستلِم والمفتاح العام لتشفير الرسائل الصادرة.
- يستخدم Gmail شهادة المرسل ومفتاحه العام للتحقّق من البريد الوارد.
يمكنك إنشاء شهادات S/MIME فردية وتحميلها باستخدام واجهة برمجة التطبيقات. كل شهادة S/MIME مخصّصة لاسم مستعار معيّن لحساب بريد إلكتروني خاص بمستخدم. تتضمّن الأسماء المستعارة عنوان البريد الإلكتروني الأساسي بالإضافة إلى عناوين "الإرسال باسم" المخصّصة. يتم وضع علامة على شهادة S/MIME واحدة باعتبارها الشهادة التلقائية لكل اسم مستعار.
منح الإذن بالوصول إلى واجهة برمجة التطبيقات
هناك شكلان من أشكال منح الإذن بالوصول إلى واجهة برمجة التطبيقات:
- يمكنك استخدام حساب خدمة مع تفويض على مستوى النطاق. للحصول على شرح لهذه المصطلحات، يُرجى الرجوع إلى نظرة عامة على مصطلحات المصادقة والتفويض. للحصول على معلومات حول تفعيل هذا الخيار، يُرجى الرجوع إلى إنشاء حساب خدمة مع تفويض على مستوى النطاق.
- يمكنك استخدام مسار OAuth2 عادي يتطلّب موافقة المستخدم النهائي للحصول على رمز مميّز للوصول إلى OAuth2. لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة حول المصادقة والتفويض. لاستخدام هذا الخيار، على مشرف النطاق وضع علامة في مربّع الاختيار "تفعيل وصول المستخدم النهائي إلى واجهة برمجة التطبيقات S/MIME" في "لوحة تحكّم النطاق".
نطاقات ACL
تعتمد واجهة برمجة التطبيقات هذه على نطاقات قوائم التحكم بالوصول نفسها التي تستخدمها طرق Gmail sendAs:
- gmail.settings.basic
- هذا النطاق مطلوب لتعديل S/MIME الأساسي الخاص بميزة "الإرسال باسم".
- gmail.settings.sharing
- هذا النطاق مطلوب لتعديل من S/MIME المخصّص.
استخدام واجهة برمجة التطبيقات
يوفر مصدر users.settings.sendAs.smimeInfo الطرق التي تستخدمها لإدارة شهادات S/MIME. يرتبط كل شهادة باسم مستعار واحد للمستخدم.
تحميل مفتاح S/MIME
استخدِم طريقة smimeInfo.insert() لتحميل مفتاح S/MIME جديد لاسم مستعار يخصّ مستخدمًا. يمكنك تحديد الاسم المستعار للهدف باستخدام المَعلمات التالية:
- userId
- عنوان البريد الإلكتروني للمستخدم يمكنك استخدام القيمة الخاصة
me
للإشارة إلى المستخدم الذي تم إثبات هويته حاليًا. - sendAsEmail
- الاسم المستعار الذي تحمّل المفتاح إليه. هذا هو عنوان البريد الإلكتروني الذي يظهر في العنوان "من:" للرسائل الإلكترونية المُرسَلة باستخدام هذا الاسم المستعار.
يجب أن تكون شهادة S/MIME والمفتاح الخاص متوفّرَين في الحقل pkcs12
بهذا التنسيق، ويجب عدم ضبط أي حقول أخرى في الطلب. من المتوقّع أن يحتوي حقل PKCS12 على مفتاح S/MIME الخاص بالمستخدم وسلسلة شهادات التوقيع. تُجري واجهة برمجة التطبيقات عمليات التحقّق العادية من صحة هذا الحقل قبل قبوله، وذلك من خلال التحقّق من ما يلي:
- يتطابق الموضوع مع عنوان البريد الإلكتروني المحدّد.
- فترات انتهاء الصلاحية صالحة.
- مرجع التصديق (CA) الذي أصدر الشهادة مُدرَج في قائمتنا للمراجع الموثوق بها.
- تتطابق الشهادات مع القيود الفنية في Gmail.
إذا كان المفتاح مشفّرًا، يجب أن تكون كلمة المرور في الحقل encryptedKeyPassword
. ستعرض طلبات insert() الناجحة معرّف smimeInfo الذي يمكن استخدامه للإشارة إلى المفتاح في المستقبل.
عرض قائمة بمفاتيح S/MIME الخاصة بالمستخدم
استخدِم طريقة smimeInfo.list() لعرض قائمة بمفاتيح S/MIME للمستخدم المحدّد للاسم المستعار المحدّد. يمكنك تحديد الاسم المستعار للهدف باستخدام المَعلمات التالية:
- userId
- عنوان البريد الإلكتروني للمستخدم يمكنك استخدام القيمة الخاصة
me
للإشارة إلى المستخدم الذي تم إثبات هويته حاليًا. - sendAsEmail
- الاسم المستعار الذي سيتم عرض المفاتيح الخاصة به. هذا هو عنوان البريد الإلكتروني الذي يظهر في العنوان "من:" للرسائل الإلكترونية المُرسَلة باستخدام هذا الاسم المستعار.
استرداد مفاتيح S/MIME لاسم مستعار
استخدِم طريقة smimeInfo.get() لعرض مفاتيح S/MIME المحدّدة لاسم مستعار محدّد "إرسال باسم" خاص بمستخدم. يمكنك تحديد الاسم المستعار للهدف باستخدام المَعلمات التالية:
- userId
- عنوان البريد الإلكتروني للمستخدم يمكنك استخدام القيمة الخاصة
me
للإشارة إلى المستخدم الذي تم إثبات هويته حاليًا. - sendAsEmail
- الاسم المستعار الذي تسترد المفاتيح منه. هذا هو عنوان البريد الإلكتروني الذي يظهر في العنوان "من:" للرسائل الإلكترونية المُرسَلة باستخدام هذا الاسم المستعار.
حذف مفتاح S/MIME
استخدِم طريقة smimeInfo.delete() لحذف مفتاح S/MIME المحدّد من اسم مستعار. يمكنك تحديد الاسم المستعار للهدف باستخدام المَعلمات التالية:
- userId
- عنوان البريد الإلكتروني للمستخدم يمكنك استخدام القيمة الخاصة
me
للإشارة إلى المستخدم الذي تم إثبات هويته حاليًا. - sendAsEmail
- الاسم المستعار الذي تسترد المفاتيح منه. هذا هو عنوان البريد الإلكتروني الذي يظهر في العنوان "من:" للرسائل الإلكترونية المُرسَلة باستخدام هذا الاسم المستعار.
- id
- المعرّف غير القابل للتغيير الخاص بـ SmimeInfo.
ضبط مفتاح S/MIME التلقائي لاسم مستعار
استخدِم طريقة smimeInfo.setDefault() لوضع علامة على مفتاح S/MIME المحدّد باعتباره المفتاح التلقائي للاسم المستعار المحدّد. يمكنك تحديد الاسم المستعار للهدف باستخدام المَعلمات التالية:
- userId
- عنوان البريد الإلكتروني للمستخدم يمكنك استخدام القيمة الخاصة
me
للإشارة إلى المستخدم الذي تم إثبات هويته حاليًا. - sendAsEmail
- الاسم المستعار الذي تسترد المفاتيح منه. هذا هو عنوان البريد الإلكتروني الذي يظهر في العنوان "من:" للرسائل الإلكترونية المُرسَلة باستخدام هذا الاسم المستعار.
- id
- المعرّف غير القابل للتغيير الخاص بـ SmimeInfo.
نموذج التعليمات البرمجية
توضّح نماذج الرموز التالية كيفية استخدام واجهة برمجة التطبيقات لإدارة شهادات S/MIME لمؤسسة تضم عدة مستخدمين.
إنشاء مصدر SmimeInfo لشهادة S/MIME
يوضّح نموذج الرمز التالي كيفية قراءة شهادة من ملف، وترميزها إلى سلسلة base64url، وتعيينها للحقل pkcs12
الخاص بالمرجع smimeInfo
:
Java
Python
تحميل شهادة S/MIME
لتحميل شهادة، اتّصِل بـ
smimeInfo.insert
،
وقدِّم مورد smimeInfo
في نص الطلب:
Java
Python
أمثلة على إدارة شهادات العديد من المستخدمين
قد تحتاج إلى إدارة شهادات للعديد من المستخدمين في المؤسسة في آنٍ واحد. تعرض الأمثلة التالية كيفية إدارة الشهادات لعدة مستخدمين في طلب مجمّع واحد.
إدراج الشهادات من ملف 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
Java
يمكنك الاستفادة من طلبَي createSmimeInfo
وinsertSmimeInfo
من الخطوات السابقة لتحميل الشهادات على النحو المحدّد في ملف CSV:
Python
يمكنك الاستفادة من طلبَي create_smime_info
وinsert_smime_info
من الخطوات السابقة لتحميل الشهادات على النحو المحدّد في ملف CSV:
إدارة الشهادات
يجمع هذا المثال عدة طلبات من واجهة برمجة التطبيقات smimeInfo
لتوضيح كيفية إدارة الشهادات في مؤسستك. تعرض هذه السمة الشهادات الخاصة بالمستخدم، وفي حال انتهاء صلاحية الشهادة التلقائية أو عدم ضبطها، يتم تحميل الشهادة المتوفّرة في الملف المحدّد. بعد ذلك، يتم ضبط الشهادة التي يكون تاريخ انتهاء صلاحيتها الأبعد في المستقبل كشهادة تلقائية.
يتم بعد ذلك استدعاء هذا المتغير من دالة تعالج ملف CSV كما في المثال السابق.