इस दस्तावेज़ में, Gmail API में एस/एमआईएमई ईमेल सर्टिफ़िकेट इस्तेमाल करने का तरीका बताया गया है.
Gmail API, Google Workspace डोमेन में मौजूद उपयोगकर्ताओं के लिए, S/MIME ईमेल सर्टिफ़िकेट मैनेज करने का प्रोग्रामैटिक ऐक्सेस देता है.
सर्टिफ़िकेट के काम करने के लिए, एडमिन को डोमेन के लिए होस्ट किया गया एस/एमआईएमई चालू करना होगा.
एस/एमआईएमई स्टैंडर्ड, सार्वजनिक पासकोड एन्क्रिप्शन और एमआईएमई डेटा पर हस्ताक्षर करने के लिए एक स्पेसिफ़िकेशन उपलब्ध कराता है. जब किसी उपयोगकर्ता खाते में S/MIME सर्टिफ़िकेट कॉन्फ़िगर किए जाते हैं, तो Gmail उनका इस्तेमाल इन तरीकों से करता है:
उपयोगकर्ता के सर्टिफ़िकेट और निजी पासकोड का इस्तेमाल करके, भेजे जाने वाले ईमेल पर हस्ताक्षर करें.
यह कुकी, उपयोगकर्ता की निजी कुंजी का इस्तेमाल करके आने वाले ईमेल को डिक्रिप्ट करती है.
ईमेल पाने वाले व्यक्ति के सर्टिफ़िकेट और सार्वजनिक पासकोड का इस्तेमाल करके, भेजे जाने वाले ईमेल को एन्क्रिप्ट (सुरक्षित) करें.
भेजने वाले के सर्टिफ़िकेट और सार्वजनिक कुंजी की मदद से, आने वाले ईमेल की पुष्टि करें.
Gmail API का इस्तेमाल करके, अलग-अलग S/MIME सर्टिफ़िकेट जनरेट किए जा सकते हैं और उन्हें अपलोड किया जा सकता है. हर S/MIME सर्टिफ़िकेट, उपयोगकर्ता के ईमेल खाते के किसी खास उपनाम के लिए होता है. उपनाम में मुख्य ईमेल पता और पसंद के मुताबिक "इस पते से भेजें" वाले पते शामिल होते हैं. यह एपीआई, हर उपनाम के लिए एक S/MIME सर्टिफ़िकेट को डिफ़ॉल्ट के तौर पर मार्क करता है.
उपनामों के बारे में ज़्यादा जानने के लिए, Gmail API की मदद से उपनाम और हस्ताक्षर मैनेज करना लेख पढ़ें.
एपीआई ऐक्सेस करने की अनुमति देना
Gmail API को ऐक्सेस करने की अनुमति देने के लिए, इनमें से किसी एक तरीके का इस्तेमाल करें:
पूरे डोमेन को ऐक्सेस देने की सुविधा वाले सेवा खाते का इस्तेमाल करें. इन शब्दों के बारे में जानने के लिए, पुष्टि करने और अनुमति देने के बारे में जानें लेख पढ़ें. इस विकल्प को चालू करने के लिए, ऐक्सेस क्रेडेंशियल बनाएं लेख पढ़ें.
OAuth 2.0 के ऐक्सेस टोकन को पाने के लिए, OAuth 2.0 के स्टैंडर्ड फ़्लो का इस्तेमाल करें. इसके लिए, उपयोगकर्ता की सहमति ज़रूरी होती है. ज़्यादा जानकारी के लिए, पुष्टि करने और अनुमति देने के बारे में जानें लेख पढ़ें.
इस विकल्प का इस्तेमाल करने के लिए, डोमेन एडमिन को Google Admin console में, ईमेल भेजने और पाने के लिए S/MIME एन्क्रिप्शन चालू करें चेकबॉक्स को चुनना होगा. ज़्यादा जानकारी के लिए, Google Admin console में होस्ट किए गए S/MIME की सुविधा चालू करना लेख पढ़ें.
एसीएल के स्कोप
Gmail API, Gmail sendAs तरीकों की तरह ही, एक ही ACL स्कोप पर काम करता है:
gmail.settings.basic: इस स्कोप का इस्तेमाल, प्राइमरीSendAsS/MIME को अपडेट करने के लिए किया जाता है.gmail.settings.sharing: इस स्कोप का इस्तेमाल, S/MIME के लिए कस्टम from को अपडेट करने के लिए किया जाता है.
S/MIME कुंजियां कॉन्फ़िगर करना
settings.sendAs.smimeInfo संसाधन में, एस/एमआईएमई सर्टिफ़िकेट मैनेज करने के कई तरीके बताए गए हैं. हर
सर्टिफ़िकेट, किसी उपयोगकर्ता के लिए 'इस पते से भेजें' सुविधा के एक ईमेल पते से जुड़ा होता है.
किसी उपयोगकर्ता के लिए, 'इस पते से भेजें' सुविधा के तहत इस्तेमाल किए जाने वाले ईमेल पतों का पता लगाने के लिए, settings.sendAs संसाधन पर settings.sendAs.list तरीके का इस्तेमाल करें.
S/MIME कुंजी अपलोड करना
किसी उपयोगकर्ता के एलियास के लिए नई S/MIME कुंजी अपलोड करने के लिए, settings.sendAs.smimeInfo संसाधन पर settings.sendAs.smimeInfo.insert तरीके का इस्तेमाल करें. पाथ पैरामीटर का इस्तेमाल करके, टारगेट एलियास की पहचान करें:
userId: उपयोगकर्ता का ईमेल पता. सत्यापित उपयोगकर्ता के लिए, खास वैल्यूmeका इस्तेमाल करें.sendAsEmail: वह एलियास जिसके लिए आपको कुंजी अपलोड करनी है. यह ईमेल पता, इस अन्य नाम से भेजे गए ईमेल केFrom:हेडर में दिखता है.
एस/एमआईएमई सर्टिफ़िकेट और निजी कुंजी, उसी फ़ॉर्मैट में pkcs12 फ़ील्ड में मौजूद होनी चाहिए. अनुरोध में कोई अन्य फ़ील्ड सेट नहीं किया जाना चाहिए. pkcs12 फ़ील्ड में, उपयोगकर्ता का S/MIME पासकोड और हस्ताक्षर करने वाले सर्टिफ़िकेट की चेन, दोनों शामिल होती हैं. एपीआई, इस फ़ील्ड को स्वीकार करने से पहले, इस पर स्टैंडर्ड पुष्टि करता है. इससे इन बातों की पुष्टि होती है:
- विषय, दिए गए ईमेल पते से मेल खाता हो.
- समयसीमा खत्म होने की तारीखें मान्य हैं.
- सर्टिफ़िकेट जारी करने वाली संस्था (सीए), Google की भरोसेमंद सूची में शामिल हो.
- सर्टिफ़िकेट, Gmail की तकनीकी शर्तों के मुताबिक हों.
अगर कुंजी को एन्क्रिप्ट (सुरक्षित) किया गया है, तो पासवर्ड को encryptedKeyPassword फ़ील्ड में होना चाहिए. settings.sendAs.smimeInfo.insert तरीके को कॉल करने पर, settings.sendAs.smimeInfo संसाधन id मिलता है. इसका इस्तेमाल आने वाले समय में कुंजी को रेफ़र करने के लिए किया जाता है.
किसी उपयोगकर्ता की S/MIME कुंजियों की सूची बनाना
settings.sendAs.smimeInfo संसाधन पर settings.sendAs.smimeInfo.list तरीके का इस्तेमाल करके, दिए गए उपयोगकर्ता के लिए दिए गए उपनाम के S/MIME कुंजियों की सूची वापस पाएं. नीचे दिए गए पाथ पैरामीटर का इस्तेमाल करके, टारगेट किए गए एलियास की पहचान करें:
userId: उपयोगकर्ता का ईमेल पता. सत्यापित उपयोगकर्ता के लिए, खास वैल्यूmeका इस्तेमाल करें.sendAsEmail: वह एलियास जिसके लिए कुंजियों की सूची बनानी है. यह ईमेल पता, इस अन्य नाम से भेजे गए ईमेल केFrom:हेडर में दिखता है.
किसी उपनाम के लिए S/MIME कुंजियां वापस पाना
किसी उपयोगकर्ता के लिए, 'इस पते से भेजें' के तौर पर इस्तेमाल किए जाने वाले किसी खास ईमेल पते के लिए, खास S/MIME कुंजियां वापस पाने के लिए, settings.sendAs.smimeInfo संसाधन पर settings.sendAs.smimeInfo.get तरीके का इस्तेमाल करें. पाथ पैरामीटर का इस्तेमाल करके, टारगेट किए गए उपनाम की पहचान करें:
userId: उपयोगकर्ता का ईमेल पता. सत्यापित उपयोगकर्ता के लिए, खास वैल्यूmeका इस्तेमाल करें.sendAsEmail: वह दूसरा ईमेल पता जिसके लिए कुंजियां वापस लाई जा रही हैं. यह ईमेल पता, इस अन्य नाम से भेजे गए ईमेल केFrom:हेडर में दिखता है.
S/MIME कुंजी मिटाना
किसी उपनाम से तय की गई S/MIME कुंजी को मिटाने के लिए, settings.sendAs.smimeInfo संसाधन पर settings.sendAs.smimeInfo.delete तरीके का इस्तेमाल करें. पाथ पैरामीटर का इस्तेमाल करके, टारगेट के उपनाम की पहचान करें:
userId: उपयोगकर्ता का ईमेल पता. सत्यापित उपयोगकर्ता के लिए, खास वैल्यूmeका इस्तेमाल करें.sendAsEmail: वह दूसरा ईमेल पता जिसके लिए कुंजियां मिटाई जा रही हैं. यह ईमेल पता, इस अन्य नाम से भेजे गए ईमेल केFrom:हेडर में दिखता है.id:smimeInfoके लिए बदला न जा सकने वाला आईडी.
किसी उपनाम के लिए, डिफ़ॉल्ट एस/एमआईएमई कुंजी सेट करना
settings.sendAs.smimeInfo रिसॉर्स पर settings.sendAs.smimeInfo.setDefault तरीके का इस्तेमाल करके, तय की गई S/MIME कुंजी को तय किए गए उपनाम के लिए डिफ़ॉल्ट के तौर पर मार्क करें. पाथ पैरामीटर का इस्तेमाल करके, टारगेट के एलियास की पहचान करें:
userId: उपयोगकर्ता का ईमेल पता. सत्यापित उपयोगकर्ता के लिए, खास वैल्यूmeका इस्तेमाल करें.sendAsEmail: वह उपनाम जिसके लिए कुंजियों को डिफ़ॉल्ट के तौर पर सेट करना है. यह ईमेल पता, इस अन्य नाम से भेजे गए ईमेल केFrom:हेडर में दिखता है.id:smimeInfoके लिए बदला न जा सकने वाला आईडी.
कोड सैंपल
यहां दिए गए कोड सैंपल में, एक से ज़्यादा उपयोगकर्ताओं वाले संगठन के लिए, S/MIME सर्टिफ़िकेट मैनेज करने के लिए Gmail API का इस्तेमाल करने का तरीका बताया गया है:
S/MIME सर्टिफ़िकेट के लिए smimeInfo संसाधन बनाना
इस कोड सैंपल में, किसी फ़ाइल से सर्टिफ़िकेट को पढ़ने, उसे Base64URL स्ट्रिंग में एन्कोड करने, और उसे settings.sendAs.smimeInfo संसाधन पर pkcs12 फ़ील्ड को असाइन करने का तरीका बताया गया है:
Java
Python
S/MIME सर्टिफ़िकेट अपलोड करना
सर्टिफ़िकेट अपलोड करने के लिए, settings.sendAs.smimeInfo.insert तरीके का इस्तेमाल करें. साथ ही, अनुरोध के मुख्य हिस्से में settings.sendAs.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
CSV फ़ाइल में बताए गए उपयोगकर्ताओं के लिए सर्टिफ़िकेट अपलोड करने के लिए, CreateSmimeInfo और InsertSmimeInfo सैंपल का इस्तेमाल किया जा सकता है:
Python
CSV फ़ाइल में बताए गए उपयोगकर्ताओं के लिए सर्टिफ़िकेट अपलोड करने के लिए, create_smime_info और insert_smime_info सैंपल का इस्तेमाल किया जा सकता है:
सर्टिफ़िकेट मैनेजमेंट
इस सैंपल में, settings.sendAs.smimeInfo संसाधन के कई तरीकों को एक साथ इस्तेमाल किया गया है. इससे पता चलता है कि अपने संगठन के लिए सर्टिफ़िकेट कैसे मैनेज किए जाते हैं. यह उपयोगकर्ता के लिए उपलब्ध
सर्टिफ़िकेट की सूची दिखाता है. अगर डिफ़ॉल्ट सर्टिफ़िकेट की समयसीमा खत्म हो गई है या उसे सेट नहीं किया गया है, तो यह बताई गई फ़ाइल में मौजूद सर्टिफ़िकेट को अपलोड करता है. इसके बाद, यह उस सर्टिफ़िकेट को डिफ़ॉल्ट के तौर पर सेट करता है जिसकी समयसीमा सबसे बाद में खत्म होती है.
इसके बाद, यह फ़ंक्शन CSV फ़ाइल को प्रोसेस करता है. यह फ़ंक्शन, CSV फ़ाइल से सर्टिफ़िकेट डालें के पिछले सैंपल की तरह ही काम करता है.
Java
Python
मिलते-जुलते विषय
- Gmail API की मदद से, ईमेल पतों के उपनाम और हस्ताक्षर मैनेज करना
- Gmail API के स्कोप चुनना
- मैसेज को एन्क्रिप्ट (सुरक्षित) करने के लिए, होस्ट किए गए S/MIME की सुविधा चालू करना