Administratorzy domen mają kilka sposobów na zarządzanie funkcjami i aplikacjami, do których mają dostęp użytkownicy w ich domenie. Na tej stronie opisujemy te funkcje, ich wpływ na integrację zewnętrzną lub przydatność w jej przypadku oraz odpowiednie żądania interfejsu API.
Zarządzanie dostępem do aplikacji innych firm dla użytkowników poniżej 18 roku życia
Administratorzy muszą skonfigurować aplikacje innych firm w konsoli administracyjnej Google dla użytkowników poniżej 18 roku życia. Jeśli administrator nie skonfiguruje aplikacji, użytkownicy poniżej 18 roku życia nie będą mogli uzyskać do niej dostępu za pomocą konta Google Workspace for Education.
Deweloperzy tworzący aplikacje dla użytkowników Google Workspace for Education poniżej 18 roku życia nie muszą podejmować żadnych działań. Konfigurowanie aplikacji innych firm jest możliwe tylko w interfejsie konsoli administracyjnej i nie można tego zrobić programowo.
Wyznaczanie niestandardowych ról administratora dla funkcji Classroom
Administratorzy mogą tworzyć niestandardowe role administratora w konsoli administracyjnej, aby umożliwić określonym osobom lub grupom korzystającym z Google Workspace for Education Standard lub Plus:
wyświetlanie funkcji analitycznych Classroom w celu uzyskania informacji o danych, takich jak wskaźniki ukończenia projektów, trendy w ocenach i wykorzystanie Classroom;
tymczasowy dostęp do zajęć w Classroom bez przypisywania stałego nauczyciela współprowadzącego.
Z tego przewodnika dowiesz się, jak skonfigurować te funkcje w swojej domenie za pomocą interfejsów API Google.
Automatyzacja procesu przypisywania ról niestandardowych
Z tego przewodnika dowiesz się, jak wykonać te czynności, aby zautomatyzować proces przypisywania ról niestandardowych:
- Utwórz grupy zabezpieczeń, aby uporządkować użytkowników, którzy mogą korzystać z tych funkcji.
- Dodaj członkó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
- 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.
- 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.
- Jeśli chcesz przyznać dostęp do roli niestandardowej grupie użytkowników, a nie pojedynczemu użytkownikowi, przeczytaj Omówienie interfejsu Groups API i 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ń 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łane jest to żądanie, wymaga jednego z tych zakresów:
https://www.googleapis.com/auth/cloud-identity.groupshttps://www.googleapis.com/auth/cloud-identityhttps://www.googleapis.com/auth/cloud-platform
Treść żądania
Treść żądania zawiera szczegóły grupy, która ma zostać utworzona. Wartość 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 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": ""
}
}
}
Dodawanie członków grupy
Po utworzeniu grupy musisz 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, 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 na przykład group1 jest członkiem group2, group2 nie może być członkiem group1.
Aby dodać członka do grupy, użyj tego żądania POST do
metody members.insert interfejsu Directory API:
POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members
Parametr ścieżki groupKey to adres e-mail nowej grupy 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.grouphttps://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 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"
}
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ć Twój klient.
Tworzenie uprzywilejowanej 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 tworzyć role niestandardowe z uprawnieniami, które pozwalają dokładniej ograniczyć dostęp administratora niż w przypadku ról wbudowanych w Google Workspace. Role możesz przypisywać użytkownikom lub grupom zabezpieczeń. Więcej informacji o ograniczeniach dotyczących 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 do
metody roles.insert interfejsu Directory API:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roles
Wartość customerId jest taka sama jak 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, musisz mieć uprawnienia 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ęć, musisz mieć uprawnienia 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ć listę privilegeIds i
serviceIds, 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
Dostęp do 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
Zaleca się wybranie jednostki organizacyjnej ucznia i jednostki organizacyjnej nauczyciela podczas przypisywania niestandardowej roli administratora do konkretnego użytkownika lub grupy. 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 rolą niestandardową 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. Limity przypisywania ról znajdziesz w artykule Ograniczenia dotyczące ról niestandardowych i przypisywania ról dla limitów przypisywania ról.
Interfejs 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 do grupy, w polu assignedTo w treści żądania podaj groupId. Wartość groupId została uzyskana w kroku Tworzenie grup zabezpieczeń. Jeśli przypisujesz uprawnienia do pojedynczego użytkownika, w polu assignedTo w treści żądania podaj identyfikator użytkownika. 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 nową instancję 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 artykułach:
- Omówienie interfejsu Directory API
- Uwierzytelnianie i autoryzacja w interfejsie Directory API
- Dokumentacja interfejsu Directory API REST
- Pomoc dla deweloperów korzystających z interfejsu Admin SDK API