Directory API, rol tabanlı erişim denetimi (RBAC) seçeneğini tıklayarak Google Workspace alanınızdaki özelliklere erişimi yönetebilirsiniz. Proje bilgilerini yönetici erişimini daha ayrıntılı şekilde sınırlamak için ayrıcalıklara sahip özel roller Google Workspace ile sağlanan önceden oluşturulmuş roller. Rol atayabilirsiniz kullanıcılara veya güvenlik gruplarına. Bu kılavuzda, DMAIC ve PDCA gibi bazı görevlerle ilgili temel görevleri içerir.
Aşağıda, Directory API tarafından Google Workspace kapsamında RBAC ile ilgili olarak:
- Ayrıcalık
- Bir görev veya işlemi gerçekleştirmek için
Google Workspace alanı. temsil eden
Privilege
kaynağı. Orada bu kaynakla ilişkili kalıcı veri yok. - Rol
- Söz konusu role sahip tüzel kişilere
gerçekleştirme yeteneği. temsil eden
Role
kaynağı. - Rol ataması
- Kullanıcıya veya gruba verilen belirli bir rolün kaydı. Temsil eden
RoleAssignment
- Güvenlik grubu
- Bir tür Cloud Identity grubu kurumsal bilgilere erişimi kontrol etmek için kaynaklar. Güvenlik grupları hem bağımsız kullanıcıları hem de grupları içerebilir.
Rol ve rol ataması sınırları
Yalnızca sınırlı sayıda özel rol veya rol ataması oluşturabilirsiniz. Bu nedenle sınıra yaklaştığınızda limit. Roller ve rol atamaları için aşağıdaki sınırlar geçerlidir:
- Kuruluşunuzun tamamı için en fazla 750 özel rol oluşturabilirsiniz.
- Her biri için en fazla 1.000 rol ataması oluşturabilirsiniz kök kuruluşun bir birim olarak kabul edildiği kuruluş birimi. Örneğin, kök kuruluşta 600 ve 700 rol atayabilirsiniz. (ör. bir şirketin departmanı), tanımladığınız başka bir kuruluş biriminden de Google Workspace'teki önceden oluşturulmuş tüm yönetici rolleri varsayılan olarak kapsam dışı görülür. Daha fazla bilgi: ayrıcalıklarla ilgili sınırlamalar atanabilir.
Roller ve rol atamada gruplar için aşağıdaki sınırlar geçerlidir:
- Süper Yönetici dışında herhangi bir rolü atayabilirsiniz.
- Genel kuruluş biriminde gruplara toplam 250 rol ataması yapabilirsiniz ayrı bir kontrol grubu oluşturabilirsiniz.
- Grup, kuruluşunuzdaki bir güvenlik grubu olmalıdır.
- Grup üyeliğini kuruluşunuzdaki kullanıcılarla kısıtlamanızı öneririz. Siz kuruluşunuz dışından kullanıcı ekleyebilir ancak rol ayrıcalıklarına sahip olmayabilir. Ayrıntılar için bkz. Grup üyeliğini kısıtlayın. ### Gruplara rol ataması
Bir kuruluş biriminde 1.000'den fazla rol atamanız gerekiyorsa birden fazla bir güvenlik grubuna oluşturabilir ve gruba bir rol atayabilirsiniz. Grup rolü bazı ek sınırlamalar vardır. Daha fazla bilgi için Ayrıntılı bilgiler için yönetici yardım merkezine göz atın.
Google Yönetici Konsolu rol-ayrıcalığı eşlemesi
Buradan, ayrıcalıklarına erişen kullanıcılara rol atamak için
bazı ek ayrıcalıkların
verildi. Örneğin, bir kullanıcıya
Ayrıca, Yönetici konsolunda yalnızca USERS_CREATE
ayrıcalığı
zorunlu değil, aynı zamanda USERS_UPDATE
ve ORGANIZATION_UNITS_RETRIEVE
ayrıcalıkları. Aşağıdaki tablo, Yönetici Konsolu'nu eşler
işlevleri ve kullanıcı tercihlerini yönetme,
kuruluş birimleri için geçerli olacaktır.
Yönetici konsolu işlevi | Gereken ayrıcalıklar |
---|---|
Kuruluş Birimleri - Okuma | ORGANIZATION_UNITS_RETRIEVE |
Kuruluş Birimleri - Oluştur | ORGANIZATION_UNITS_RETRIEVE + ORGANIZATION_UNITS_CREATE |
Kuruluş Birimleri - Güncelleme | ORGANIZATION_UNITS_RETRIEVE + ORGANIZATION_UNITS_UPDATE |
Kuruluş Birimleri - Silme | ORGANIZATION_UNITS_RETRIEVE + ORGANIZATION_UNITS_DELETE |
Kuruluş Birimleri | ORGANIZATION_UNITS_ALL |
Kullanıcılar - Okuma | USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE |
Kullanıcılar - Oluştur | USERS_CREATE + USERS_UPDATE + ORGANIZATION_UNITS_RETRIEVE |
Kullanıcılar - Güncelleme | USERS_UPDATE + ORGANIZATION_UNITS_RETRIEVE |
Kullanıcılar - Kullanıcı Taşıma | USERS_MOVE + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE |
Kullanıcılar - Kullanıcıları Yeniden Adlandırma | USERS_ALIAS + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE |
Kullanıcılar - Şifre Sıfırlama | USERS_RESET_PASSWORD + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE |
Kullanıcılar - Şifre Değişikliğini Zorunlu Kılma | USERS_FORCE_PASSWORD_CHANGE + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE |
Kullanıcılar - Takma Ad Ekleme/Kaldırma | USERS_ADD_NICKNAME + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE |
Kullanıcılar - Kullanıcıları Askıya Alma | USERS_SUSPEND + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE |
GRUPLAR | GROUPS_ALL |
Güvenlik - Kullanıcı Güvenliği Yönetimi | USER_SECURITY_ALL + USERS_RETRIEVE + ORGANIZATION_UNITS_RETRIEVE |
Kullanım alanı örnekleri
Başlamadan önce
kimlik doğrulama ve yetkilendirme adımlarına göz atın.
Alan ayrıcalıklarının listesini alma
Alanınızda desteklenen ayrıcalıkların sayfalara ayrılmış bir listesini almak için
privileges.list()
yöntemidir.
Kendi alanınızda ayrıcalıklar elde eden bir yöneticiyseniz
my_customer
adresini girmelisiniz.Müşterilerinden biri için ayrıcalıklar alan bir bayiyseniz kullanıcı işlemini seçin.
İstek
GET https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roles/ALL/privileges
Yanıt
Başarılı bir yanıt HTTP 200 durumu döndürür. girin. Bununla birlikte, durumda, yanıt, söz konusu alan adında desteklenen ayrıcalıkları döndürür:
{
"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
}
]
},
...
]
}
Mevcut rolleri alma
Mevcut rollerin listesini almak için aşağıdaki GET
isteğini kullanın ve
Yetkilendirme belgesinde açıklandığı şekilde
geçerlidir.
Kendi alanınızda roller alan bir yöneticiyseniz
my_customer
adresini girmelisiniz.Bir müşteri için rol alan bayiyseniz bir kullanıcı işlemini seçin.
İstek
GET https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roles
Yanıt
Başarılı bir yanıt, HTTP 200
durumu döndürür
ekleyebilirsiniz.
durum kodu söz konusuysa yanıt, söz konusu alanda bulunan rolleri döndürür:
{
"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
},
...
]
}
Tüm rol atamalarını listele
Tüm doğrudan rol atamalarının sayfalara ayrılmış listesini almak için
roleAssignments.list()
yöntemidir. userKey
aşağıdaki durumlarda API, sayfa jetonuyla boş sonuçlar döndürebilir:
parametresinin değeridir. Hiçbir sayfa jetonu kalmayana kadar sayfalara ayırmaya devam etmeniz gerekir.
geri döndü.
Kendi alanınızda rol atamaları alan bir yöneticiyseniz
my_customer
adresini girmelisiniz.Müşterilerinden biri için rol atamaları alan bir bayiyseniz kullanıcı işlemini seçin.
İstek
GET https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roleassignments
Yanıt
Başarılı bir yanıt, HTTP 200
durumu döndürür
ekleyebilirsiniz. Bununla birlikte,
durum kodu söz konusuysa yanıt, alanda atanan tüm rolleri döndürür:
{
"kind": "admin\#directory\#roleAssignment",
"etag": "\"sxH3n22L0-77khHtQ7tiK6I21Yo/VdrrUEz7GyXqlr9I9JL0wGZn8yE\"",
"roleAssignmentId:"3894208461013211",
"assignedTo:"100662996240850794412",
"assigneeType:"user",
"scopeType:"CUSTOMER",
}
Tüm dolaylı rol atamalarını listele
Dolaylı olarak olanlar da dahil olmak üzere tüm rol atamalarının sayfalara ayrılmış listesini almak için
bir kullanıcıya atandığında, bu özellik için kullanıcının
roleAssignments.list()
yöntemidir.
API, bir sayfa jetonuyla boş sonuçlar döndürebilir. Devam etmelisiniz sayfa jetonu döndürülmemesi için gereklidir.
Kendi alanınızda rol atamaları alan bir yöneticiyseniz
my_customer
adresini girmelisiniz.Müşterilerinden biri için rol atamaları alan bir bayiyseniz kullanıcı işlemini seçin.
USER_KEY
yerine kullanıcı olabilir. Daha fazla bilgi için bkz.users.get
.
İstek
GET https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roleassignments?userKey=USER_KEY&includeIndirectRoleAssignments=true
Yanıt
Başarılı bir yanıt, HTTP 200
durumu döndürür
ekleyebilirsiniz. Bununla birlikte,
durumda, yanıt, alanda atanan tüm rollerin gerçekleşip gerçekleşmediğine karar verirse
assigneeType
, user
veya group
ise:
{
"kind": "admin\#directory\#roleAssignment",
"etag": "\"sxH3n22L0-77khHtQ7tiK6I21Yo/VdrrUEz7GyXqlr9I9JL0wGZn8yE\"",
"roleAssignmentId:"3894208461013211",
"assignedTo:"100662996240850794412",
"assigneeType:"group",
"scopeType:"CUSTOMER",
}
Rol oluşturma
Yeni bir rol oluşturmak için aşağıdaki POST
isteğini kullanın ve
Yetkilendirme belgesinde açıklandığı şekilde
geçerlidir.
Olması gereken her ayrıcalık için bir privilegeName
ve serviceId
ekleyin
bu rol ile verildi. İstek ve yanıt özellikleri için API'ye bakın
Referans.
İstek
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" } ] }
Yanıt
Başarılı bir yanıt, HTTP 200
durumu döndürür
ekleyebilirsiniz. Bununla birlikte,
durum kodu döndürülürse yanıt, yeni role ilişkin özellikleri döndürür:
{
"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"
}
]
}
Rol ataması oluşturma
Rol atamak için aşağıdaki POST
yöntemini kullanın ve yetkilendirmeyi ekleyin
şurada açıklandığı:
İstekleri yetkilendirin.
Rolü bir kullanıcıya atamak için kullanıcının
user_id
öğesini içeren bir JSON gövdesi ekleyin. Bu özelliği kullanarakusers.get()
,roleId
(şurada açıklandığı gibi: Mevcut rolleri alın) vescope_type
.Rolü bir hizmet hesabına atamak için Hizmet hesabının
unique_id
(şurada tanımlandığı gibi: Identity and Access Management (IAM)),roleId
(bkz. Mevcut rolleri alın) vescope_type
.Rolü bir gruba atamak için şunu içeren bir JSON gövdesi ekleyin:
group_id
veya grubun altında bulunangroups.get()
,roleId
(şu şekilde: Mevcut rolleri alın) vescope_type
.
İstek
POST https://admin.googleapis.com/admin/directory/v1/customer/customer_id/roleassignments { "roleId": "3894208461012995", "assignedTo": "100662996240850794412", "scopeType": "CUSTOMER" }
Yanıt
Başarılı bir yanıt, HTTP 200
durumu döndürür
ekleyebilirsiniz. Bununla birlikte,
durum kodu döndürülürse yanıt, yeni rol atamasına ilişkin özellikleri döndürür:
{
"kind": "admin\#directory\#roleAssignment",
"etag": "\"sxH3n22L0-77khHtQ7tiK6I21Yo/VdrrUEz7GyXqlr9I9JL0wGZn8yE\"",
"roleAssignmentId": "3894208461013211",
"roleId": "3894208461012995",
"assignedTo": "100662996240850794412",
"scopeType": "CUSTOMER"
}
Koşullarla birlikte rol ataması oluşturma
Belirli koşulları karşılayan işlemler gerçekleştirmek için roller verebilirsiniz. Şu anda, yalnızca iki koşul desteklenir:
- Yalnızca güvenlik grupları için geçerlidir
- Güvenlik grupları için geçerli değildir
condition
ayarlandığında ayar yalnızca kaynak şu anda etkinken uygulanır
koşulu karşılar. condition
alanı boşsa rol (roleId
)
(scopeType
) kapsamındaki oyuncuya (assignedTo
) koşulsuz olarak uygulandı.
Bir kullanıcıya rol atamak için aşağıdaki POST yöntemini kullanın ve yetki belgesinin bu bölümünde Yetkilendir istekleri hakkında daha fazla bilgi edinin.
Kullanıcının user_id
öğesini içeren bir JSON gövdesi ekleyin. Bu bilgiyi şuradan alabilirsiniz:
users.get(), roleId
olarak
Mevcut rolleri alma ve condition
konusunda açıklanmıştır. İlgili içeriği oluşturmak için kullanılan
iki koşul dizesinin aşağıda gösterildiği gibi tam olarak kullanılması gerekir ve
yalnızca Gruplar Düzenleyici ve Gruplar Okuyucusu ile çalışır
önceden oluşturulmuş yönetici rolleri.
Şu koşullar geçerlidir:
Cloud IAM koşulu söz dizimi.
İstek
Yalnızca güvenlik grupları için geçerlidir
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'" }
Güvenlik grupları için geçerli değildir
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'" }
Yanıt
Başarılı bir yanıt, HTTP 200
durumu döndürür
ekleyebilirsiniz. Bununla birlikte,
durum kodu döndürülürse yanıt, yeni rol atamasına ilişkin özellikleri döndürür:
{
"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'"
}