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