डायरेक्ट्री एपीआई की मदद से, रोल-आधारित ऐक्सेस कंट्रोल (आरबीएसी) का इस्तेमाल करके, अपने 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
तरीके का इस्तेमाल करें और अनुमति देने के अनुरोध में बताई गई अनुमति को शामिल करें.
किसी उपयोगकर्ता को यह भूमिका असाइन करने के लिए, उपयोगकर्ता के
user_id
के साथ JSON बॉडी जोड़ें, जिसे आपकोusers.get()
,roleId
(जैसा कि मौजूदा भूमिकाएं पाएं में बताया गया है), औरscope_type
से मिल सकता है.किसी सेवा खाते को भूमिका असाइन करने के लिए, सेवा खाते के
unique_id
(जैसा कि पहचान और ऐक्सेस मैनेजमेंट (आईएएम) में बताया गया है),roleId
(मौजूदा भूमिकाएं पाएं में बताए गए तरीके), औरscope_type
के साथ, JSON बॉडी जोड़ें.किसी ग्रुप को यह भूमिका असाइन करने के लिए, ग्रुप के
group_id
के साथ JSON बॉडी जोड़ें, जो आपकोgroups.get()
,roleId
(मौजूदा भूमिकाएं पाएं, औरscope_type
में बताए गए तरीके के हिसाब से) से मिल सके.
अनुरोध
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'"
}