Działania administratora

Administratorzy domen mają kilka opcji zarządzania funkcjami i aplikacjami, do których użytkownicy w ich domenie mogą uzyskać dostęp. Na tej stronie opisujemy te funkcje, wyjaśniamy, jak mogą one wpływać na integrację zewnętrzną lub być przydatne w jej przypadku, oraz przedstawiamy odpowiednie żądania interfejsu API.

Zarządzanie dostępem do aplikacji innych firm w przypadku użytkowników poniżej 18 roku życia

W przypadku użytkowników poniżej 18 roku życia administratorzy muszą skonfigurować aplikacje innych firm w konsoli administracyjnej Google. Jeśli administrator nie skonfiguruje aplikacji, użytkownicy poniżej 18 roku życia nie będą mogli uzyskać do niej dostępu na swoich kontach Google Workspace for Education.

Deweloperzy tworzący aplikacje dla użytkowników Google Workspace for Education, którzy nie ukończyli 18 roku życia, nie muszą nic robić. Konfigurowanie aplikacji innych firm może być wykonywane tylko przez administratorów w interfejsie konsoli administracyjnej i nie jest możliwe programowo.

Przypisywanie niestandardowych ról administratora do 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 API Google.

Automatyzowanie procesu przypisywania ról niestandardowych

W tym przewodniku znajdziesz instrukcje, jak wykonać te czynności, aby zautomatyzować proces przypisywania niestandardowych ról:

  1. Utwórz grupy zabezpieczeń, aby zorganizować użytkowników, którzy mogą korzystać z tych funkcji.
  2. Dodawanie użytkowników do grup.
  3. Utwórz niestandardową rolę administratora, wybierając odpowiednie uprawnienia.
  4. Pobieranie identyfikatorów jednostek organizacyjnych.
  5. Przypisz niestandardową rolę administratora do nowo utworzonych grup.

Wymagania wstępne

  1. Aby dowiedzieć się, jak skonfigurować i uruchomić aplikację korzystającą z interfejsów API Google w językach takich jak JavaScript, Python czy Java, przeczytaj krótkie przewodniki.
  2. Zanim zaczniesz używać interfejsów Cloud Identity API opisanych w tym przewodniku, musisz skonfigurować Cloud Identity. Te interfejsy API służą do tworzenia grup, do których przypisujesz uprawnienia administratora.
  3. Jeśli chcesz przyznać dostęp do niestandardowej roli grupie użytkowników, a nie pojedynczemu użytkownikowi, przeczytaj omówienie interfejsu Groups API i skonfiguruj ten interfejs API.

Tworzenie grup zabezpieczeń

Utwórz grupę zabezpieczeń za pomocą metody groups.create. Grupę można ustawić jako grupę zabezpieczeń, jeśli w prośbie znajduje się etykieta zabezpieczeń w polu labels. Więcej informacji i ograniczenia dotyczące tworzenia grup zabezpieczeń znajdziesz w instrukcji Tworzenie grup zabezpieczeń.

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

Opcjonalnie możesz użyć parametru zapytania InitialGroupConfig, aby zainicjować właściciela grupy:

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

Konto wysyłające to żądanie 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órą chcesz utworzyć. customerId musi zaczynać się od „C” (na przykład C046psxkn). Znajdowanie identyfikatora 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 dodaj 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, propagacja członkostwa może potrwać do 10 minut. Dodatkowo interfejs API zwraca błąd w przypadku cykli w przypadku członkostwa w grupie. 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 tego żądania POST do metody 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 wysyłające żą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 tworzonego elementu member.

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

Prośbę należy wysłać w przypadku każdego użytkownika, którego chcesz dodać jako członka. Aby zmniejszyć liczbę połączeń HTTP, które musi nawiązać klient, możesz wysyłać te żądania w grupach.

Tworzenie uprzywilejowanej niestandardowej roli administratora

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 utworzyć role niestandardowe z uprawnieniami, aby ograniczyć dostęp administratora w bardziej szczegółowy sposób niż w gotowych rolach dostępnych w Google Workspace. Role możesz przypisać użytkownikom lub grupom zabezpieczeń. Więcej informacji 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 do metody interfejsu Directory API roles.insert:

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

Wartość customerId jest taka sama jak 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 tworzonego elementu role. Dodaj uprawnienia privilegeName i serviceId dla każdego uprawnienia, które powinno być przyznane w ramach tej roli.

Statystyki Classroom

Uprawnienie EDU_ANALYTICS_DATA_ACCESS jest wymagane do utworzenia roli niestandardowej, która ma dostęp do danych Analytics, oraz ustawienia serviceId 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, która może tymczasowo uzyskiwać dostęp do klas, a także do ustawienia serviceId 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ć listę elementów privilegeIdsserviceIds, wywołaj metodę privileges.list.

Odpowiedź

Odpowiedź zawiera nową instancję roli.

Statystyki 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 do niestandardowej roli administratora w jednej lub większej liczbie jednostek organizacyjnych, korzystając z identyfikatora jednostki organizacyjnej. Aby pobrać orgUnitId, użyj interfejsu OrgUnit API.

Statystyki Classroom

Zalecamy, aby podczas przypisywania niestandardowej roli administratora konkretnemu użytkownikowi lub grupie wybrać jednostkę organizacyjną uczniów i nauczycieli. Dzięki temu użytkownicy z przyznanymi niestandardowymi uprawnieniami administratora będą mieli dostęp do danych na poziomie ucznia i poziomie zajęć w przypadku jednostek organizacyjnych. Jeśli jednostka organizacyjna ucznia zostanie pominięta, wyznaczeni użytkownicy nie będą mieć dostępu do danych ucznia. Jeśli jednostka organizacyjna nauczyciela zostanie pominięta, wyznaczeni użytkownicy nie będą mieć 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 rolą administratora niestandardowego dostęp do zajęć w określonych jednostkach organizacyjnych. Jeśli ograniczysz dostęp do jednostki organizacyjnej, grupa przypisana do roli administratora niestandardowego 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 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 uprawnienia grupie, w polu assignedTo w treści żądania podaj wartość groupId. Wartość groupId została uzyskana w kroku Tworzenie grup zabezpieczeń. Jeśli przypisujesz uprawnienia konkretnemu użytkownikowi, w polu assignedTo w ciele żądania podaj jego identyfikator. Identyfikator użytkownika można pobrać, wywołując funkcję users.get i podając jako parametr userKey adres e-mail użytkownika lub wywołując funkcję 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 tworzonego elementu RoleAssignment. Musisz przesł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 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

Dodatkowe informacje znajdziesz tutaj: