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