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ą Education Plus:

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

Automatyzacja 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 mogą korzystać z tych funkcji.
  2. Dodaj członków do grup.
  3. Utwórz niestandardową rolę administratora, wybierając odpowiednie uprawnienie.
  4. Pobierz identyfikatory jednostek organizacyjnych.
  5. Zastosuj niestandardową rolę administratora do nowo utworzonych grup.

Wymagania wstępne

  1. Przeczytaj przewodniki Szybki start, aby dowiedzieć się, jak skonfigurować i uruchomić aplikację za pomocą interfejsów API Google w językach takich jak JavaScript, Python i Java.
  2. Przeczytaj artykuł 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 w celu przypisywania uprawnień administratora.
  4. Skonfiguruj interfejs Groups API.

Tworzenie grup zabezpieczeń

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

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

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

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

Konto, z którego wysyłane jest to żądanie, 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, która ma zostać utworzona. customerId musi zaczynać się od litery „C” (np. C046psxkn). Jak znaleźć 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 następnym krokiem jest dodanie członków. Członkiem grupy może być użytkownik lub inna grupa zabezpieczeń. Jeśli dodasz grupę jako członka innej grupy, propagacja członkostwa może potrwać do 10 minut. Ponadto interfejs API zwraca błąd w przypadku cykli w członkostwie w grupach. Jeśli np. group1 jest członkiem group2, group2 nie może być członkiem group1.

Aby dodać członka do grupy, użyj tego żądania POST.

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 członka lub unikalny identyfikator grupy.

Konto, z którego wysyłane jest żą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 member który ma zostać utworzony.

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

Odpowiedź

Odpowiedź zawiera nowe wystąpienie członka.

{
   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"
}

To żądanie musi zostać wysłane w przypadku każdego użytkownika, którego chcesz dodać jako członka. Możesz wysyłać te żądania zbiorczo, aby zmniejszyć liczbę połączeń HTTP, które musi nawiązać klient.

Tworzenie niestandardowej roli administratora z uprawnieniami

Interfejs Directory API umożliwia zarządzanie dostępem do funkcji w domenie Google Workspace za pomocą kontroli dostępu opartej na rolach (RBAC). Możesz tworzyć role niestandardowe z uprawnieniami, które pozwalają ograniczyć dostęp administratora bardziej szczegółowo niż w przypadku ról wbudowanych w Google Workspace. Role możesz przypisywać użytkownikom lub grupom zabezpieczeń. Szczegółowe informacje o ograniczeniach dotyczących tworzenia ról znajdziesz w artykule Ograniczenia dotyczące ról niestandardowych i przypisywania ról limitations.

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

Directory API roles.insert:

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

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

Konto, z którego wysyłane jest żądanie POST, wymaga tego zakresu:

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

Treść żądania

Treść żądania zawiera szczegóły role która ma zostać utworzona. Dodaj privilegeName i serviceId dla każdego uprawnienia, które ma zostać przyznane w ramach tej roli.

Funkcje analityczne Classroom

Aby utworzyć rolę niestandardową, która może uzyskiwać dostęp do danych analitycznych, wymagane jest uprawnienie EDU_ANALYTICS_DATA_ACCESS oraz serviceId ustawiony 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ęć

Aby utworzyć rolę niestandardową, która może tymczasowo uzyskiwać dostęp do zajęć, wymagane jest uprawnienie ADMIN_OVERSIGHT_MANAGE_CLASSES oraz serviceId ustawiony 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"
      }
   ]
}

Aby pobrać a listę privilegeIds i serviceIds, wywołaj metodę privileges.list.

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

Dostęp niestandardowej roli administratora możesz ograniczyć do co najmniej 1 jednostki organizacyjnej za pomocą identyfikatora jednostki organizacyjnej. Aby pobrać orgUnitId, użyj interfejsu OrgUnit API.

Funkcje analityczne Classroom

Podczas przypisywania niestandardowej roli administratora do konkretnego użytkownika lub grupy zalecamy wybranie jednostki organizacyjnej ucznia i jednostki organizacyjnej nauczyciela. Dzięki temu użytkownicy z uprawnieniami niestandardowego administratora będą mieli dostęp do danych na poziomie ucznia i zajęć w jednostkach organizacyjnych. Jeśli jednostka organizacyjna ucznia zostanie pominięta, wyznaczeni użytkownicy nie będą mieli dostępu do danych uczniów. Jeśli jednostka organizacyjna nauczyciela zostanie pominięta, wyznaczeni użytkownicy nie będą mieli dostępu do danych na poziomie zajęć.

Tymczasowy dostęp do zajęć

Uprawnienia tymczasowego dostępu do zajęć możesz ograniczyć, przyznając użytkownikom z niestandardową rolą administratora dostęp do zajęć w określonych jednostkach organizacyjnych. Jeśli ograniczysz dostęp do jednostki organizacyjnej, grupa, do której przypisana jest niestandardowa rola administratora, będzie mieć dostęp tylko do zajęć, w przypadku których główny nauczyciel jest w tej jednostce organizacyjnej.

Przypisywanie niestandardowej roli administratora

Aby przypisać niestandardową rolę administratora do grupy, użyj tego żądania POST. Limity przypisywania ról znajdziesz w artykule Ograniczenia dotyczące ról niestandardowych i przypisywania ról.

Directory API roleAssignments.insert:

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

Przypisywanie do grupy lub pojedynczego użytkownika

Jeśli przypisujesz uprawnienie do grupy, dodaj groupId do pola assignedTo w treści żądania. groupId został uzyskany w kroku Tworzenie grup zabezpieczeń. Jeśli przypisujesz uprawnienie do pojedynczego użytkownika, dodaj jego identyfikator do pola assignedTo w treści żądania. Identyfikator użytkownika można pobrać, wywołując metodę users.get i podając adres e-mail użytkownika jako parametr userKey lub wywołując metodę users.list.

Konto, z którego wysyłane jest żądanie POST, wymaga tego zakresu:

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

Treść żądania

Treść żądania zawiera szczegóły RoleAssignment, który ma zostać utworzony. Musisz wysłać 1 żądanie na każdą jednostkę organizacyjną, którą chcesz powiązać z tą grupą.

{
   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 w tych materiałach: