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, כמו בדוגמה הקודמת.