Gmail S/MIME API מספק גישה פרוגרמטית לניהול אישורי אימייל S/MIME למשתמשים בדומיין Google Workspace.
כדי שהאישורים יפעלו, האדמין צריך להפעיל S/MIME עבור הדומיין.
תקן S/MIME מספק מפרט להצפנה של מפתח ציבורי ולחתימה של נתוני MIME. הגדרת אישורי S/MIME בחשבון של משתמש גורמת ל-Gmail להשתמש באישור הזה בדרכים הבאות:
- Gmail משתמש באישור ובמפתח הפרטי של המשתמש כדי לחתום על אימיילים יוצאים.
- Gmail משתמש במפתח הפרטי של המשתמש כדי לפענח אימיילים נכנסים.
- Gmail משתמש באישור ובמפתח הציבורי של הנמען כדי להצפין אימיילים יוצאים.
- Gmail משתמש באישור ובמפתח הציבורי של השולח כדי לאמת אימייל נכנס.
אתם יוצרים אישורי S/MIME נפרדים ומעלים אותם באמצעות ה-API. כל אישור S/MIME מיועד לכינוי ספציפי של חשבון אימייל של משתמש. כינויים כוללים את כתובת האימייל הראשית וגם כתובות מותאמות אישית של 'שליחה בתור'. אישור S/MIME יחיד מסומן כברירת המחדל לכל כתובת אימייל חלופית.
מתן הרשאה לגישה באמצעות API
יש שתי דרכים לאשר גישה ל-API:
- אפשר להשתמש בחשבון שירות עם הענקת הרשאות גישה ברמת הדומיין. הסבר על המונחים האלה מופיע במאמר סקירה כללית על מונחים שקשורים לאימות ולהרשאה. מידע על הפעלת האפשרות הזו זמין במאמר יצירת חשבון שירות עם הענקת גישה ברמת הדומיין
- אתם יכולים להשתמש בתהליך OAuth2 רגיל שדורש הסכמה של משתמש הקצה כדי לקבל אסימון גישה מסוג OAuth2. מידע נוסף זמין במאמר בנושא סקירה כללית על אימות והרשאה. כדי להשתמש באפשרות הזו, אדמין הדומיין צריך לסמן את תיבת הסימון 'הפעלת גישת משתמשי קצה ל-S/MIME API' בלוח הבקרה של הדומיין.
היקפים של רשימות ACL
ממשק ה-API הזה מסתמך על אותם היקפי ACL כמו השיטות Gmail sendAs:
- gmail.settings.basic
- היקף ההרשאה הזה נדרש לעדכון של S/MIME הראשי של 'שליחה בשם'.
- gmail.settings.sharing
- ההיקף הזה נדרש לעדכון של S/MIME מותאם אישית מ.
שימוש ב-API
במשאב users.settings.sendAs.smimeInfo מוגדרות השיטות שבהן משתמשים כדי לנהל אישורי S/MIME. כל אישור משויך לכינוי אחד של 'שליחה בשם' של משתמש.
העלאת מפתח S/MIME
משתמשים ב-method smimeInfo.insert() כדי להעלות מפתח S/MIME חדש לכינוי ששייך למשתמש. מזהים את הכינוי של היעד באמצעות הפרמטרים הבאים:
- userId
- כתובת האימייל של המשתמש. אפשר להשתמש בערך המיוחד
meכדי לציין את המשתמש שמאומת כרגע. - sendAsEmail
- הכינוי שאליו מעלים את המפתח. זו כתובת האימייל שמופיעה בכותרת 'מאת:' בהודעות אימייל שנשלחות באמצעות הכתובת החלופית הזו.
אישור ה-S/MIME והמפתח הפרטי צריכים להיות בפורמט הזה בשדה pkcs12. אסור להגדיר שדות אחרים בבקשה. השדה PKCS12 אמור להכיל גם את מפתח ה-S/MIME של המשתמש וגם את שרשרת אישורי החתימה. ממשק ה-API מבצע אימותים רגילים בשדה הזה לפני שהוא מקבל אותו, ומוודא את הדברים הבאים:
- הנושא תואם לכתובת האימייל שצוינה.
- זמני התפוגה תקינים.
- רשות האישורים (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
משתמשים ב-method smimeInfo.delete() כדי למחוק את מפתח ה-S/MIME שצוין מכינוי. כדי לזהות את הכינוי של היעד, משתמשים בפרמטרים הבאים:
- userId
- כתובת האימייל של המשתמש. אפשר להשתמש בערך המיוחד
meכדי לציין את המשתמש שמאומת כרגע. - sendAsEmail
- הכינוי שאליו משויכים המפתחות שאתם מאחזרים. זו כתובת האימייל שמופיעה בכותרת 'מאת:' של אימייל שנשלח באמצעות הכינוי הזה.
- id [מזהה]
- המזהה הקבוע של SmimeInfo.
הגדרת מפתח S/MIME שמשמש כברירת מחדל לכתובת אימייל חלופית
משתמשים ב-method smimeInfo.setDefault() כדי לסמן את מפתח ה-S/MIME שצוין כברירת המחדל עבור הכינוי שצוין. מזהים את הכינוי של היעד באמצעות הפרמטרים הבאים:
- userId
- כתובת האימייל של המשתמש. אפשר להשתמש בערך המיוחד
meכדי לציין את המשתמש שמאומת כרגע. - sendAsEmail
- הכינוי שאליו משויכים המפתחות שאתם מאחזרים. זו כתובת האימייל שמופיעה בכותרת 'מאת:' של אימייל שנשלח באמצעות הכינוי הזה.
- id [מזהה]
- המזהה הקבוע של SmimeInfo.
קוד לדוגמה
בדוגמאות הקוד הבאות אפשר לראות איך משתמשים ב-API כדי לנהל אישורי 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:
ניהול אישורים
בדוגמה הזו משולבות כמה קריאות ל-API של smimeInfo כדי להראות איך אפשר לנהל אישורים בארגון. הוא מפרט את האישורים של המשתמש, ואם תוקף אישור ברירת המחדל פג או שהוא לא הוגדר, הוא מעלה את האישור שנמצא בקובץ שצוין. לאחר מכן, המערכת מגדירה כברירת מחדל את האישור שתוקפו יפוג הכי מאוחר.
לאחר מכן, הפונקציה הזו נקראת מפונקציה שמבצעת עיבוד של קובץ CSV, כמו בדוגמה הקודמת.