বিভিন্ন পরিচয় সিস্টেম সিঙ্ক

গুগল ক্লাউড সার্চে অ্যাক্সেস নিয়ন্ত্রণ ব্যবহারকারীর গুগল অ্যাকাউন্টের উপর ভিত্তি করে। কন্টেন্ট ইন্ডেক্স করার সময়, সমস্ত আইটেম ACL গুলিকে বৈধ গুগল ব্যবহারকারী বা গ্রুপ আইডি (ইমেল ঠিকানা) তে রেজোলিউশন করতে হবে।

অনেক ক্ষেত্রে, একটি সংগ্রহস্থলের Google অ্যাকাউন্ট সম্পর্কে সরাসরি জ্ঞান থাকে না। পরিবর্তে, স্থানীয় অ্যাকাউন্টগুলি ব্যবহারকারীদের প্রতিনিধিত্ব করে, অথবা ব্যবহারকারীরা একটি পরিচয় প্রদানকারীর সাথে ফেডারেটেড সাইন-ইন ব্যবহার করে। ইমেল ঠিকানা ব্যতীত এই সনাক্তকরণকে বহিরাগত আইডি বলা হয়।

অ্যাডমিন কনসোল ব্যবহার করে তৈরি, পরিচয় উৎসগুলি পরিচয় সিস্টেমের মধ্যে ব্যবধান পূরণ করে:

পরিচয়ের উৎস ব্যবহার করুন যখন:

  • রিপোজিটরিটি Google Workspace বা Google Cloud Directory-তে ব্যবহারকারীর প্রাথমিক ইমেল ঠিকানা জানে না।
  • এই রিপোজিটরিটি এমন অ্যাক্সেস কন্ট্রোল গ্রুপগুলিকে সংজ্ঞায়িত করে যেগুলি Google Workspace-এর ইমেল-ভিত্তিক গ্রুপের সাথে সঙ্গতিপূর্ণ নয়।

পরিচয় ম্যাপিং থেকে ইনডেক্সিংকে আলাদা করে পরিচয় উৎসগুলি দক্ষতা উন্নত করে। এটি আপনাকে ACL তৈরি এবং আইটেমগুলি ইনডেক্স করার সময় ব্যবহারকারীর অনুসন্ধান বিলম্বিত করতে দেয়।

উদাহরণ স্থাপনা

চিত্র ১-এ অন-প্রিমিসেস এবং ক্লাউড রিপোজিটরি উভয় ব্যবহার করে এমন একটি এন্টারপ্রাইজ দেখানো হয়েছে। প্রতিটিতে আলাদা ধরণের এক্সটার্নাল আইডি ব্যবহার করা হয়েছে।

বিভিন্ন ধরণের পরিচয় সহ এন্টারপ্রাইজ স্থাপনার উদাহরণ
চিত্র ১. বিভিন্ন ধরণের পরিচয় সহ এন্টারপ্রাইজ স্থাপনের উদাহরণ।

রিপোজিটরি ১ SAML ব্যবহার করে ইমেল ঠিকানার মাধ্যমে ব্যবহারকারীদের সনাক্ত করে। যেহেতু এটি Google Workspace বা Cloud Directory-তে প্রাথমিক ইমেল ঠিকানা জানে, তাই এর কোনও পরিচয় উৎসের প্রয়োজন হয় না।

রিপোজিটরি 2 একটি অন-প্রিমিসেস ডিরেক্টরির সাথে একীভূত হয় এবং sAMAccountName দ্বারা ব্যবহারকারীদের সনাক্ত করে। যেহেতু এটি এই বৈশিষ্ট্যটিকে একটি বহিরাগত আইডি হিসাবে ব্যবহার করে, এর জন্য একটি পরিচয় উৎস প্রয়োজন।

একটি পরিচয় উৎস তৈরি করুন

যদি আপনার পরিচয় উৎসের প্রয়োজন হয়, তাহলে ক্লাউড অনুসন্ধানে মানচিত্র ব্যবহারকারীর পরিচয় দেখুন।

একটি কন্টেন্ট কানেক্টর তৈরি করার আগে পরিচয় উৎস তৈরি করুন; ACL এবং ইনডেক্স ডেটা তৈরি করতে আপনার এর আইডি প্রয়োজন। একটি পরিচয় উৎস তৈরি করলে ক্লাউড ডিরেক্টরিতে বহিরাগত আইডি সংরক্ষণ করার জন্য একটি কাস্টম ব্যবহারকারী সম্পত্তিও তৈরি হয়। সম্পত্তির নাম IDENTITY_SOURCE_ID _identity কনভেনশন ব্যবহার করে।

এই টেবিলে দুটি পরিচয় উৎস দেখানো হয়েছে: একটি SAM অ্যাকাউন্টের নামের জন্য এবং একটি ব্যবহারকারীর আইডি (uid) এর জন্য।

পরিচয় উৎস ব্যবহারকারীর সম্পত্তি বাহ্যিক আইডি
id1 id1_identity sAMAccountName
id2 id2_identity uid

আপনার এন্টারপ্রাইজে ব্যবহৃত প্রতিটি ধরণের বহিরাগত আইডির জন্য একটি পরিচয় উৎস তৈরি করুন।

এই টেবিলটি দেখায় যে ক্লাউড ডিরেক্টরিতে একটি Google অ্যাকাউন্ট এবং দুটি বহিরাগত আইডি সহ একজন ব্যবহারকারী কীভাবে উপস্থিত হয়:

ব্যবহারকারী ইমেইল id1_identity id2_identity
অ্যান ann@example.com example\ann 1001

ইনডেক্সিংয়ের জন্য ACL তৈরি করার সময় আপনি এই আইডিগুলির যেকোনো একটি ব্যবহার করে একই ব্যবহারকারীকে রেফারেন্স করতে পারেন।

ব্যবহারকারীর ACL লিখুন

বহিরাগত আইডি ব্যবহার করে প্রিন্সিপাল তৈরি করতে getUserPrincipal() অথবা getGroupPrincipal() ব্যবহার করুন।

এই উদাহরণটি ফাইলের অনুমতি পুনরুদ্ধার করে, যার মধ্যে অ্যাক্সেস সহ ব্যবহারকারীরাও অন্তর্ভুক্ত:

ফাইলপারমিশনস্যাম্পল.জাভা
/**
 * Sample for mapping permissions from a source repository to Cloud Search
 * ACLs. In this example, POSIX file permissions are used a the source
 * permissions.
 *
 * @return Acl
 * @throws IOException if unable to read file permissions
 */
static Acl mapPosixFilePermissionToCloudSearchAcl(Path pathToFile) throws IOException {
  // Id of the identity source for external user/group IDs. Shown here,
  // but may be omitted in the SDK as it is automatically applied
  // based on the `api.identitySourceId` configuration parameter.
  String identitySourceId = "abcdef12345";

  // Retrieve the file system permissions for the item being indexed.
  PosixFileAttributeView attributeView = Files.getFileAttributeView(
      pathToFile,
      PosixFileAttributeView.class,
      LinkOption.NOFOLLOW_LINKS);

  if (attributeView == null) {
    // Can't read, return empty ACl
    return new Acl.Builder().build();
  }

  PosixFileAttributes attrs = attributeView.readAttributes();
  // ...
}

এই স্নিপেটটি externalUserName অ্যাট্রিবিউট ব্যবহার করে মালিকদের জন্য প্রিন্সিপাল তৈরি করে:

ফাইলপারমিশনস্যাম্পল.জাভা
// Owner, for search quality.
// Note that for principals the name is not the primary
// email address in Cloud Directory, but the local ID defined
// by the OS. Users and groups must be referred to by their
// external ID and mapped via an identity source.
List<Principal> owners = Collections.singletonList(
    Acl.getUserPrincipal(attrs.owner().getName(), identitySourceId)
);

এই স্নিপেটটি পাঠকদের জন্য মূলনীতি তৈরি করে:

ফাইলপারমিশনস্যাম্পল.জাভা
// List of users to grant access to
List<Principal> readers = new ArrayList<>();

// Add owner, group, others to readers list if permissions
// exist. For this example, other is mapped to everyone
// in the organization.
Set<PosixFilePermission> permissions = attrs.permissions();
if (permissions.contains(PosixFilePermission.OWNER_READ)) {
  readers.add(Acl.getUserPrincipal(attrs.owner().getName(), identitySourceId));
}
if (permissions.contains(PosixFilePermission.GROUP_READ)) {
  String externalGroupName = attrs.group().getName();
  Principal group = Acl.getGroupPrincipal(externalGroupName, identitySourceId);
  readers.add(group);
}
if (permissions.contains(PosixFilePermission.OTHERS_READ)) {
  Principal everyone = Acl.getCustomerPrincipal();
  readers.add(everyone);
}

একবার আপনার পাঠক এবং মালিক হয়ে গেলে, ACL তৈরি করুন:

ফাইলপারমিশনস্যাম্পল.জাভা
// Build the Cloud Search ACL. Note that inheritance of permissions
// from parents is omitted. See `setInheritFrom()` and `setInheritanceType()`
// methods on the builder if required by your implementation.
Acl acl = new Acl.Builder()
    .setReaders(readers)
    .setOwners(owners)
    .build();

REST API প্যাটার্ন identitysources/ IDENTITY_SOURCE_ID /users/ EXTERNAL_ID ব্যবহার করে। Ann এর id1_identity identitysources/id1_identity/users/example/ann এ সমাধান করে। এটি ব্যবহারকারীর মধ্যবর্তী ID

মডেলিং রিপোজিটরি ACL সম্পর্কে আরও জানতে, ACL দেখুন।

ম্যাপ গ্রুপ

পরিচয় সূত্রগুলি ACL গ্রুপগুলির জন্য একটি নেমস্পেস হিসেবেও কাজ করে। শুধুমাত্র নিরাপত্তার জন্য বা স্থানীয়ভাবে কোনও সংগ্রহস্থলে ব্যবহৃত গ্রুপ তৈরি এবং ম্যাপ করতে এটি ব্যবহার করুন।

গ্রুপ তৈরি করতে এবং সদস্যপদ পরিচালনা করতে ক্লাউড আইডেন্টিটি গ্রুপ API ব্যবহার করুন। নেমস্পেস হিসেবে আইডেন্টিটি সোর্সের নাম ব্যবহার করে গ্রুপটিকে একটি আইডেন্টিটি সোর্সের সাথে সংযুক্ত করুন।

এই স্নিপেটটি একটি গ্রুপ তৈরি করে:

CreateGroupCommand.java সম্পর্কে
String namespace = "identitysources/" + idSource;
Group group = new Group()
    .setGroupKey(new EntityKey().setNamespace(namespace).setId(groupId))
    .setDescription("Demo group")
    .setDisplayName(groupName)
    .setLabels(Collections.singletonMap("system/groups/external", ""))
    .setParent(namespace);
try {
  CloudIdentity service = Utils.buildCloudIdentityService();
  Operation createOperation = service.groups().create(group).execute();

  if (createOperation.getDone()) {
    // Note: The response contains the data for a Group object, but as
    // individual fields. To convert to a Group instance, either populate
    // the fields individually or serialize & deserialize to/from JSON.
    //
    // Example:
    // String json = service.getJsonFactory().toString(response);
    // Group createdGroup =  service.getObjectParser()
    //     .parseAndClose(new StringReader(json), Group.class);
    System.out.printf("Group: %s\n",
        createOperation.getResponse().toString());
  } else {
    // Handle case where operation not yet complete, poll for
    // completion. API is currently synchronous and all operations return
    // as completed.
    // ...
  }
} catch (Exception e) {
  System.err.printf("Unable to create group: %s", e.getMessage());
  e.printStackTrace(System.err);
}

একটি ACL গ্রুপ তৈরি করুন

getGroupPrincipal() ব্যবহার করে একটি বহিরাগত আইডি দিয়ে একটি গ্রুপ প্রিন্সিপাল তৈরি করুন, তারপর ACL তৈরি করুন:

ফাইলপারমিশনস্যাম্পল.জাভা
if (permissions.contains(PosixFilePermission.GROUP_READ)) {
  String externalGroupName = attrs.group().getName();
  Principal group = Acl.getGroupPrincipal(externalGroupName, identitySourceId);
  readers.add(group);
}

পরিচয় সংযোগকারী

ব্যবহারকারীরা তাদের বহিরাগত আইডি ক্লাউড ডিরেক্টরিতে Google আইডিতে রূপান্তরিত না হওয়া পর্যন্ত অনুসন্ধান ফলাফলে আইটেমগুলি দেখতে পাবেন না। আপনি তিনটি উপায়ে এটি নিশ্চিত করতে পারেন:

পরিচয় সংযোগকারীরা এন্টারপ্রাইজ পরিচয় থেকে অভ্যন্তরীণ Google পরিচয়ের সাথে বহিরাগত আইডি ম্যাপ করে। যদি আপনি একটি পরিচয় উৎস তৈরি করেন, তাহলে আপনাকে একটি পরিচয় সংযোগকারীও তৈরি করতে হবে।

গুগল ক্লাউড ডিরেক্টরি সিঙ্ক (GCDS) হল একটি পরিচয় সংযোগকারীর উদাহরণ। এটি ব্যবহারকারী এবং গোষ্ঠীর তথ্য অ্যাক্টিভ ডিরেক্টরি থেকে ক্লাউড ডিরেক্টরিতে ম্যাপ করে।

REST API ব্যবহার করে পরিচয় সিঙ্ক করুন

পরিচয় সিঙ্ক করতে update পদ্ধতি ব্যবহার করুন।

পরিচয় পুনঃম্যাপ করুন

একটি পরিচয় পুনঃম্যাপ করার পরে, পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে অবশ্যই আইটেমগুলিকে পুনঃসূচী করতে হবে।

  • আপনি যদি কোনও ব্যবহারকারীর ম্যাপিং অপসারণ করেন বা পরিবর্তন করেন, তাহলে পুনঃসূচীকরণ না হওয়া পর্যন্ত মূল ম্যাপিংটি থেকে যাবে।
  • যদি আপনি একটি ম্যাপ করা গ্রুপ মুছে ফেলেন এবং একই groupKey দিয়ে একটি নতুন গ্রুপ তৈরি করেন, তাহলে আপনি পুনরায় ইনডেক্স না করা পর্যন্ত এটি অ্যাক্সেস দেবে না।
,

গুগল ক্লাউড সার্চে অ্যাক্সেস নিয়ন্ত্রণ ব্যবহারকারীর গুগল অ্যাকাউন্টের উপর ভিত্তি করে। কন্টেন্ট ইন্ডেক্স করার সময়, সমস্ত আইটেম ACL গুলিকে বৈধ গুগল ব্যবহারকারী বা গ্রুপ আইডি (ইমেল ঠিকানা) তে রেজোলিউশন করতে হবে।

অনেক ক্ষেত্রে, একটি সংগ্রহস্থলের Google অ্যাকাউন্ট সম্পর্কে সরাসরি জ্ঞান থাকে না। পরিবর্তে, স্থানীয় অ্যাকাউন্টগুলি ব্যবহারকারীদের প্রতিনিধিত্ব করে, অথবা ব্যবহারকারীরা একটি পরিচয় প্রদানকারীর সাথে ফেডারেটেড সাইন-ইন ব্যবহার করে। ইমেল ঠিকানা ব্যতীত এই সনাক্তকরণকে বহিরাগত আইডি বলা হয়।

অ্যাডমিন কনসোল ব্যবহার করে তৈরি, পরিচয় উৎসগুলি পরিচয় সিস্টেমের মধ্যে ব্যবধান পূরণ করে:

পরিচয়ের উৎস ব্যবহার করুন যখন:

  • রিপোজিটরিটি Google Workspace বা Google Cloud Directory-তে ব্যবহারকারীর প্রাথমিক ইমেল ঠিকানা জানে না।
  • এই রিপোজিটরিটি এমন অ্যাক্সেস কন্ট্রোল গ্রুপগুলিকে সংজ্ঞায়িত করে যেগুলি Google Workspace-এর ইমেল-ভিত্তিক গ্রুপের সাথে সঙ্গতিপূর্ণ নয়।

পরিচয় ম্যাপিং থেকে ইনডেক্সিংকে আলাদা করে পরিচয় উৎসগুলি দক্ষতা উন্নত করে। এটি আপনাকে ACL তৈরি এবং আইটেমগুলি ইনডেক্স করার সময় ব্যবহারকারীর অনুসন্ধান বিলম্বিত করতে দেয়।

উদাহরণ স্থাপনা

চিত্র ১-এ অন-প্রিমিসেস এবং ক্লাউড রিপোজিটরি উভয় ব্যবহার করে এমন একটি এন্টারপ্রাইজ দেখানো হয়েছে। প্রতিটিতে আলাদা ধরণের এক্সটার্নাল আইডি ব্যবহার করা হয়েছে।

বিভিন্ন ধরণের পরিচয় সহ এন্টারপ্রাইজ স্থাপনার উদাহরণ
চিত্র ১. বিভিন্ন ধরণের পরিচয় সহ এন্টারপ্রাইজ স্থাপনের উদাহরণ।

রিপোজিটরি ১ SAML ব্যবহার করে ইমেল ঠিকানার মাধ্যমে ব্যবহারকারীদের সনাক্ত করে। যেহেতু এটি Google Workspace বা Cloud Directory-তে প্রাথমিক ইমেল ঠিকানা জানে, তাই এর কোনও পরিচয় উৎসের প্রয়োজন হয় না।

রিপোজিটরি 2 একটি অন-প্রিমিসেস ডিরেক্টরির সাথে একীভূত হয় এবং sAMAccountName দ্বারা ব্যবহারকারীদের সনাক্ত করে। যেহেতু এটি এই বৈশিষ্ট্যটিকে একটি বহিরাগত আইডি হিসাবে ব্যবহার করে, এর জন্য একটি পরিচয় উৎস প্রয়োজন।

একটি পরিচয় উৎস তৈরি করুন

যদি আপনার পরিচয় উৎসের প্রয়োজন হয়, তাহলে ক্লাউড অনুসন্ধানে মানচিত্র ব্যবহারকারীর পরিচয় দেখুন।

একটি কন্টেন্ট কানেক্টর তৈরি করার আগে পরিচয় উৎস তৈরি করুন; ACL এবং ইনডেক্স ডেটা তৈরি করতে আপনার এর আইডি প্রয়োজন। একটি পরিচয় উৎস তৈরি করলে ক্লাউড ডিরেক্টরিতে বহিরাগত আইডি সংরক্ষণ করার জন্য একটি কাস্টম ব্যবহারকারী সম্পত্তিও তৈরি হয়। সম্পত্তির নাম IDENTITY_SOURCE_ID _identity কনভেনশন ব্যবহার করে।

এই টেবিলে দুটি পরিচয় উৎস দেখানো হয়েছে: একটি SAM অ্যাকাউন্টের নামের জন্য এবং একটি ব্যবহারকারীর আইডি (uid) এর জন্য।

পরিচয় উৎস ব্যবহারকারীর সম্পত্তি বাহ্যিক আইডি
id1 id1_identity sAMAccountName
id2 id2_identity uid

আপনার এন্টারপ্রাইজে ব্যবহৃত প্রতিটি ধরণের বহিরাগত আইডির জন্য একটি পরিচয় উৎস তৈরি করুন।

এই টেবিলটি দেখায় যে ক্লাউড ডিরেক্টরিতে একটি Google অ্যাকাউন্ট এবং দুটি বহিরাগত আইডি সহ একজন ব্যবহারকারী কীভাবে উপস্থিত হয়:

ব্যবহারকারী ইমেইল id1_identity id2_identity
অ্যান ann@example.com example\ann 1001

ইনডেক্সিংয়ের জন্য ACL তৈরি করার সময় আপনি এই আইডিগুলির যেকোনো একটি ব্যবহার করে একই ব্যবহারকারীকে রেফারেন্স করতে পারেন।

ব্যবহারকারীর ACL লিখুন

বহিরাগত আইডি ব্যবহার করে প্রিন্সিপাল তৈরি করতে getUserPrincipal() অথবা getGroupPrincipal() ব্যবহার করুন।

এই উদাহরণটি ফাইলের অনুমতি পুনরুদ্ধার করে, যার মধ্যে অ্যাক্সেস সহ ব্যবহারকারীরাও অন্তর্ভুক্ত:

ফাইলপারমিশনস্যাম্পল.জাভা
/**
 * Sample for mapping permissions from a source repository to Cloud Search
 * ACLs. In this example, POSIX file permissions are used a the source
 * permissions.
 *
 * @return Acl
 * @throws IOException if unable to read file permissions
 */
static Acl mapPosixFilePermissionToCloudSearchAcl(Path pathToFile) throws IOException {
  // Id of the identity source for external user/group IDs. Shown here,
  // but may be omitted in the SDK as it is automatically applied
  // based on the `api.identitySourceId` configuration parameter.
  String identitySourceId = "abcdef12345";

  // Retrieve the file system permissions for the item being indexed.
  PosixFileAttributeView attributeView = Files.getFileAttributeView(
      pathToFile,
      PosixFileAttributeView.class,
      LinkOption.NOFOLLOW_LINKS);

  if (attributeView == null) {
    // Can't read, return empty ACl
    return new Acl.Builder().build();
  }

  PosixFileAttributes attrs = attributeView.readAttributes();
  // ...
}

এই স্নিপেটটি externalUserName অ্যাট্রিবিউট ব্যবহার করে মালিকদের জন্য প্রিন্সিপাল তৈরি করে:

ফাইলপারমিশনস্যাম্পল.জাভা
// Owner, for search quality.
// Note that for principals the name is not the primary
// email address in Cloud Directory, but the local ID defined
// by the OS. Users and groups must be referred to by their
// external ID and mapped via an identity source.
List<Principal> owners = Collections.singletonList(
    Acl.getUserPrincipal(attrs.owner().getName(), identitySourceId)
);

এই স্নিপেটটি পাঠকদের জন্য মূলনীতি তৈরি করে:

ফাইলপারমিশনস্যাম্পল.জাভা
// List of users to grant access to
List<Principal> readers = new ArrayList<>();

// Add owner, group, others to readers list if permissions
// exist. For this example, other is mapped to everyone
// in the organization.
Set<PosixFilePermission> permissions = attrs.permissions();
if (permissions.contains(PosixFilePermission.OWNER_READ)) {
  readers.add(Acl.getUserPrincipal(attrs.owner().getName(), identitySourceId));
}
if (permissions.contains(PosixFilePermission.GROUP_READ)) {
  String externalGroupName = attrs.group().getName();
  Principal group = Acl.getGroupPrincipal(externalGroupName, identitySourceId);
  readers.add(group);
}
if (permissions.contains(PosixFilePermission.OTHERS_READ)) {
  Principal everyone = Acl.getCustomerPrincipal();
  readers.add(everyone);
}

একবার আপনার পাঠক এবং মালিক হয়ে গেলে, ACL তৈরি করুন:

ফাইলপারমিশনস্যাম্পল.জাভা
// Build the Cloud Search ACL. Note that inheritance of permissions
// from parents is omitted. See `setInheritFrom()` and `setInheritanceType()`
// methods on the builder if required by your implementation.
Acl acl = new Acl.Builder()
    .setReaders(readers)
    .setOwners(owners)
    .build();

REST API প্যাটার্ন identitysources/ IDENTITY_SOURCE_ID /users/ EXTERNAL_ID ব্যবহার করে। Ann এর id1_identity identitysources/id1_identity/users/example/ann এ সমাধান করে। এটি ব্যবহারকারীর মধ্যবর্তী ID

মডেলিং রিপোজিটরি ACL সম্পর্কে আরও জানতে, ACL দেখুন।

ম্যাপ গ্রুপ

পরিচয় সূত্রগুলি ACL গ্রুপগুলির জন্য একটি নেমস্পেস হিসেবেও কাজ করে। শুধুমাত্র নিরাপত্তার জন্য বা স্থানীয়ভাবে কোনও সংগ্রহস্থলে ব্যবহৃত গ্রুপ তৈরি এবং ম্যাপ করতে এটি ব্যবহার করুন।

গ্রুপ তৈরি করতে এবং সদস্যপদ পরিচালনা করতে ক্লাউড আইডেন্টিটি গ্রুপ API ব্যবহার করুন। নেমস্পেস হিসেবে আইডেন্টিটি সোর্সের নাম ব্যবহার করে গ্রুপটিকে একটি আইডেন্টিটি সোর্সের সাথে সংযুক্ত করুন।

এই স্নিপেটটি একটি গ্রুপ তৈরি করে:

CreateGroupCommand.java সম্পর্কে
String namespace = "identitysources/" + idSource;
Group group = new Group()
    .setGroupKey(new EntityKey().setNamespace(namespace).setId(groupId))
    .setDescription("Demo group")
    .setDisplayName(groupName)
    .setLabels(Collections.singletonMap("system/groups/external", ""))
    .setParent(namespace);
try {
  CloudIdentity service = Utils.buildCloudIdentityService();
  Operation createOperation = service.groups().create(group).execute();

  if (createOperation.getDone()) {
    // Note: The response contains the data for a Group object, but as
    // individual fields. To convert to a Group instance, either populate
    // the fields individually or serialize & deserialize to/from JSON.
    //
    // Example:
    // String json = service.getJsonFactory().toString(response);
    // Group createdGroup =  service.getObjectParser()
    //     .parseAndClose(new StringReader(json), Group.class);
    System.out.printf("Group: %s\n",
        createOperation.getResponse().toString());
  } else {
    // Handle case where operation not yet complete, poll for
    // completion. API is currently synchronous and all operations return
    // as completed.
    // ...
  }
} catch (Exception e) {
  System.err.printf("Unable to create group: %s", e.getMessage());
  e.printStackTrace(System.err);
}

একটি ACL গ্রুপ তৈরি করুন

getGroupPrincipal() ব্যবহার করে একটি বহিরাগত আইডি দিয়ে একটি গ্রুপ প্রিন্সিপাল তৈরি করুন, তারপর ACL তৈরি করুন:

ফাইলপারমিশনস্যাম্পল.জাভা
if (permissions.contains(PosixFilePermission.GROUP_READ)) {
  String externalGroupName = attrs.group().getName();
  Principal group = Acl.getGroupPrincipal(externalGroupName, identitySourceId);
  readers.add(group);
}

পরিচয় সংযোগকারী

ব্যবহারকারীরা তাদের বহিরাগত আইডি ক্লাউড ডিরেক্টরিতে Google আইডিতে রূপান্তরিত না হওয়া পর্যন্ত অনুসন্ধান ফলাফলে আইটেমগুলি দেখতে পাবেন না। আপনি তিনটি উপায়ে এটি নিশ্চিত করতে পারেন:

পরিচয় সংযোগকারীরা এন্টারপ্রাইজ পরিচয় থেকে অভ্যন্তরীণ Google পরিচয়ের সাথে বহিরাগত আইডি ম্যাপ করে। যদি আপনি একটি পরিচয় উৎস তৈরি করেন, তাহলে আপনাকে একটি পরিচয় সংযোগকারীও তৈরি করতে হবে।

গুগল ক্লাউড ডিরেক্টরি সিঙ্ক (GCDS) হল একটি পরিচয় সংযোগকারীর উদাহরণ। এটি ব্যবহারকারী এবং গোষ্ঠীর তথ্য অ্যাক্টিভ ডিরেক্টরি থেকে ক্লাউড ডিরেক্টরিতে ম্যাপ করে।

REST API ব্যবহার করে পরিচয় সিঙ্ক করুন

পরিচয় সিঙ্ক করতে update পদ্ধতি ব্যবহার করুন।

পরিচয় পুনঃম্যাপ করুন

একটি পরিচয় পুনঃম্যাপ করার পরে, পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে অবশ্যই আইটেমগুলিকে পুনঃসূচী করতে হবে।

  • আপনি যদি কোনও ব্যবহারকারীর ম্যাপিং অপসারণ করেন বা পরিবর্তন করেন, তাহলে পুনঃসূচীকরণ না হওয়া পর্যন্ত মূল ম্যাপিংটি থেকে যাবে।
  • যদি আপনি একটি ম্যাপ করা গ্রুপ মুছে ফেলেন এবং একই groupKey দিয়ে একটি নতুন গ্রুপ তৈরি করেন, তাহলে আপনি পুনরায় ইনডেক্স না করা পর্যন্ত এটি অ্যাক্সেস দেবে না।