Wyznaczanie niestandardowych ról administratora na potrzeby funkcji Classroom

Administratorzy mogą tworzyć niestandardowe role administratora w konsoli administracyjnej, aby umożliwić określonym osobom lub grupom z licencją na Education Plus:

Z tego przewodnika dowiesz się, jak skonfigurować te funkcje w domenie za pomocą interfejsów API Google.

Automatyzowanie procesu przypisywania ról niestandardowych

Aby zautomatyzować proces przypisywania ról niestandardowych:

  1. Utwórz grupy zabezpieczeń, aby uporządkować użytkowników, którzy mają dostęp do tych funkcji.
  2. Dodaj użytkowników do grup.
  3. Utwórz niestandardową rolę administratora, wybierając odpowiednie uprawnienia.
  4. Pobierz identyfikatory jednostek organizacyjnych
  5. Zastosuj do nowo utworzonych grup niestandardową rolę administratora.

Wymagania wstępne

  1. Przeczytaj krótkie przewodniki, aby dowiedzieć się, jak skonfigurować i uruchomić aplikację przy użyciu interfejsów API Google w językach takich jak JavaScript, Python czy Java.
  2. Przeczytaj omówienie interfejsu Groups API.
  3. Zanim zaczniesz korzystać z interfejsów Cloud Identity API opisanych w tym przewodniku, musisz skonfigurować Cloud Identity. Te interfejsy API służą do tworzenia grup i przypisywania uprawnień administratora.
  4. Skonfiguruj interfejs Groups API.

Tworzenie grup zabezpieczeń

Utwórz grupę zabezpieczeń za pomocą metody groups.create. Grupę można ustawić jako grupę zabezpieczeń, jeśli etykieta zabezpieczeń jest uwzględniona w polu labels żądania. Więcej informacji i ograniczeń związanych z tworzeniem grup zabezpieczeń znajdziesz w przewodniku tworzenia grup zabezpieczeń.

POST https://cloudidentity.googleapis.com/v1/groups

Opcjonalnie możesz dodać parametr zapytania InitialGroupConfig, aby zainicjować właściciela grupy:

POST https://cloudidentity.googleapis.com/v1/groups&initialGroupConfig={initialGroupConfig}

Konto, z którego pochodzi ta prośba, wymaga jednego z tych zakresów:

  • https://www.googleapis.com/auth/cloud-identity.groups
  • https://www.googleapis.com/auth/cloud-identity
  • https://www.googleapis.com/auth/cloud-platform

Treść żądania

Treść żądania zawiera szczegóły grupy do utworzenia. customerId musi zaczynać się od „C” (np. C046psxkn). Znajdź swój identyfikator klienta.

{
   parent: "customers/<customer-id>",
   description: "This is the leadership group of school A.",
   displayName: "Leadership School A",
   groupKey: {
      id: "leadership_school_a@example.com"
   },
   labels: {
      "cloudidentity.googleapis.com/groups.security": "",
      "cloudidentity.googleapis.com/groups.discussion_forum": ""
   }
}

Odpowiedź

Odpowiedź zawiera nowe wystąpienie zasobu Operation.

{
   done: true,
   response: {
      @type: "type.googleapis.com/google.apps.cloudidentity.groups.v1.Group",
      name: "groups/<group-id>", // unique group ID
      groupKey: {
         id: "leadership_school_a@example.com" // group email address
      },
      parent: "customers/<customer-id>",
      displayName: "Leadership School A",
      description: "This is the leadership group of school A.",
      createTime: "<created time>",
      updateTime: "<updated time>",
      labels: {
         "cloudidentity.googleapis.com/groups.security": "",
         "cloudidentity.googleapis.com/groups.discussion_forum": ""
      }
   }
}

Dodawanie członków grupy

Po utworzeniu grupy możesz dodać do niej członków. Członkiem grupy może być użytkownik lub inna grupa zabezpieczeń. Jeśli dodasz grupę jako członka innej grupy, może minąć nawet 10 minut, zanim członkostwo zostanie rozpowszechnione. Dodatkowo interfejs API zwraca błąd w przypadku cykli w członkostwie w grupie. Jeśli na przykład group1 jest członkiem grupy group2, to group2 nie może być członkiem grupy group1.

Aby dodać użytkownika do grupy, użyj następującego żądania POST.

Interfejs Directory API members.insert:

POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members

Parametr ścieżki groupKey to adres e-mail grupy nowego użytkownika lub jej unikalny identyfikator.

Konto wysyłające żądanie POST wymaga jednego z tych zakresów:

  • https://apps-apis.google.com/a/feeds/groups/
  • https://www.googleapis.com/auth/admin.directory.group
  • https://www.googleapis.com/auth/admin.directory.group.member

Treść żądania

Treść żądania zawiera szczegóły obiektu member do utworzenia.

{
   email: "person_one@example.com",
   role: "MEMBER", // can be `MEMBER`, `OWNER`, `MANAGER`
}

Odpowiedź

Odpowiedź zawiera nowe wystąpienie użytkownika.

{
   kind: "admin#directory#member",
   etag: "<etag-value>", // role's unique ETag
   id: "4567", // group member's unique ID
   email: "person_one@example.com",
   role: "MEMBER",
   type: "GROUP",
   status: "ACTIVE"
}

Tę prośbę musisz przesłać w przypadku każdego użytkownika, którego chcesz dodać jako członka. Możesz zbiorczo ograniczyć liczbę połączeń HTTP, które musi nawiązać klient.

Tworzenie niestandardowej roli administratora z podwyższonymi uprawnieniami

Interfejs Directory API umożliwia zarządzanie dostępem do funkcji w domenie Google Workspace za pomocą kontroli dostępu opartej na rolach. Możesz tworzyć role niestandardowe z uprawnieniami, które ograniczają dostęp administratora bardziej szczegółowo niż w przypadku gotowych ról dostępnych w Google Workspace. Role możesz przypisać użytkownikom lub grupom zabezpieczeń. Więcej informacji o ograniczeniach tworzenia ról znajdziesz w artykule Informacje o ograniczeniach dotyczących ról niestandardowych i przypisywania ról.

Aby utworzyć nową rolę, użyj tego żądania POST.

Interfejs Directory API roles.insert:

POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roles

Parametr customerId jest taki sam jak użyty w kroku 1 tego przewodnika.

Konto wysyłające żądanie POST wymaga tego zakresu:

  • https://www.googleapis.com/auth/admin.directory.rolemanagement

Treść żądania

Treść żądania zawiera szczegóły obiektu role do utworzenia. Dodaj privilegeName i serviceId do każdego uprawnienia, które powinno zostać przypisane z tą rolą.

funkcje analityczne Classroom

Uprawnienie EDU_ANALYTICS_DATA_ACCESS jest wymagane do utworzenia roli niestandardowej z dostępem do danych Analytics wraz z rolą serviceId ustawioną na 019c6y1840fzfkt.

{
   roleName: "Education Admin", // customize as needed
   roleDescription: "Access to view analytics data", // customize as needed
   rolePrivileges: [
      {
         privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
         serviceId: "019c6y1840fzfkt"
      }
   ]
}

Tymczasowy dostęp do zajęć

Uprawnienie ADMIN_OVERSIGHT_MANAGE_CLASSES jest wymagane do utworzenia roli niestandardowej z tymczasowym dostępem do klas wraz z serviceId ustawionym na 019c6y1840fzfkt.

{
   roleName: "Education Admin", // customize as needed
   roleDescription: "Access to manage classes privilege", // customize as needed
   rolePrivileges: [
      {
         privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
         serviceId: "019c6y1840fzfkt"
      }
   ]
}

Wywołaj metodę privileges.list, aby pobrać listę wartości privilegeIds i serviceIds.

Odpowiedź

Odpowiedź zawiera nowe wystąpienie roli.

funkcje analityczne Classroom

{
   kind: "admin#directory#role",
   etag: "<etag-value>",  // role's unique ETag
   roleId: "<role-id>",   // role's unique ID
   roleName: "Education Admin",
   roleDescription: "Access to view analytics data",
   rolePrivileges: [
      {
         privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
         serviceId: "019c6y1840fzfkt"
      }
   ],
   isSystemRole: false,
   isSuperAdminRole: false
}

Tymczasowy dostęp do zajęć

{
   kind: "admin#directory#role",
   etag: "<etag-value>",  // role's unique ETag
   roleId: "<role-id>",   // role's unique ID
   roleName: "Education Admin",
   roleDescription: "Access to manage classes privilege",
   rolePrivileges: [
      {
         privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
         serviceId: "019c6y1840fzfkt"
      }
   ],
   isSystemRole: false,
   isSuperAdminRole: false
}

Pobieranie identyfikatorów jednostek organizacyjnych

Możesz ograniczyć dostęp niestandardowej roli administratora do jednej lub kilku jednostek organizacyjnych, korzystając z identyfikatora jednostki organizacyjnej. Użyj interfejsu OrgUnit API, aby pobrać orgUnitId.

funkcje analityczne Classroom

Podczas przypisywania niestandardowej roli administratora konkretnemu użytkownikowi lub grupie zalecamy wybranie jednostki organizacyjnej ucznia i jednostki organizacyjnej nauczyciela. W ten sposób zapewnisz dostęp do danych na poziomie uczniów i zajęć w jednostkach organizacyjnych użytkownikom z niestandardowymi uprawnieniami administratora. Jeśli pominiesz jednostkę organizacyjną ucznia, wyznaczeni użytkownicy nie będą mieli dostępu do danych uczniów. Jeśli pominiesz jednostkę organizacyjną nauczyciela, wyznaczeni użytkownicy nie będą mieli dostępu do danych na poziomie zajęć.

Tymczasowy dostęp do zajęć

Możesz ograniczyć tymczasowe uprawnienia dostępu do zajęć, zezwalając użytkownikom z niestandardową rolą administratora na dostęp do zajęć w określonych jednostkach organizacyjnych. Jeśli ograniczysz dostęp do jednostki organizacyjnej, grupa, do której przypisano niestandardową rolę administratora, będzie miała dostęp tylko do zajęć, w których nauczyciel główny zajęć jest w tej jednostce organizacyjnej.

Przypisywanie niestandardowej roli administratora

Aby przypisać niestandardową rolę administratora do grupy, użyj poniższego żądania POST. Informacje o limitach przypisywania ról znajdziesz we wskazówkach dotyczących ograniczeń przypisywania ról niestandardowych i przypisywania ról.

Interfejs Directory API roleAssignments.insert:

POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments

Przypisz do grupy lub pojedynczego użytkownika

Jeśli przypisujesz uprawnienia grupie, umieść groupId w polu assignedTo w treści żądania. Element groupId został uzyskany w kroku Tworzenie grup zabezpieczeń. Jeśli przypisujesz uprawnienia pojedynczemu użytkownikowi, umieść jego identyfikator w polu assignedTo w treści żądania. Identyfikator użytkownika można pobrać, wywołując metodę users.get i określając adres e-mail użytkownika jako parametr userKey lub wywołując users.list.

Konto wysyłające żądanie POST wymaga tego zakresu:

  • https://www.googleapis.com/auth/admin.directory.rolemanagement

Treść żądania

Treść żądania zawiera szczegóły obiektu RoleAssignment do utworzenia. Na każdą jednostkę organizacyjną, którą chcesz powiązać z grupą, musisz przesłać tylko jedną prośbę.

{
   roleId: "<role-id>",        // role's unique ID obtained from Step 3
   assignedTo: "<id>",         // group ID or user ID
   scopeType: "ORG_UNIT",      // can be `ORG_UNIT` or `CUSTOMER`
   orgUnitId: "<org-unit-id>"  // organizational unit ID referenced in Step 4
}

Odpowiedź

Odpowiedź zawiera nowe wystąpienie RoleAssignment.

{
   kind: "admin#directory#roleAssignment",
   etag: "<etag-value>",
   roleAssignmentId: "<role-assignment-id>",
   roleId: "<role-id>",
   assignedTo: "<group-id or user-id>",
   assigneeType: "GROUP",
   scopeType: "ORG_UNIT",
   orgUnitId: "<org-unit-id>"
}

Zasoby

Dodatkowe informacje znajdziesz tutaj: