মেল অ্যাডমিন কোয়ারেন্টাইন API, সার্ভার-সাইড অটোমেশনের জন্য ডিজাইন করা হয়েছে, যেমন নিরাপত্তা পাইপলাইন এবং SIEM বা SOAR ইন্টিগ্রেশন। এই অটোমেশনগুলি Google Cloud পরিষেবা অ্যাকাউন্টের মাধ্যমে যাচাই করা হয় যা ডোমেন-ওয়াইড ডেলিগেশন ব্যবহার করে প্রয়োজনীয় অ্যাডমিনিস্ট্রেটরের বিশেষ সুবিধা থাকা Google Workspace অ্যাডমিনিস্ট্রেটরের হয়ে কাজ করে।
এই পৃষ্ঠায় API-এর জন্য কোন OAuth 2.0 স্কোপ প্রয়োজন এবং কীভাবে পরিষেবা অ্যাকাউন্ট কনফিগার ও অ্যাক্সেস টোকেন পাওয়া যায় তা ব্যাখ্যা করা হয়েছে।
OAuth 2.0 স্কোপ
অ্যাডমিন কোয়ারেন্টাইন API নিম্নলিখিত OAuth 2.0 স্কোপ ব্যবহার করে:
| সুযোগ | অর্থ |
|---|---|
https://www.googleapis.com/auth/gmail.admin.quarantine |
কোয়ারেন্টাইন করা মেসেজ দেখা ও ম্যানেজ করা। ব্যক্তিগতভাবে বা ব্যাচে মেসেজ রিলিজ বা প্রত্যাখ্যান করার জন্য প্রয়োজন। |
https://www.googleapis.com/auth/gmail.admin.quarantine.readonly |
কোয়ারেন্টাইন করা মেসেজ দেখুন। মেসেজ তালিকাভুক্ত, সার্চ ও পাওয়ার জন্য, কোয়ারেন্টাইন তালিকাভুক্ত ও পাওয়ার জন্য এবং ব্যাচ অপারেশনের স্ট্যাটাস পাওয়ার জন্য যথেষ্ট। |
কোন পদ্ধতি কোন স্কোপ গ্রহণ করে তা নিম্নলিখিত সারণীতে দেখানো হয়েছে:
| পদ্ধতি | gmail.admin.quarantine |
gmail.admin.quarantine.readonly |
|---|---|---|
customers.quarantinedMessages.list |
✓ | ✓ |
customers.quarantinedMessages.search |
✓ | ✓ |
customers.quarantinedMessages.get |
✓ | ✓ |
customers.quarantines.list |
✓ | ✓ |
customers.quarantines.get |
✓ | ✓ |
customers.operations.get |
✓ | ✓ |
customers.quarantinedMessages.release |
✓ | |
customers.quarantinedMessages.deny |
✓ | |
customers.quarantinedMessages.batchRelease |
✓ | |
customers.quarantinedMessages.batchDeny |
✓ |
ন্যূনতম অধিকারের নীতি অনুসরণ করুন: কোয়ারেন্টাইন মনিটর করে এমন ইন্টিগ্রেশনের জন্য শুধুমাত্র-পড়ার স্কোপের অনুরোধ করুন।
কোনও অনুরোধে যদি এমন টোকেন ব্যবহার করা হয় যাতে অনুমোদিত স্কোপ অন্তর্ভুক্ত নেই, তাহলে API
403 ত্রুটি সহ ACCESS_TOKEN_SCOPE_INSUFFICIENT কারণ দেখায়।
পরিষেবার অ্যাকাউন্ট তৈরি করা
- Google Cloud কনসোলে, IAM ও অ্যাডমিন > পরিষেবা অ্যাকাউন্ট বিকল্পে যান এবং যেখানে আপনি API চালু করেছেন সেই Google Cloud প্রোজেক্ট বেছে নিন।
- পরিষেবা অ্যাকাউন্ট তৈরি করুন বিকল্পে ক্লিক করুন,
quarantine-api-service-account-এর মতো কোনও নাম লিখুন এবং তৈরি করুন ও চালিয়ে যান বিকল্পে ক্লিক করুন। আপনাকে পরিষেবা অ্যাকাউন্টকে কোনও IAM ভূমিকা দিতে হবে না। হয়ে গেছে বিকল্পে ক্লিক করুন। - পরিষেবা অ্যাকাউন্ট খুলুন এবং বিবরণ ট্যাবে গিয়ে
OAuth 2 ক্লায়েন্ট আইডি কপি করুন। এটি ২১-সংখ্যার নম্বর, যেমন
109876543210987654321। পরবর্তী বিভাগে আপনার এই আইডি প্রয়োজন হবে। - কী ট্যাবে, কী যোগ করুন > নতুন কী তৈরি করুন বিকল্পে ক্লিক করুন, JSON বেছে নিন, এবং তৈরি করুন বিকল্পে ক্লিক করুন। ডাউনলোড করা JSON কী ফাইলটি নিরাপদে স্টোর করুন।
আরও তথ্যের জন্য, সার্ভিস অ্যাকাউন্টের জন্য ক্রেডেনশিয়াল তৈরি করুন দেখুন।
ডোমেন-ওয়াইড ডেলিগেশন অনুমোদন করুন
আপনার Google Workspace অ্যাকাউন্টে অ্যাডমিন কোয়ারেন্টাইন API স্কোপ অ্যাক্সেস করার জন্য পরিষেবা অ্যাকাউন্টকে অনুমতি দিন:
- সুপার অ্যাডমিনিস্ট্রেটর হিসেবে Google Admin কনসোলে সাইন-ইন করুন।
- সুরক্ষা > অ্যাক্সেস ও ডেটা কন্ট্রোল > API কন্ট্রোল বিকল্পে যান।
- ডোমেন-ওয়াইড ডেলিগেশন বিকল্পের অধীনে, ডোমেন-ওয়াইড ডেলিগেশন ম্যানেজ করুন বিকল্পে ক্লিক করুন।
- নতুন যোগ করুন বিকল্পে ক্লিক করুন।
- ক্লায়েন্ট আইডি ফিল্ডে, পরিষেবা অ্যাকাউন্টের OAuth 2.0 ক্লায়েন্ট আইডি লিখুন। পরিষেবা অ্যাকাউন্টের ইমেল আইডি লিখবেন না।
OAuth স্কোপ ফিল্ডে, নিম্নলিখিত স্কোপগুলির মধ্যে একটি লিখুন:
- পড়া ও লেখার অ্যাক্সেসের জন্য:
https://www.googleapis.com/auth/gmail.admin.quarantine - শুধুমাত্র পড়ার অ্যাক্সেসের জন্য:
https://www.googleapis.com/auth/gmail.admin.quarantine.readonly
- পড়া ও লেখার অ্যাক্সেসের জন্য:
অনুমোদন করুন বিকল্পে ক্লিক করুন।
বিস্তারিত জানতে, ডোমেন-ওয়াইড ডেলিগেশনের মাধ্যমে API অ্যাক্সেস নিয়ন্ত্রণ করুন দেখুন।
অ্যাক্সেস টোকেন পাওয়া
API কল করার জন্য, পরিষেবা অ্যাকাউন্ট অ্যাডমিনিস্ট্রেটরের ইমেল আইডিতে টোকেন অনুরোধের subject (sub) দাবি সেট করে অ্যাডমিনিস্ট্রেটরের ছদ্মবেশ ধারণ করে। অ্যাডমিনিস্ট্রেটরের কাছে
প্রয়োজনীয় অ্যাডমিনিস্ট্রেটরের বিশেষ সুবিধা থাকতে হবে।
নিম্নলিখিত Python উদাহরণটি অ্যাক্সেস টোকেন পেতে
google-auth লাইব্রেরি ব্যবহার করে:
from google.oauth2 import service_account
import google.auth.transport.requests
SERVICE_ACCOUNT_FILE = 'service_account.json'
# An administrator with the Access Admin Quarantine privilege.
ADMIN_EMAIL = 'admin@example.com'
SCOPES = ['https://www.googleapis.com/auth/gmail.admin.quarantine']
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE,
scopes=SCOPES,
subject=ADMIN_EMAIL,
)
credentials.refresh(google.auth.transport.requests.Request())
access_token = credentials.token
প্রতিটি অনুরোধের Authorization হেডারে টোকেন পাঠান:
Authorization: Bearer ACCESS_TOKEN
এক ঘণ্টা পরে অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে যায়। দীর্ঘ সময় ধরে টোকেন ক্যাশে করার পরিবর্তে প্রতিটি ব্যাচ অনুরোধের আগে ক্রেডেনশিয়াল রিফ্রেশ করুন।
অনুমোদন সংক্রান্ত সমস্যার সমাধান করা
| HTTP স্ট্যাটাস | কারণ | রেজোলিউশন |
|---|---|---|
401 UNAUTHENTICATED |
Authorization হেডার নেই অথবা টোকেনটি ভুল ফর্ম্যাটে আছে বা এটির মেয়াদ শেষ হয়ে গেছে। |
নতুন অ্যাক্সেস টোকেন পান এবং এটি বিয়ারার টোকেন হিসেবে অন্তর্ভুক্ত করুন। |
403 ACCESS_TOKEN_SCOPE_INSUFFICIENT |
পদ্ধতিটি গ্রহণ করে এমন কোনও স্কোপ টোকেনে অন্তর্ভুক্ত নেই। | রিলিজ ও ডিনাই পদ্ধতির জন্য https://www.googleapis.com/auth/gmail.admin.quarantine স্কোপের অনুরোধ করুন এবং অ্যাডমিন কনসোলে স্কোপটি অনুমোদিত কিনা তা নিশ্চিত করুন। |
403 PERMISSION_DENIED |
ছদ্মবেশী অ্যাডমিনিস্ট্রেটরের কাছে অ্যাডমিন কোয়ারেন্টাইন প্রিভিলেজ নেই অথবা যে কোয়ারেন্টাইনে মেসেজটি রয়েছে সেখানে তার অ্যাক্সেস নেই। | অ্যাডমিনিস্ট্রেটরকে অ্যাডমিন কোয়ারেন্টাইন অ্যাক্সেস করুন বা সীমাবদ্ধ কোয়ারেন্টাইন অ্যাক্সেস করুন বিকল্পে অ্যাক্সেস দিন। |
প্রতিটি পদ্ধতিতে 403 SERVICE_DISABLED বা 404 NOT_FOUND |
Cloud প্রোজেক্টে API চালু করা নেই অথবা প্রোজেক্টটি ডেভেলপার প্রিভিউ প্রোগ্রামে নথিভুক্ত করা নেই। | API চালু করুন এবং Google Workspace ডেভেলপার প্রিভিউ প্রোগ্রামে আপনার এনরোলমেন্ট কনফার্ম করুন। |