भूमिकाएं मैनेज करें

Directory API की मदद से, भूमिका के हिसाब से ऐक्सेस कंट्रोल (आरबीएसी) का इस्तेमाल करके, Google Workspace डोमेन की सुविधाओं का ऐक्सेस मैनेज किया जा सकता है. Google Workspace में पहले से मौजूद भूमिकाओं के मुकाबले, एडमिन ऐक्सेस को ज़्यादा सीमित करने के लिए, विशेषाधिकारों के साथ कस्टम भूमिकाएं बनाई जा सकती हैं. उपयोगकर्ताओं या सुरक्षा ग्रुप को भूमिकाएं असाइन की जा सकती हैं. इस गाइड में, भूमिका से जुड़े कुछ बुनियादी टास्क करने का तरीका बताया गया है.

Google Workspace में आरबीएसी के लिए, Directory API में इस्तेमाल होने वाले सामान्य शब्दों की सूची यहां दी गई है:

खास अधिकार
Google Workspace डोमेन में कोई टास्क या कार्रवाई करने के लिए ज़रूरी अनुमति. इसे Privilege संसाधन से दिखाया जाता है. इस संसाधन से जुड़ा कोई ऐसा डेटा नहीं है जो हमेशा से मौजूद रहता है.
Role
अधिकारों का एक कलेक्शन, जो उस भूमिका वाली इकाइयों को कुछ टास्क या ऑपरेशन करने की अनुमति देता है. इसे Role संसाधन से दिखाया जाता है.
भूमिका असाइन करना
उपयोगकर्ता या ग्रुप को दी गई किसी खास भूमिका का रिकॉर्ड. इसे RoleAssignment संसाधन से दिखाया जाता है.
सुरक्षा ग्रुप
Cloud Identity ग्रुप का एक टाइप, जिसका इस्तेमाल संगठन के संसाधनों के ऐक्सेस को कंट्रोल करने के लिए किया जाता है. सुरक्षा ग्रुप में, अलग-अलग उपयोगकर्ता और ग्रुप, दोनों शामिल हो सकते हैं.

भूमिका और भूमिका असाइन करने की सीमाएं

कस्टम भूमिकाएं या भूमिकाएं असाइन करने की सुविधा का इस्तेमाल करके, सीमित संख्या में भूमिकाएं बनाई जा सकती हैं. इसलिए, अगर आपने तय सीमा के करीब पहुंचने वाले रोल बनाए हैं, तो उन्हें हटाएं या एक साथ जोड़ें. भूमिकाओं और भूमिकाओं के असाइनमेंट पर ये सीमाएं लागू होती हैं:

  • अपने पूरे संगठन के लिए, ज़्यादा से ज़्यादा 750 कस्टम भूमिकाएं बनाई जा सकती हैं.
  • संगठन की हर इकाई (ओयू) के लिए, ज़्यादा से ज़्यादा 1,000 असली उपयोगकर्ताओं को भूमिकाएं असाइन की जा सकती हैं. इसमें रूट संगठन को भी एक इकाई माना जाता है. उदाहरण के लिए, आपके पास रूट संगठन में 600 भूमिकाएं और आपके तय किए गए किसी अन्य ओयू में 700 भूमिकाएं असाइन करने का विकल्प होता है. जैसे, किसी कंपनी का विभाग. Google Workspace में, एडमिन के लिए पहले से बनी सभी भूमिकाएं डिफ़ॉल्ट रूप से, पूरे संगठन के लिए होती हैं. ओयू लेवल पर असाइन किए जा सकने वाले अधिकारों की सीमाओं के बारे में ज़्यादा जानें.

ग्रुप के लिए, भूमिकाएं और भूमिकाएं असाइन करने की ये सीमाएं हैं:

  • सुपर एडमिन को छोड़कर, किसी भी भूमिका को असाइन किया जा सकता है.
  • ओयू और हर ओयू में, ग्रुप को ज़्यादा से ज़्यादा 250 भूमिकाएं असाइन की जा सकती हैं.
  • यह ग्रुप, आपके संगठन का सुरक्षा ग्रुप होना चाहिए.
  • हमारा सुझाव है कि आप अपने संगठन के उपयोगकर्ताओं को ही ग्रुप की सदस्यता दें. आपके पास अपने संगठन से बाहर के उपयोगकर्ताओं को जोड़ने का विकल्प है. हालांकि, हो सकता है कि उन्हें भूमिका से जुड़ी अनुमतियां न मिलें. ज़्यादा जानकारी के लिए, ग्रुप की सदस्यता पर पाबंदी लगाना लेख पढ़ें. ### ग्रुप को भूमिका असाइन करना

अगर आपको किसी ओयू में 1,000 से ज़्यादा भूमिकाएं असाइन करनी हैं, तो सुरक्षा ग्रुप में कई सदस्य जोड़े जा सकते हैं और ग्रुप को कोई भूमिका असाइन की जा सकती है. ग्रुप में भूमिका असाइन करने की सुविधा के साथ कुछ और सीमाएं भी जुड़ी हैं. ज़्यादा जानकारी के लिए, एडमिन सहायता केंद्र पर जाएं.

Google Admin console में भूमिका के हिसाब से खास अधिकारों की मैपिंग

Admin console से अपने ऐक्सेस ऐक्सेस करने वाले उपयोगकर्ताओं को भूमिकाएं असाइन करने के लिए, उन्हें कुछ अतिरिक्त ऐक्सेस देने पड़ सकते हैं. उदाहरण के लिए, किसी उपयोगकर्ता को Admin console की मदद से दूसरे उपयोगकर्ता बनाने की अनुमति देने के लिए, USERS_CREATE के साथ-साथ USERS_UPDATE और ORGANIZATION_UNITS_RETRIEVE की अनुमतियां भी ज़रूरी हैं. नीचे दी गई टेबल में, उपयोगकर्ताओं और संगठन की इकाइयों को मैनेज करने के लिए, ज़रूरी अनुमतियों के साथ Admin console की सुविधाओं को मैप किया गया है.

Admin console की सुविधाएं ज़रूरी विशेषाधिकार
संगठन की इकाइयां - पढ़ना ORGANIZATION_UNITS_RETRIEVE
संगठन की इकाइयां - बनाना ORGANIZATION_UNITS_RETRIEVE + ORGANIZATION_UNITS_CREATE
संगठन की इकाइयां - अपडेट ORGANIZATION_UNITS_RETRIEVE + ORGANIZATION_UNITS_UPDATE
संगठन की इकाइयां - मिटाएं ORGANIZATION_UNITS_RETRIEVE + ORGANIZATION_UNITS_DELETE
संगठन की इकाइयां ORGANIZATION_UNITS_ALL
उपयोगकर्ता - पढ़ने का ऐक्सेस USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE
उपयोगकर्ता - बनाना USERS_CREATE + USERS_UPDATE + ORGANIZATION_UNITS_RETRIEVE
उपयोगकर्ता - अपडेट USERS_UPDATE + ORGANIZATION_UNITS_RETRIEVE
उपयोगकर्ता - उपयोगकर्ताओं को ले जाएं USERS_MOVE + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE
उपयोगकर्ता - उपयोगकर्ताओं का नाम बदलना USERS_ALIAS + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE
उपयोगकर्ता - पासवर्ड रीसेट करना USERS_RESET_PASSWORD + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE
उपयोगकर्ता - पासवर्ड बदलना ज़रूरी करें USERS_FORCE_PASSWORD_CHANGE + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE
उपयोगकर्ता - उपनाम जोड़ना/हटाना USERS_ADD_NICKNAME + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE
उपयोगकर्ता - उपयोगकर्ताओं को निलंबित करना USERS_SUSPEND + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE
ग्रुप GROUPS_ALL
सुरक्षा - उपयोगकर्ता सुरक्षा मैनेजमेंट USER_SECURITY_ALL + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE

इस्तेमाल के उदाहरण

शुरू करने से पहले

Google Workspace के लिए, पुष्टि करने और अनुमति देने का तरीका पूरा करें.

डोमेन के लिए खास अधिकारों की सूची पाना

अपने डोमेन में इस्तेमाल की जा सकने वाली अनुमतियों की पेज की गई सूची पाने के लिए, privileges.list() तरीके का इस्तेमाल करें.

  • अगर आप अपने डोमेन में एडमिन हैं, तो ग्राहक आईडी के तौर पर my_customer का इस्तेमाल करें.

  • अगर आप किसी रीसेलर के तौर पर, अपने किसी ग्राहक के लिए खास सुविधाएं पा रहे हैं, तो उपयोगकर्ता की जानकारी पाएं ऑपरेशन से मिले ग्राहक आईडी का इस्तेमाल करें.

अनुरोध

GET https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roles/ALL/privileges

जवाब

सही तरीके से मिटने पर, जवाब के तौर पर एचटीटीपी 200 स्टेटस कोड दिखेगा. रिस्पॉन्स में, स्थिति कोड के साथ-साथ डोमेन में उपलब्ध विशेषाधिकार भी दिखते हैं:

{
  "kind": "admin\#directory\#privileges",
  "etag": ...,
  "items": [
    {
      "kind": "admin\#directory\#privilege",
      "etag": ...,
      "serviceId": "02afmg282jiquyg",
      "privilegeName": "APP_ADMIN",
      "isOuScopable": false
    },
    {
      "kind": "admin\#directory\#privilege",
      "etag": ...,
      "serviceId": "04f1mdlm0ki64aw",
      "privilegeName": "MANAGE_USER_SETTINGS",
      "isOuScopable": true,
      "childPrivileges": [
        {
          "kind": "admin\#directory\#privilege",
          "etag": ...,
          "serviceId": "04f1mdlm0ki64aw",
          "privilegeName": "MANAGE_APPLICATION_SETTINGS",
          "isOuScopable": true
        }
      ]
    },
    ...
  ]
}

मौजूदा भूमिकाएं पाना

मौजूदा भूमिकाओं की सूची पाने के लिए, यहां दिए गए GET अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताई गई अनुमति शामिल करें.

  • अगर आप अपने डोमेन में एडमिन की भूमिकाएं पाने वाले व्यक्ति हैं, तो ग्राहक आईडी के तौर पर my_customer का इस्तेमाल करें.

  • अगर आप किसी ग्राहक के लिए भूमिकाएं पाने वाले रीसेलर हैं, तो उपयोगकर्ता को फिर से पाएं ऑपरेशन का इस्तेमाल करके, आपको जो ग्राहक आईडी मिला है उसका इस्तेमाल करें.

अनुरोध

GET https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roles

जवाब

सही जवाब मिलने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. रिस्पॉन्स में, स्थिति कोड के साथ-साथ, डोमेन में मौजूद भूमिकाएं भी दिखती हैं:

{
  "kind": "admin\#directory\#roles",
  "etag": "\"sxH3n22L0-77khHtQ7tiK6I21Yo/DywA6_jaJCYw-f0lFs2-g17UWe8\"",
  "items": [
    {
      "kind": "admin\#directory\#role",
      "etag": ... ,
      "roleId": "3894208461012993",
      "roleName": "_SEED_ADMIN_ROLE",
      "roleDescription": "Google Workspace Administrator Seed Role",
      "rolePrivileges": [
        {
          "privilegeName": "SUPER_ADMIN",
          "serviceId": "01ci93xb3tmzyin"
        },
        {
          "privilegeName": "ROOT_APP_ADMIN",
          "serviceId": "00haapch16h1ysv"
        },
        {
          "privilegeName": "ADMIN_APIS_ALL",
          "serviceId": "00haapch16h1ysv"
        },
        ...
      ],
      "isSystemRole": true,
      "isSuperAdminRole": true
    },
    {
      "kind": "admin\#directory\#role",
      "etag": "\"sxH3n22L0-77khHtQ7tiK6I21Yo/bTXiZXfuK1NGr_f4paosCWXuHmw\"",
      "roleId": "3894208461012994",
      "roleName": "_GROUPS_ADMIN_ROLE",
      "roleDescription": "Groups Administrator",
      "rolePrivileges": [
        {
          "privilegeName": "CHANGE_USER_GROUP_MEMBERSHIP",
          "serviceId": "01ci93xb3tmzyin"
        },
        {
          "privilegeName": "USERS_RETRIEVE",
          "serviceId": "00haapch16h1ysv"
        },
        {
          "privilegeName": "GROUPS_ALL",
          "serviceId": "00haapch16h1ysv"
        },
        {
          "privilegeName": "ADMIN_DASHBOARD",
          "serviceId": "01ci93xb3tmzyin"
        },
        {
          "privilegeName": "ORGANIZATION_UNITS_RETRIEVE",
          "serviceId": "00haapch16h1ysv"
        }
      ],
      "isSystemRole": true
    },
    ...
  ]
}

भूमिका के सभी असाइनमेंट की सूची बनाना

सीधे तौर पर असाइन की गई सभी भूमिकाओं की पेज की गई सूची पाने के लिए, roleAssignments.list() तरीका अपनाएं. userKey पैरामीटर सेट होने पर, हो सकता है कि एपीआई पेज टोकन के साथ खाली नतीजे दिखाए. पेजेशन तब तक जारी रखें, जब तक कोई पेज टोकन न मिले.

  • अगर आप एडमिन हैं और आपको अपने डोमेन में भूमिकाएं असाइन की जा रही हैं, तो ग्राहक आईडी के तौर पर my_customer का इस्तेमाल करें.

  • अगर आप किसी रीसेलर हैं और आपको अपने किसी ग्राहक के लिए भूमिकाएं असाइन की जा रही हैं, तो उपयोगकर्ता को वापस पाएं ऑपरेशन से मिले ग्राहक आईडी का इस्तेमाल करें.

अनुरोध

GET https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roleassignments

जवाब

सही जवाब मिलने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. रिस्पॉन्स में, स्थिति कोड के साथ-साथ डोमेन में असाइन की गई सभी भूमिकाएं भी दिखती हैं:

{
  "kind": "admin\#directory\#roleAssignment",
  "etag": "\"sxH3n22L0-77khHtQ7tiK6I21Yo/VdrrUEz7GyXqlr9I9JL0wGZn8yE\"",
  "roleAssignmentId:"3894208461013211",
  "assignedTo:"100662996240850794412",
  "assigneeType:"user",
  "scopeType:"CUSTOMER",
}

सभी असाइन की गई भूमिकाओं की सूची बनाना

भूमिका के सभी असाइनमेंट की पेज की गई सूची पाने के लिए, roleAssignments.list() तरीका अपनाएं. इसमें, उन असाइनमेंट को भी शामिल किया जाता है जो किसी उपयोगकर्ता को उसके ग्रुप की वजह से असाइन किए जाते हैं.

ऐसा हो सकता है कि एपीआई, पेज टोकन के साथ खाली नतीजे दिखाए. पेजेशन तब तक जारी रखें, जब तक कोई पेज टोकन न दिखे.

  • अगर आप एडमिन हैं और आपको अपने डोमेन में भूमिकाएं असाइन की जा रही हैं, तो ग्राहक आईडी के तौर पर my_customer का इस्तेमाल करें.

  • अगर आप किसी रीसेलर हैं और आपको अपने किसी ग्राहक के लिए भूमिकाएं असाइन की जा रही हैं, तो उपयोगकर्ता को वापस पाएं ऑपरेशन से मिले ग्राहक आईडी का इस्तेमाल करें.

  • USER_KEY को ऐसी वैल्यू से बदलें जो एपीआई अनुरोध में उपयोगकर्ता की पहचान करती हो. ज़्यादा जानकारी के लिए, users.get देखें.

अनुरोध

GET https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roleassignments?userKey=USER_KEY&includeIndirectRoleAssignments=true

जवाब

सही जवाब मिलने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. स्टेटस कोड के साथ-साथ, रिस्पॉन्स में डोमेन में असाइन की गई सभी भूमिकाएं दिखती हैं. साथ ही, यह भी दिखता है कि assigneeType, user है या group:

{
  "kind": "admin\#directory\#roleAssignment",
  "etag": "\"sxH3n22L0-77khHtQ7tiK6I21Yo/VdrrUEz7GyXqlr9I9JL0wGZn8yE\"",
  "roleAssignmentId:"3894208461013211",
  "assignedTo:"100662996240850794412",
  "assigneeType:"group",
  "scopeType:"CUSTOMER",
}

भूमिका बनाना

नई भूमिका बनाने के लिए, यहां दिए गए POST अनुरोध का इस्तेमाल करें. साथ ही, अनुरोध को अनुमति दें में बताई गई अनुमति शामिल करें. इस भूमिका के साथ दिए जाने वाले हर विशेषाधिकार के लिए, privilegeName और serviceId जोड़ें. अनुरोध और रिस्पॉन्स प्रॉपर्टी के लिए, एपीआई का रेफ़रंस देखें.

अनुरोध

POST https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roles

{
  "roleName": "My New Role",
  "rolePrivileges": [
    {
      "privilegeName": "USERS_ALL",
      "serviceId": "00haapch16h1ysv"
    },
    {
      "privilegeName": "GROUPS_ALL",
      "serviceId": "00haapch16h1ysv"
    }
  ]
}

जवाब

सही जवाब मिलने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. रिस्पॉन्स में, स्थिति कोड के साथ-साथ नई भूमिका की प्रॉपर्टी भी दिखती हैं:

{
  "kind": "admin\#directory\#role",
  "etag": "\"sxH3n22L0-77khHtQ7tiK6I21Yo/uX9tXw0qyijC9nUKgCs08wo8aEM\"",
  "roleId": "3894208461013031",
  "roleName": "My New Role",
  "rolePrivileges": [
    {
      "privilegeName": "GROUPS_ALL",
      "serviceId": "00haapch16h1ysv"
    },
    {
      "privilegeName": "USERS_ALL",
      "serviceId": "00haapch16h1ysv"
    }
  ]
}

भूमिका असाइन करना

कोई भूमिका असाइन करने के लिए, यहां दिए गए POST तरीके का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताए गए अनुमति फ़ॉर्मैट का इस्तेमाल करें.

अनुरोध

POST https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roleassignments

{
  "roleId": "3894208461012995",
  "assignedTo": "100662996240850794412",
  "scopeType": "CUSTOMER"
}

जवाब

सही जवाब मिलने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. रिस्पॉन्स में, स्थिति कोड के साथ-साथ, नई भूमिका के असाइनमेंट की प्रॉपर्टी भी दिखती हैं:

{
  "kind": "admin\#directory\#roleAssignment",
  "etag": "\"sxH3n22L0-77khHtQ7tiK6I21Yo/VdrrUEz7GyXqlr9I9JL0wGZn8yE\"",
  "roleAssignmentId": "3894208461013211",
  "roleId": "3894208461012995",
  "assignedTo": "100662996240850794412",
  "scopeType": "CUSTOMER"
}

शर्तों के साथ भूमिका असाइन करना

खास शर्तें पूरी करने वाली कार्रवाइयां करने के लिए, भूमिकाएं दी जा सकती हैं. फ़िलहाल, सिर्फ़ दो शर्तें इस्तेमाल की जा सकती हैं:

  • सिर्फ़ सुरक्षा से जुड़े ग्रुप पर लागू
  • यह सुरक्षा ग्रुप पर लागू नहीं होता

condition सेट होने पर, यह सिर्फ़ तब लागू होगा, जब ऐक्सेस किया जा रहा संसाधन शर्तें पूरी करता हो. अगर condition खाली है, तो भूमिका (roleId) को स्कोप (scopeType) में, कलाकार (assignedTo) पर बिना किसी शर्त के लागू किया जाता है.

किसी उपयोगकर्ता को भूमिका असाइन करने के लिए, यहां दिए गए POST मेथड का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताई गई अनुमति शामिल करें.

उपयोगकर्ता के user_id के साथ JSON बॉडी जोड़ें. इसे users.get() से पाया जा सकता है. साथ ही, मौजूदा भूमिकाएं पाएं में बताए गए roleId और condition को भी जोड़ा जा सकता है. शर्तों वाली दो स्ट्रिंग का इस्तेमाल, यहां बताए गए तरीके से करना होगा. ये स्ट्रिंग सिर्फ़ Groups Editor और Groups Reader में पहले से बनी एडमिन भूमिकाओं के साथ काम करती हैं. ये शर्तें, Cloud IAM की शर्त के सिंटैक्स के मुताबिक होती हैं.

अनुरोध

सिर्फ़ सुरक्षा से जुड़े ग्रुप पर लागू
POST https://admin.googleapis.com/admin/directory/v1.1beta1/customer/customer_id/roleassignments

{
  "roleId": "3894208461012995",
  "assignedTo": "100662996240850794412",
  "scopeType": "CUSTOMER",
  "condition": "api.getAttribute('cloudidentity.googleapis.com/groups.labels',
    []).hasAny(['groups.security']) && resource.type ==
    'cloudidentity.googleapis.com/Group'"
}
यह सुरक्षा ग्रुप पर लागू नहीं होता
POST https://admin.googleapis.com/admin/directory/v1.1beta1/customer/customer_id/roleassignments

{
  "roleId": "3894208461012995",
  "assignedTo": "100662996240850794412",
  "scopeType": "CUSTOMER",
  "condition": "!api.getAttribute('cloudidentity.googleapis.com/groups.labels',
    []).hasAny(['groups.security']) && resource.type ==
    'cloudidentity.googleapis.com/Group'"
}

जवाब

सही जवाब मिलने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. रिस्पॉन्स में, स्थिति कोड के साथ-साथ, नई भूमिका के असाइनमेंट की प्रॉपर्टी भी दिखती हैं:

{
  "kind": "admin\#directory\#roleAssignment",
  "etag": "\"sxH3n22L0-77khHtQ7tiK6I21Yo/VdrrUEz7GyXqlr9I9JL0wGZn8yE\"",
  "roleAssignmentId": "3894208461013211",
  "roleId": "3894208461012995",
  "assignedTo": "100662996240850794412",
  "scopeType": "CUSTOMER",
  "condition": "!api.getAttribute('cloudidentity.googleapis.com/groups.labels',
    []).hasAny(['groups.security']) && resource.type ==
    'cloudidentity.googleapis.com/Group'"
}