এই ডকুমেন্টটিতে জিমেইল এপিআই (Gmail API)-এর সাথে এস/এমআইএমই (S/MIME) ইমেইল সার্টিফিকেট কীভাবে ব্যবহার করতে হয়, তা ব্যাখ্যা করা হয়েছে।
জিমেইল এপিআই একটি গুগল ওয়ার্কস্পেস ডোমেইনের ব্যবহারকারীদের জন্য এস/এমআইএমই ইমেল সার্টিফিকেট পরিচালনা করার প্রোগ্রাম্যাটিক অ্যাক্সেস প্রদান করে।
সার্টিফিকেটগুলো কার্যকর হওয়ার জন্য অ্যাডমিনিস্ট্রেটরকে ডোমেইনটির জন্য হোস্টেড S/MIME চালু করতে হবে।
S/MIME স্ট্যান্ডার্ড MIME ডেটার পাবলিক কী এনক্রিপশন এবং সাইনিংয়ের জন্য একটি স্পেসিফিকেশন প্রদান করে। যখন আপনি কোনো ইউজার অ্যাকাউন্টের জন্য S/MIME সার্টিফিকেট কনফিগার করেন, Gmail সেগুলোকে নিম্নলিখিত উপায়ে ব্যবহার করে:
ব্যবহারকারীর সার্টিফিকেট এবং প্রাইভেট কী দিয়ে বহির্গামী মেইলে স্বাক্ষর করুন।
ব্যবহারকারীর প্রাইভেট কী ব্যবহার করে আগত মেইল ডিক্রিপ্ট করুন।
প্রাপকের সার্টিফিকেট এবং পাবলিক কী ব্যবহার করে প্রেরিত মেইল এনক্রিপ্ট করুন।
প্রেরকের সার্টিফিকেট এবং পাবলিক কী ব্যবহার করে আগত মেইল যাচাই করুন।
আপনি Gmail API ব্যবহার করে স্বতন্ত্র S/MIME সার্টিফিকেট তৈরি এবং আপলোড করতে পারেন। প্রতিটি S/MIME সার্টিফিকেট ব্যবহারকারীর ইমেল অ্যাকাউন্টের একটি নির্দিষ্ট অ্যালিয়াসের জন্য হয়ে থাকে। অ্যালিয়াসগুলোর মধ্যে প্রাথমিক ইমেল ঠিকানা এবং কাস্টম 'সেন্ড-অ্যাজ' ঠিকানা অন্তর্ভুক্ত থাকে। API প্রতিটি অ্যালিয়াসের জন্য একটিমাত্র S/MIME সার্টিফিকেটকে ডিফল্ট হিসেবে চিহ্নিত করে।
অ্যালিয়াস সম্পর্কে আরও তথ্যের জন্য, “Gmail API ব্যবহার করে অ্যালিয়াস ও সিগনেচার পরিচালনা করুন” দেখুন।
এপিআই অ্যাক্সেস অনুমোদন করুন
জিমেইল এপিআই-তে অ্যাক্সেস অনুমোদন করতে, নিম্নলিখিত পদ্ধতিগুলোর মধ্যে একটি ব্যবহার করুন:
ডোমেন-ব্যাপী কর্তৃত্ব অর্পণ সহ একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করুন। এই পদগুলির ব্যাখ্যার জন্য, প্রমাণীকরণ এবং অনুমোদন সম্পর্কে জানুন দেখুন। এই বিকল্পটি সক্রিয় করতে, অ্যাক্সেস ক্রেডেনশিয়াল তৈরি করুন দেখুন।
একটি OAuth 2.0 অ্যাক্সেস টোকেন পেতে ব্যবহারকারীর সম্মতি প্রয়োজন এমন একটি স্ট্যান্ডার্ড OAuth 2.0 ফ্লো ব্যবহার করুন। আরও তথ্যের জন্য, অথেনটিকেশন এবং অথরাইজেশন সম্পর্কে জানুন দেখুন।
এই বিকল্পটি ব্যবহার করতে, ডোমেইন অ্যাডমিনিস্ট্রেটরকে অবশ্যই গুগল অ্যাডমিন কনসোলে ‘Enable S/MIME encryption for sending and receiving emails’ চেকবক্সটি নির্বাচন করতে হবে। আরও তথ্যের জন্য, ‘Turn on hosted S/MIME in your Admin console ’ দেখুন।
অনুমোদনের পরিধি
জিমেইল এপিআই, জিমেইলের sendAs মেথডগুলোর মতোই একই OAuth স্কোপের উপর নির্ভর করে:
gmail.settings.basic: প্রাথমিকSendAsS/MIME আপডেট করার জন্য এটি প্রয়োজন।gmail.settings.sharing: S/MIME থেকে কাস্টম আপডেট করার জন্য এটি প্রয়োজন।
S/MIME কী কনফিগার করুন
settings.sendAs.smimeInfo রিসোর্সটি S/MIME সার্টিফিকেট ব্যবস্থাপনার জন্য বেশ কয়েকটি মেথড প্রদান করে। প্রতিটি সার্টিফিকেট একজন ব্যবহারকারীর জন্য একটি send-as অ্যালিয়াসের সাথে যুক্ত থাকে।
কোনো ব্যবহারকারীর সেন্ড-অ্যাজ অ্যালিয়াস নির্ধারণ করতে, settings.sendAs রিসোর্সের settings.sendAs.list মেথডটি ব্যবহার করুন।
একটি S/MIME কী আপলোড করুন
কোনো ব্যবহারকারীর অ্যালিয়াসের জন্য একটি নতুন S/MIME কী আপলোড করতে settings.sendAs.smimeInfo রিসোর্সের settings.sendAs.smimeInfo.insert মেথডটি ব্যবহার করুন। নিম্নলিখিত পাথ প্যারামিটার ব্যবহার করে টার্গেট অ্যালিয়াসটি শনাক্ত করুন:
userId: ব্যবহারকারীর ইমেল ঠিকানা। প্রমাণীকৃত ব্যবহারকারীকে নির্দেশ করতেmeবিশেষ মানটি ব্যবহার করুন।sendAsEmail: যে অ্যালিয়াসের জন্য আপনি কী-টি আপলোড করছেন। এই অ্যালিয়াস ব্যবহার করে পাঠানো মেইলেরFrom:হেডারে এই ইমেল ঠিকানাটি দেখা যায়।
pkcs12 ফিল্ডে PKCS #12 ফরম্যাটে S/MIME সার্টিফিকেট এবং প্রাইভেট কী প্রদান করুন। রিকোয়েস্টের অন্য কোনো ফিল্ড সেট করবেন না। pkcs12 ফিল্ডটিতে ব্যবহারকারীর S/MIME কী এবং সাইনিং সার্টিফিকেট চেইন উভয়ই থাকে। API এই ফিল্ডটি গ্রহণ করার আগে নিম্নলিখিত বিষয়গুলো যাচাই করে স্ট্যান্ডার্ড ভ্যালিডেশন সম্পাদন করে:
- বিষয়টি নির্দিষ্ট ইমেল ঠিকানার সাথে মিলে যায়।
- মেয়াদোত্তীর্ণ তারিখগুলো বৈধ।
- সার্টিফিকেট প্রদানকারী কর্তৃপক্ষ (CA) গুগলের বিশ্বস্ত তালিকায় রয়েছে।
- সার্টিফিকেটগুলো জিমেইলের প্রযুক্তিগত সীমাবদ্ধতার সাথে সামঞ্জস্যপূর্ণ।
যদি কী-টি এনক্রিপ্ট করা থাকে, তাহলে encryptedKeyPassword ফিল্ডে পাসওয়ার্ডটি দিন। settings.sendAs.smimeInfo.insert মেথডটির একটি সফল কল settings.sendAs.smimeInfo রিসোর্স id ফেরত দেয়, যা ভবিষ্যতে কী-টিকে নির্দেশ করতে ব্যবহৃত হয়।
একজন ব্যবহারকারীর S/MIME কীগুলির তালিকা
প্রদত্ত অ্যালিয়াসের জন্য প্রদত্ত ব্যবহারকারীর S/MIME কী-গুলির তালিকা ফেরত পেতে settings.sendAs.smimeInfo রিসোর্সের settings.sendAs.smimeInfo.list মেথডটি ব্যবহার করুন। নিম্নলিখিত পাথ প্যারামিটারগুলি ব্যবহার করে টার্গেট অ্যালিয়াসটি শনাক্ত করুন:
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এর অপরিবর্তনীয় আইডি।
মুছে ফেলা কী আর দেখা বা ব্যবহার করা যায় না। সংশ্লিষ্ট পাবলিক কী ব্যবহার করে এনক্রিপ্ট করা প্রাপ্ত S/MIME ইমেল আপনি ডিক্রিপ্ট করতে পারবেন না। কী মুছে ফেলার আগে, এর প্রদানকারী কর্তৃপক্ষের (CA) কাছে এটি প্রত্যাহার করুন।
একটি অ্যালিয়াসের জন্য ডিফল্ট S/MIME কী সেট করুন
নির্দিষ্ট অ্যালিয়াসের জন্য নির্দিষ্ট S/MIME কী-কে ডিফল্ট হিসেবে চিহ্নিত করতে settings.sendAs.smimeInfo রিসোর্সের settings.sendAs.smimeInfo.setDefault মেথডটি ব্যবহার করুন। নিম্নলিখিত পাথ প্যারামিটার ব্যবহার করে টার্গেট অ্যালিয়াসটি শনাক্ত করুন:
userId: ব্যবহারকারীর ইমেল ঠিকানা। প্রমাণীকৃত ব্যবহারকারীকে নির্দেশ করতেmeবিশেষ মানটি ব্যবহার করুন।sendAsEmail: যে অ্যালিয়াসটির জন্য ডিফল্ট কী সেট করতে হবে। এই অ্যালিয়াস ব্যবহার করে পাঠানো মেইলেরFrom:হেডারে এই ইমেল ঠিকানাটি দেখা যায়।id:smimeInfoএর অপরিবর্তনীয় আইডি।
একজন ব্যবহারকারীর সেন্ড-অ্যাস অ্যালিয়াসের জন্য ডিফল্ট হিসেবে শুধুমাত্র একটি S/MIME কী থাকে। settings.sendAs.smimeInfo.setDefault মেথডটি কল করলে পূর্ববর্তী ডিফল্টটি বাতিল হয়ে যায়।
যখন কোনো ব্যবহারকারী একটি নির্দিষ্ট কী দিয়ে স্বাক্ষরিত S/MIME বার্তা গ্রহণ করেন, তখন Gmail সংশ্লিষ্ট ব্যবহারকারীর কাছে পাঠানো মেইল এনক্রিপ্ট করার সময় ডিফল্ট হিসেবে সবচেয়ে ভবিষ্যতের not_before বৈধতার তারিখযুক্ত কী-টিকে যুক্ত করে। ব্যবহারকারী যাদের সাথে ইতিমধ্যে যোগাযোগ করেছেন, সেই Gmail ব্যবহারকারীরা যাতে নতুন ডিফল্ট কী ব্যবহার করেন, তা নিশ্চিত করতে, নতুন ডিফল্ট কী-টির not_before তারিখটি পূর্ববর্তী ডিফল্ট কী-টির চেয়ে পরবর্তী তারিখের হতে হবে অথবা পূর্ববর্তী ডিফল্ট কী-টি বাতিল করতে হবে।
কোডের নমুনা
নিম্নলিখিত কোড নমুনাগুলি দেখায় কিভাবে একাধিক ব্যবহারকারী সহ একটি সংস্থার জন্য S/MIME সার্টিফিকেট পরিচালনা করতে Gmail API ব্যবহার করতে হয়:
একটি S/MIME সার্টিফিকেটের জন্য একটি smimeInfo রিসোর্স তৈরি করুন
এই কোড নমুনাটি দেখায় কিভাবে একটি ফাইল থেকে একটি সার্টিফিকেট পড়তে হয়, সেটিকে একটি Base64URL স্ট্রিং-এ এনকোড করতে হয়, এবং settings.sendAs.smimeInfo রিসোর্সের pkcs12 ফিল্ডে অ্যাসাইন করতে হয়:
জাভা
পাইথন
একটি S/MIME সার্টিফিকেট আপলোড করুন
সার্টিফিকেট আপলোড করতে, settings.sendAs.smimeInfo.insert মেথডটি কল করুন এবং রিকোয়েস্টের বডিতে settings.sendAs.smimeInfo রিসোর্সটি সরবরাহ করুন:
জাভা
পাইথন
একাধিক ব্যবহারকারীর সার্টিফিকেট পরিচালনা করুন
এই কোড নমুনাগুলো দেখায় কিভাবে একটি প্রতিষ্ঠানে একাধিক ব্যবহারকারীর সার্টিফিকেট একটি ব্যাচ কলের মাধ্যমে পরিচালনা করা যায়:
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
জাভা
আপনি একটি CSV ফাইলে উল্লেখিত ব্যবহারকারীদের সার্টিফিকেট আপলোড করার জন্য CreateSmimeInfo এবং InsertSmimeInfo স্যাম্পলগুলো ব্যবহার করতে পারেন:
পাইথন
আপনি একটি CSV ফাইলে নির্দিষ্ট করা ব্যবহারকারীদের সার্টিফিকেট আপলোড করতে create_smime_info এবং insert_smime_info স্যাম্পলগুলো ব্যবহার করতে পারেন:
সার্টিফিকেট ব্যবস্থাপনা
এই নমুনাটি আপনার প্রতিষ্ঠানের জন্য সার্টিফিকেট কীভাবে পরিচালনা করতে হয় তা দেখানোর জন্য settings.sendAs.smimeInfo রিসোর্সের কয়েকটি পদ্ধতিকে একত্রিত করে। এটি ব্যবহারকারীর সার্টিফিকেটগুলো তালিকাভুক্ত করে। যদি ডিফল্ট সার্টিফিকেটটির মেয়াদ শেষ হয়ে যায় বা সেট করা না থাকে, তবে এটি নির্দিষ্ট ফাইলে থাকা সার্টিফিকেটটি আপলোড করে। এরপর, যে সার্টিফিকেটটির মেয়াদ সবচেয়ে ভবিষ্যতে শেষ হবে, সেটিকে ডিফল্ট হিসেবে সেট করে।
এই ফাংশনটি তখন একটি CSV ফাইল প্রসেস করে, যা পূর্ববর্তী 'CSV ফাইল থেকে সার্টিফিকেট সন্নিবেশ করান' নমুনাটির অনুরূপ।
জাভা
পাইথন
সম্পর্কিত বিষয়
- জিমেইল এপিআই দিয়ে অ্যালিয়াস ও সিগনেচার পরিচালনা করুন
- জিমেইল এপিআই স্কোপগুলি বেছে নিন
- বার্তা এনক্রিপশনের জন্য হোস্টেড S/MIME চালু করুন।