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