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