Gmail S/MIME API, Google Workspace ডোমেনের ব্যবহারকারীদের জন্য S/MIME ইমেল সার্টিফিকেট পরিচালনা করার জন্য প্রোগ্রাম্যাটিক অ্যাক্সেস প্রদান করে।
সার্টিফিকেটগুলি কাজ করার জন্য একজন প্রশাসককে ডোমেনের জন্য S/MIME সক্ষম করতে হবে।
S/MIME স্ট্যান্ডার্ডটি পাবলিক কী এনক্রিপশন এবং MIME ডেটা স্বাক্ষর করার জন্য একটি স্পেসিফিকেশন প্রদান করে। ব্যবহারকারীর অ্যাকাউন্টে S/MIME সার্টিফিকেট কনফিগার করার ফলে Gmail নিম্নলিখিত উপায়ে সেই সার্টিফিকেট ব্যবহার করতে বাধ্য হয়:
- জিমেইল ব্যবহারকারীর সার্টিফিকেট এবং প্রাইভেট কী ব্যবহার করে বহির্গামী মেইলে স্বাক্ষর করে।
- জিমেইল ব্যবহারকারীর ব্যক্তিগত কী ব্যবহার করে আগত মেইল ডিক্রিপ্ট করে।
- জিমেইল আউটগোয়িং মেল এনক্রিপ্ট করার জন্য প্রাপকের সার্টিফিকেট এবং পাবলিক কী ব্যবহার করে।
- জিমেইল ইনকামিং মেইল যাচাই করার জন্য প্রেরকের সার্টিফিকেট এবং পাবলিক কী ব্যবহার করে।
আপনি পৃথক S/MIME সার্টিফিকেট তৈরি করেন এবং API ব্যবহার করে সেগুলি আপলোড করেন। প্রতিটি S/MIME সার্টিফিকেট ব্যবহারকারীর ইমেল অ্যাকাউন্টের জন্য একটি নির্দিষ্ট উপনামের জন্য। উপনামের মধ্যে প্রাথমিক ইমেল ঠিকানার পাশাপাশি কাস্টম "Send As" ঠিকানাও অন্তর্ভুক্ত থাকে। প্রতিটি উপনামের জন্য একটি একক S/MIME সার্টিফিকেট ডিফল্ট হিসাবে চিহ্নিত করা হয়।
API অ্যাক্সেস অনুমোদন করা হচ্ছে
API-তে অ্যাক্সেস অনুমোদনের দুটি রূপ রয়েছে:
- আপনি ডোমেন-ওয়াইড ডেলিগেশন অফ অথরিটি সহ একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করতে পারেন। এই শর্তাবলীর ব্যাখ্যার জন্য, প্রমাণীকরণ এবং অনুমোদনের ওভারভিউ শর্তাবলী দেখুন। এই বিকল্পটি সক্ষম করার বিষয়ে তথ্যের জন্য, ডোমেন-ওয়াইড ডেলিগেশন অফ অথরিটি সহ একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন দেখুন।
- Oauth2 অ্যাক্সেস টোকেন পেতে আপনি একটি স্ট্যান্ডার্ড OAuth2 ফ্লো ব্যবহার করতে পারেন যার জন্য শেষ ব্যবহারকারীর সম্মতি প্রয়োজন। আরও তথ্যের জন্য, প্রমাণীকরণ এবং অনুমোদনের ওভারভিউ দেখুন। এই বিকল্পটি ব্যবহার করতে, ডোমেন প্রশাসককে ডোমেন নিয়ন্ত্রণ প্যানেলে "S/MIME API শেষ ব্যবহারকারীর অ্যাক্সেস সক্ষম" চেকবক্সটি সক্ষম করতে হবে।
ACL স্কোপ
এই APIটি Gmail sendAs পদ্ধতির মতো একই ACL স্কোপের উপর নির্ভর করে:
- জিমেইল.সেটিংস.বেসিক
- প্রাথমিক SendAs S/MIME আপডেট করার জন্য এই স্কোপটি প্রয়োজন।
- জিমেইল.সেটিংস.শেয়ারিং
- S/MIME থেকে কাস্টম আপডেট করার জন্য এই স্কোপটি প্রয়োজন।
API ব্যবহার করে
users.settings.sendAs.smimeInfo রিসোর্সটি S/MIME সার্টিফিকেট পরিচালনা করার জন্য আপনার ব্যবহৃত পদ্ধতিগুলি প্রদান করে। প্রতিটি সার্টিফিকেট একজন ব্যবহারকারীর জন্য একটি সেন্ড-অ্যাজ উপনামের সাথে যুক্ত।
একটি S/MIME কী আপলোড করুন
ব্যবহারকারীর নিজস্ব উপনামের জন্য একটি নতুন S/MIME কী আপলোড করতে smimeInfo.insert() পদ্ধতি ব্যবহার করুন। আপনি নিম্নলিখিত পরামিতিগুলি ব্যবহার করে লক্ষ্য উপনাম সনাক্ত করতে পারেন:
- ব্যবহারকারী আইডি
- ব্যবহারকারীর ইমেল ঠিকানা। বর্তমানে প্রমাণিত ব্যবহারকারীকে নির্দেশ করতে আপনি বিশেষ মান
meব্যবহার করতে পারেন। - ইমেইল পাঠান
- আপনি যে উপনামের জন্য কীটি আপলোড করছেন। এই উপনাম ব্যবহার করে প্রেরিত মেইলের জন্য "প্রেরক:" শিরোনামে এটিই ইমেল ঠিকানা প্রদর্শিত হয়।
S/MIME সার্টিফিকেট এবং প্রাইভেট কী pkcs12 ফিল্ডে সেই ফর্ম্যাটে থাকা উচিত; অনুরোধে অন্য কোনও ফিল্ড সেট করা উচিত নয়। PKCS12 ফিল্ডে ব্যবহারকারীর S/MIME কী এবং সাইনিং সার্টিফিকেট চেইন উভয়ই থাকবে বলে আশা করা হচ্ছে। API এই ফিল্ডটি গ্রহণ করার আগে স্ট্যান্ডার্ড ভ্যালিডেশনগুলি সম্পাদন করে, নিম্নলিখিতগুলি যাচাই করে:
- বিষয়বস্তু নির্দিষ্ট ইমেল ঠিকানার সাথে মিলে যায়।
- মেয়াদোত্তীর্ণ বৈধ।
- ইস্যুকারী সার্টিফিকেট কর্তৃপক্ষ (CA) আমাদের বিশ্বস্ত তালিকায় রয়েছে।
- সার্টিফিকেটগুলি Gmail এর প্রযুক্তিগত সীমাবদ্ধতার সাথে মেলে।
যদি কীটি এনক্রিপ্ট করা থাকে তাহলে পাসওয়ার্ডটি encryptedKeyPassword ক্ষেত্রে থাকা উচিত। সফল insert() কলগুলি smimeInfo এর আইডি ফিরিয়ে দেবে যা ভবিষ্যতে কীটি উল্লেখ করার জন্য ব্যবহার করা যেতে পারে।
ব্যবহারকারীর S/MIME কীগুলির তালিকা তৈরি করুন
প্রদত্ত উপনামের জন্য প্রদত্ত ব্যবহারকারীর জন্য S/MIME কীগুলির তালিকা ফেরত দিতে smimeInfo.list() পদ্ধতি ব্যবহার করুন। আপনি নিম্নলিখিত পরামিতিগুলি ব্যবহার করে লক্ষ্য উপনাম সনাক্ত করতে পারেন:
- ব্যবহারকারী আইডি
- ব্যবহারকারীর ইমেল ঠিকানা। বর্তমানে প্রমাণিত ব্যবহারকারীকে নির্দেশ করতে আপনি বিশেষ মান
meব্যবহার করতে পারেন। - ইমেইল পাঠান
- কী তালিকাভুক্ত করার উপনাম। এই উপনাম ব্যবহার করে প্রেরিত মেইলের জন্য "প্রেরক:" শিরোনামে এটিই ইমেল ঠিকানা প্রদর্শিত হয়।
একটি উপনামের জন্য S/MIME কীগুলি পুনরুদ্ধার করুন
smimeInfo.get() পদ্ধতি ব্যবহার করে ব্যবহারকারীর জন্য নির্দিষ্ট send-as উপনামের জন্য নির্দিষ্ট S/MIME কীগুলি ফেরত পাঠান। আপনি নিম্নলিখিত পরামিতিগুলি ব্যবহার করে লক্ষ্য উপনাম সনাক্ত করতে পারেন:
- ব্যবহারকারী আইডি
- ব্যবহারকারীর ইমেল ঠিকানা। বর্তমানে প্রমাণিত ব্যবহারকারীকে নির্দেশ করতে আপনি বিশেষ মান
meব্যবহার করতে পারেন। - ইমেইল পাঠান
- যে উপনামের জন্য আপনি কীগুলি পুনরুদ্ধার করছেন। এই উপনাম ব্যবহার করে প্রেরিত মেইলের জন্য "প্রেরক:" শিরোনামে এটিই ইমেল ঠিকানা প্রদর্শিত হয়।
একটি S/MIME কী মুছুন
smimeInfo.delete() পদ্ধতি ব্যবহার করে একটি উপনাম থেকে নির্দিষ্ট S/MIME কী মুছে ফেলুন। আপনি নিম্নলিখিত পরামিতিগুলি ব্যবহার করে লক্ষ্য উপনাম সনাক্ত করতে পারেন:
- ব্যবহারকারী আইডি
- ব্যবহারকারীর ইমেল ঠিকানা। বর্তমানে প্রমাণিত ব্যবহারকারীকে নির্দেশ করতে আপনি বিশেষ মান
meব্যবহার করতে পারেন। - ইমেইল পাঠান
- যে উপনামের জন্য আপনি কীগুলি পুনরুদ্ধার করছেন। এই উপনাম ব্যবহার করে প্রেরিত মেইলের জন্য "প্রেরক:" শিরোনামে এটিই ইমেল ঠিকানা প্রদর্শিত হয়।
- আইডি
- SmimeInfo-এর জন্য অপরিবর্তনীয় আইডি।
একটি উপনামের জন্য ডিফল্ট S/MIME কী সেট করুন
নির্দিষ্ট উপনামের জন্য নির্দিষ্ট S/MIME কীটিকে ডিফল্ট হিসেবে চিহ্নিত করতে smimeInfo.setDefault() পদ্ধতি ব্যবহার করুন। আপনি নিম্নলিখিত পরামিতিগুলি ব্যবহার করে লক্ষ্য উপনাম সনাক্ত করতে পারেন:
- ব্যবহারকারী আইডি
- ব্যবহারকারীর ইমেল ঠিকানা। বর্তমানে প্রমাণিত ব্যবহারকারীকে নির্দেশ করতে আপনি বিশেষ মান
meব্যবহার করতে পারেন। - ইমেইল পাঠান
- যে উপনামের জন্য আপনি কীগুলি পুনরুদ্ধার করছেন। এই উপনাম ব্যবহার করে প্রেরিত মেইলের জন্য "প্রেরক:" শিরোনামে এটিই ইমেল ঠিকানা প্রদর্শিত হয়।
- আইডি
- SmimeInfo-এর জন্য অপরিবর্তনীয় আইডি।
নমুনা কোড
নিম্নলিখিত কোড নমুনাগুলি একাধিক ব্যবহারকারী সহ একটি প্রতিষ্ঠানের জন্য S/MIME সার্টিফিকেট পরিচালনা করার জন্য API ব্যবহার করে প্রদর্শন করে।
একটি S/MIME সার্টিফিকেটের জন্য একটি SmimeInfo রিসোর্স তৈরি করা হচ্ছে
নিচের কোড নমুনাটি ফাইল থেকে একটি সার্টিফিকেট পড়া, একটি base64url স্ট্রিংয়ে এনকোড করা এবং smimeInfo রিসোর্সের pkcs12 ফিল্ডে এটি নির্ধারণ করা প্রদর্শন করে:
জাভা
পাইথন
একটি S/MIME সার্টিফিকেট আপলোড করা হচ্ছে
একটি সার্টিফিকেট আপলোড করতে, smimeInfo.insert এ কল করুন এবং অনুরোধের মূল অংশে 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 কলগুলি ব্যবহার করতে পারেন:
সার্টিফিকেট ব্যবস্থাপনা
এই উদাহরণে smimeInfo API থেকে আসা বেশ কয়েকটি কল একত্রিত করে দেখানো হয়েছে যে আপনি কীভাবে আপনার প্রতিষ্ঠানের জন্য সার্টিফিকেট পরিচালনা করতে পারেন। এটি ব্যবহারকারীর জন্য সার্টিফিকেট তালিকাভুক্ত করে এবং যদি ডিফল্ট সার্টিফিকেটের মেয়াদ শেষ হয়ে যায় বা সেট না করা থাকে, তাহলে এটি নির্দিষ্ট ফাইলে পাওয়া সার্টিফিকেটটি আপলোড করে। তারপর এটি ভবিষ্যতের সবচেয়ে দূরে থাকা সার্টিফিকেটটিকে ডিফল্ট হিসাবে সেট করে।
এটি তখন এমন একটি ফাংশন থেকে ডাকা হয় যা পূর্ববর্তী উদাহরণের মতো একটি CSV ফাইল প্রক্রিয়া করে।