Google Workspace ডোমেন-ব্যাপী কর্তৃপক্ষের প্রতিনিধিত্ব সম্পাদন করুন

ক্লাউড অনুসন্ধান ক্যোয়ারী API-এর প্রয়োজন যে API কলগুলি আপনার ডোমেনের লাইসেন্সপ্রাপ্ত ব্যবহারকারীর সাথে সম্পর্কিত OAuth শংসাপত্রগুলি ব্যবহার করে অনুমোদিত৷ ডিফল্টরূপে, পরিষেবা অ্যাকাউন্টগুলি, যেগুলি ইন্ডেক্সিং এবং কনফিগারেশন APIগুলি অ্যাক্সেস করতে ব্যবহৃত হয়, কোয়েরি API কলগুলির জন্য ব্যবহার করা যাবে না কারণ সেগুলি ক্লাউড সার্চ বা Google Workspace লাইসেন্স সহ ডোমেন ব্যবহারকারী নয়৷ ক্যোয়ারী API কল প্রমাণীকরণ করার সময় আপনি যদি একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করতে চান, তাহলে একজন ডোমেন প্রশাসক অ্যাকাউন্টের ডোমেন-ব্যাপী ব্যবহারকারীর ডেটাতে অ্যাক্সেস মঞ্জুর করতে পারেন — এটি ডোমেন-ওয়াইড ডেলিগেশন অফ অথরিটি নামে পরিচিত। অর্পিত কর্তৃপক্ষের সাথে একটি পরিষেবা অ্যাকাউন্ট ক্লাউড অনুসন্ধানে অ্যাক্সেস সহ ব্যবহারকারীদের সহ যে কোনও ব্যবহারকারীর ছদ্মবেশ ধারণ করতে পারে৷

পরিষেবা অ্যাকাউন্ট এবং শংসাপত্র তৈরি করুন

আপনার যদি এখনও পরিষেবা অ্যাকাউন্টের শংসাপত্র না থাকে তবে পরিষেবা অ্যাকাউন্টের শংসাপত্র তৈরি করুন দেখুন।

আপনার পরিষেবা অ্যাকাউন্টে ডোমেন-ওয়াইড কর্তৃপক্ষ অর্পণ করুন

Google Workspace ডোমেনে ব্যবহারকারীর ডেটা অ্যাক্সেস করার জন্য, আপনার তৈরি করা পরিষেবা অ্যাকাউন্টটিকে ডোমেনের জন্য একজন সুপার অ্যাডমিনিস্ট্রেটরকে অ্যাক্সেস দিতে হবে। ডোমেন-ওয়াইড ডেলিগেশন সম্পর্কে আরও তথ্যের জন্য, ডোমেন-ওয়াইড ডেলিগেশনের সাথে Google Workspace API অ্যাক্সেস নিয়ন্ত্রণ করুন দেখুন।

একটি পরিষেবা অ্যাকাউন্টে ডোমেন-ব্যাপী কর্তৃত্ব অর্পণ করতে:

  1. আপনার ডোমেনের অ্যাডমিন কনসোল থেকে, প্রধান মেনু > নিরাপত্তা > অ্যাক্সেস এবং ডেটা নিয়ন্ত্রণ > API নিয়ন্ত্রণগুলিতে যান।
  2. ডোমেন ওয়াইড ডেলিগেশন প্যানে, ডোমেন ওয়াইড ডেলিগেশন পরিচালনা করুন নির্বাচন করুন।

  3. নতুন যোগ করুন ক্লিক করুন.

  4. ক্লায়েন্ট আইডি ক্ষেত্রে, উপরের পরিষেবা অ্যাকাউন্ট তৈরির ধাপগুলি থেকে প্রাপ্ত ক্লায়েন্ট আইডি লিখুন।

  5. OAuth স্কোপ ফিল্ডে, আপনার আবেদনের জন্য প্রয়োজনীয় স্কোপের একটি কমা-ডিলিমিটেড তালিকা লিখুন। Query API ব্যবহার করে অনুসন্ধান অ্যাপ্লিকেশনের জন্য https://www.googleapis.com/auth/cloud_search.query স্কোপ ব্যবহার করুন।

  6. অনুমোদন ক্লিক করুন.

আপনার পরিষেবা অ্যাকাউন্টের এখন ক্লাউড অনুসন্ধান ক্যোয়ারী API-তে ডোমেন-ব্যাপী অ্যাক্সেস রয়েছে এবং এই সুযোগে আপনার ডোমেনের যেকোনো ব্যবহারকারীর ছদ্মবেশ ধারণ করতে পারে। আপনি আপনার ডোমেনের ব্যবহারকারীদের পক্ষ থেকে একটি অনুমোদিত ক্লাউড অনুসন্ধান API পরিষেবা অবজেক্ট চালু করতে প্রস্তুত৷

একটি ক্লাউড অনুসন্ধান API পরিষেবা অবজেক্ট ইনস্ট্যান্টিয়েট করুন৷

এই বিভাগটি দেখায় যে কীভাবে একটি ক্লাউড সার্চ এপিআই পরিষেবা অবজেক্টকে ইনস্ট্যান্টিয়েট করতে হয় এবং তারপরে Google Workspace ডোমেন-ওয়াইড ডেলিগেশন করার জন্য OAuth 2.0 এবং আপনার পরিষেবা অ্যাকাউন্টের শংসাপত্র ব্যবহার করে API অনুরোধ করার অনুমোদন দেওয়া হয়। উদাহরণগুলি JSON-ফরম্যাট করা ব্যক্তিগত কী ফাইল থেকে পরিষেবা অ্যাকাউন্টের তথ্য পড়ে।

জাভা

import java.util.Collections;
import java.io.FileInputStream;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.services.cloudsearch.v1.CloudSearch;
import com.google.api.services.cloudsearch.v1.CloudSearchScopes;
...

/** Path to the Service Account's Private Key file */
private static final String SERVICE_ACCOUNT_FILE_PATH = "/path/to/key.json";

/**
 * Build and return a Cloud Search service object authorized with the service
 * account that acts on behalf of the given user.
 *
 * @param userEmail The email of the user to impersonate. Needs permissions to access Cloud Search.
 * @return CloudSearch service object that is ready to make requests.
 */
public static CloudSearch getCloudSearchAPIService(String userEmail)
    throws FileNotFoundException, IOException {

  FileInputStream credsFile = new FileInputStream(SERVICE_ACCOUNT_FILE_PATH);

  GoogleCredential init = GoogleCredential.fromStream(credsFile);

  HttpTransport httpTransport = init.getTransport();
  JsonFactory jsonFactory = init.getJsonFactory();

  GoogleCredential creds = new GoogleCredential.Builder()
      .setTransport(httpTransport)
      .setJsonFactory(jsonFactory)
      .setServiceAccountId(init.getServiceAccountId())
      .setServiceAccountPrivateKey(init.getServiceAccountPrivateKey())
      .setServiceAccountScopes(Collections.singleton(CloudSearchScopes.CLOUD_SEARCH_QUERY))
      .setServiceAccountUser(userEmail)
      .build();

  CloudSearch service = new CloudSearch.Builder(httpTransport, jsonFactory, creds).build();

  return service;
}

পাইথন

from google.oauth2 import service_account
from googleapiclient.discovery import build

# Path to the Service Account's Private Key file
SERVICE_ACCOUNT_FILE_PATH = "/path/to/key.json"

def create_query_api_service(user_email):
    """Build and return a CloudSearch service object authorized with the service
    account that acts on behalf of the given user.

    Args:
        user_email: The email of the user to impersonate. Needs permissions to access Cloud Search.
    Returns:
        Cloud Search Query API service object that is ready to make requests.
    """
    credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE_PATH,
        scopes=['https://www.googleapis.com/auth/cloud_search.query'])

    delegated_credentials = credentials.with_subject(user_email)

    return build("cloudsearch", "v1", credentials=delegated_credentials)