Wyznaczanie niestandardowych ról administratora na potrzeby funkcji Classroom

Administratorzy mogą tworzyć w konsoli administracyjnej niestandardowe role administratora, aby umożliwić określonym osobom lub grupom z licencją 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 mogą korzystać z 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 niestandardową rolę administratora do nowo utworzonych grup.

Wymagania wstępne

  1. Zapoznaj się z przewodnikami dla początkujących, aby dowiedzieć się, jak skonfigurować i uruchomić aplikację korzystającą z interfejsów API Google w językach takich jak JavaScript, Python i 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, którym można przypisywać uprawnienia 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ń, gdy 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ć parametr zapytania InitialGroupConfig, aby zainicjować właściciela grupy:

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

Konto, z którego wysyłana jest ta prośba, musi mieć jeden 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). Znajdź 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 nową instancję 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": ""
      }
   }
}

Dodaj członków grupy

Po utworzeniu grupy kolejnym 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. Dodatkowo interfejs API zwraca błąd w przypadku cykli w członkostwie w grupach. Jeśli np. group1 jest członkiem grupy group2, group2 nie może być członkiem grupy group1.

Aby dodać członka do grupy, użyj poniższego żą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, które wysyła żądanie POST, musi mieć jeden 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óre mają zostać utworzone.

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

Odpowiedź

Odpowiedź zawiera nową instancję 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"
}

Tę prośbę należy wysłać w przypadku każdego użytkownika, którego chcesz dodać jako członka. Możesz grupować te żądania, 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, aby bardziej szczegółowo ograniczać dostęp administratora niż w przypadku gotowych ról dostępnych w Google Workspace. Role możesz przypisywać użytkownikom lub grupom zabezpieczeń. Szczegółowe informacje o ograniczeniach związanych z tworzeniem ról znajdziesz w artykule Ograniczenia dotyczące ról niestandardowych i przypisywania ról.

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

Directory API roles.insert:

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

Symbol customerId jest taki sam jak w kroku 1 tego przewodnika.

Konto, z którego wysłano żądanie POST, musi mieć ten zakres:

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

Treść żądania

Treść żądania zawiera szczegóły role, które mają zostać utworzone. Dodaj właściwości privilegeNameserviceId do każdego uprawnienia, które ma być przyznane w ramach tej roli.

Funkcje analityczne Classroom

Uprawnienie EDU_ANALYTICS_DATA_ACCESS jest wymagane do utworzenia roli niestandardowej, która może uzyskiwać dostęp do danych analitycznych, a uprawnienie serviceId musi mieć wartość 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ęć, musisz mieć uprawnienie ADMIN_OVERSIGHT_MANAGE_CLASSES, a uprawnienie serviceId musi mieć wartość 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ć listę privilegeIdsserviceIds, wywołaj metodę privileges.list.

Odpowiedź

Odpowiedź zawiera nową instancję 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 co najmniej 1 jednostki organizacyjnej, używając identyfikatora jednostki organizacyjnej. Aby pobrać orgUnitId, użyj interfejsu OrgUnit API.

Funkcje analityczne Classroom

Zalecamy wybranie jednostki organizacyjnej uczniów i jednostki organizacyjnej nauczycieli podczas przypisywania niestandardowej roli administratora do konkretnego użytkownika lub grupy. Dzięki temu użytkownicy z niestandardowymi uprawnieniami administratora będą mieli dostęp do danych na poziomie uczniów i zajęć w jednostkach organizacyjnych. Jeśli jednostka organizacyjna ucznia zostanie pominięta, wyznaczeni użytkownicy nie będą mieć 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 klasy.

Tymczasowy dostęp do zajęć

Możesz ograniczyć uprawnienia do tymczasowego dostępu do zajęć, 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, której przypisano niestandardową rolę administratora, będzie mieć dostęp tylko do zajęć, w przypadku których nauczyciel główny jest w tej jednostce organizacyjnej.

Przypisywanie niestandardowej roli administratora

Aby przypisać niestandardową rolę administratora do grupy, użyj tego żądania POST. Informacje o limitach przypisywania ról znajdziesz w wytycznych dotyczących ograniczeń związanych z rolami niestandardowymi i przypisywaniem ról.

Directory API roleAssignments.insert:

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

Przypisywanie do grupy lub poszczególnego użytkownika

Jeśli chcesz przypisać uprawnienia grupie, w treści żądania w polu assignedTo umieść groupId. Wartość groupId została uzyskana w kroku Tworzenie grup zabezpieczeń. Jeśli chcesz przypisać uprawnienia konkretnemu użytkownikowi, w treści żądania w polu assignedTo podaj jego identyfikator. Identyfikator użytkownika można pobrać, wywołując funkcję users.get i podając adres e-mail użytkownika jako parametr userKey lub wywołując funkcję users.list.

Konto, z którego wysłano żądanie POST, musi mieć ten zakres:

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

Treść żądania

Treść żądania zawiera szczegóły elementu RoleAssignment, który ma zostać utworzony. Musisz przesłać 1 prośbę 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 nową instancję elementu 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

Więcej informacji znajdziesz na tych stronach: