Rolleri yönet

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.

İ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'"
}