توفّر واجهة برمجة التطبيقات 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" في لوحة التحكّم في النطاق.
نطاقات قوائم التحكّم بالوصول
تعتمد واجهة برمجة التطبيقات هذه على نطاقات ملف التحكم في الوصول نفسها المستخدَمة في طرق Gmail sendAs:
- gmail.settings.basic
- هذا النطاق مطلوب لتعديل بروتوكول S/MIME الأساسي لإعدادات SendAs.
- 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 كما هو موضّح في المثال السابق.