Administratorzy mogą tworzyć niestandardowe role administratora w konsoli administracyjnej, aby umożliwić określonym osobom lub grupom z licencją Education Plus:
Wyświetl funkcje analityczne Classroom, aby poznać dane takie jak ukończenie projektów, trendy w ocenach i wykorzystanie Classroom.
tymczasowo korzystać z zajęć w Classroom, aby wspierać nauczycieli, publikować ogłoszenia itp., bez konieczności korzystania z roli nauczyciela współprowadzącego.
Z tego przewodnika dowiesz się, jak skonfigurować te funkcje w swojej domenie za pomocą interfejsów API Google.
Automatyzowanie procesu przypisywania ról niestandardowych
Aby zautomatyzować proces przypisywania ról niestandardowych:
- Utwórz grupy bezpieczeństwa, aby zorganizować użytkowników, którzy mają dostęp do tych funkcji.
- Dodaj użytkowników do grup.
- Utwórz niestandardową rolę administratora, wybierając odpowiednie uprawnienia.
- Pobierz identyfikatory jednostek organizacyjnych.
- Zastosuj niestandardową rolę administratora do nowo utworzonych grup.
Wymagania wstępne
- Aby dowiedzieć się, jak skonfigurować i uruchamiać aplikację korzystającą z interfejsów API Google w językach takich jak JavaScript, Python czy Java, przeczytaj krótkie przewodniki.
- Przeczytaj artykuł Omówienie interfejsu Groups API.
- 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 przypisuje się uprawnienia administratora.
- 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 w prośbie znajduje się pole labels
z etykietą zabezpieczeń. Więcej informacji o tworzeniu grup zabezpieczeń oraz ograniczeniach związanych z tym procesem znajdziesz w poradnikach dotyczących tworzenia grup zabezpieczeń.
POST https://cloudidentity.googleapis.com/v1/groups
Opcjonalnie możesz podać parametr 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 użytkownika innej grupy, może minąć do 10 minut, zanim członkostwo zostanie przeniesione. Ponadto 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ć użytkownika 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 jej unikalny identyfikator.
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 zbiorach.
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 przypadku wstępnie utworzonych 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 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
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 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 do ustawienia opcji 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ęć
Aby utworzyć rolę niestandardową, która może tymczasowo uzyskiwać dostęp do klas, musisz mieć uprawnienie ADMIN_OVERSIGHT_MANAGE_CLASSES
, a opcja serviceId
musi być ustawiona 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ę privilegeIds
i serviceIds
, 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 uprawnieniami administratora niestandardowego 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ą 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 z przypisaną rolą niestandardowego 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 artykule o ograniczeniach dotyczących niestandardowych ról 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
. 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 adres e-mail użytkownika jako parametr userKey
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ć jedną 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
Dodatkowe informacje znajdziesz tutaj:
- Omówienie interfejsu Directory API
- Uwierzytelnianie i autoryzacja w interfejsie Directory API
- Dokumentacja interfejsu Directory API REST
- Pomoc dla programistów dotycząca interfejsu API Admin SDK