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

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

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

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

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

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

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

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

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

ग्रुप को भूमिकाएं असाइन करना

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

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 से मिल सके. नीचे दिखाई गई दो शर्तों वाली स्ट्रिंग का इस्तेमाल शब्दों में किया जाना चाहिए. ये ग्रुप एडिटर और ग्रुप रीडर पहले से बनाई गई एडमिन भूमिकाओं के साथ ही काम करती हैं. ये शर्तें, 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'"
}