管理者は、管理コンソールでカスタム管理者ロールを作成し、Education Plus ライセンスを持つ特定のユーザーまたはグループに次の操作を許可できます。
Classroom アナリティクスを表示すると、課題の完了状況、成績の傾向、Classroom の導入状況などのデータを把握できます。
Classroom のクラスに一時的にアクセスして、常任の副担任として割り当てられていなくても、教育者のサポートやお知らせの投稿などを行えます。
このガイドでは、Google API を使用してドメインでこれらの機能を設定する方法について説明します。
カスタムロールの割り当てプロセスを自動化する
カスタムロールの割り当てプロセスを自動化するには:
- これらの機能にアクセスできるユーザーを整理するためのセキュリティ グループを作成します。
- グループにメンバーを追加します。
- 適切な権限を選択して、カスタムの管理者ロールを作成します。
- 組織部門 ID を取得します。
- 新しく作成したグループにカスタム管理者ロールを適用します。
前提条件
- クイックスタート ガイドを読んで、JavaScript、Python、Java などの言語で Google API を使用してアプリケーションを設定して実行する方法を理解します。
- Groups API の概要を確認する。
- このガイドで説明する Cloud Identity API を使用する前に、Cloud Identity を設定する必要があります。これらの API は、管理者権限を割り当てるグループの作成に使用されます。
- Groups API を設定する。
セキュリティ グループを作成する
groups.create
メソッドを使用してセキュリティ グループを作成します。セキュリティ ラベルがリクエストの labels
フィールドに含まれている場合、グループをセキュリティ グループとして設定できます。セキュリティ グループの作成に関する詳細と制限事項については、セキュリティ グループの作成ガイドをご覧ください。
POST https://cloudidentity.googleapis.com/v1/groups
必要に応じて、InitialGroupConfig
クエリ パラメータを含めて、グループのオーナーを初期化できます。
POST https://cloudidentity.googleapis.com/v1/groups&initialGroupConfig={initialGroupConfig}
このリクエストを行うアカウントには、次のいずれかのスコープが必要です。
https://www.googleapis.com/auth/cloud-identity.groups
https://www.googleapis.com/auth/cloud-identity
https://www.googleapis.com/auth/cloud-platform
リクエストの本文
リクエストの本文には、作成されるグループの詳細が含まれます。customerId
は「C」で始まる必要があります(例: C046psxkn
)。顧客 ID を確認する。
{
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": ""
}
}
レスポンス
レスポンスには、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": ""
}
}
}
グループのメンバーの追加
グループを作成したら、次はメンバーを追加します。グループ メンバーには、ユーザーまたは別のセキュリティ グループを指定できます。グループを別のグループのメンバーとして追加する場合、メンバーシップが反映されるまでに 10 分ほどかかることがあります。また、グループ メンバーシップが循環している場合にもエラーが返されます。たとえば、group1
が group2
のメンバーの場合、group2
を group1
のメンバーにすることはできません。
グループにメンバーを追加するには、次の POST リクエストを使用します。
Directory API members.insert
:
POST https://admin.googleapis.com/admin/directory/v1/groups/{groupKey}/members
groupKey
パスパラメータは、新しいメンバーのグループ メールアドレスまたはグループの一意の ID です。
POST リクエストを行うアカウントには、次のいずれかのスコープが必要です。
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
リクエストの本文
リクエストの本文には、作成される member
の詳細が含まれます。
{
email: "person_one@example.com",
role: "MEMBER", // can be `MEMBER`, `OWNER`, `MANAGER`
}
レスポンス
レスポンスには、メンバーの新しいインスタンスが含まれます。
{
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"
}
このリクエストは、メンバーとして追加するすべてのユーザーに対して行う必要があります。これらのリクエストをバッチ処理することで、クライアントが確立する必要がある HTTP 接続の数を減らすことができます。
特権カスタム管理者ロールを作成する
Directory API を使用すると、ロールベース アクセス制御(RBAC)を使用して、Google Workspace ドメイン内の機能へのアクセスを管理できます。Google Workspace に用意されている事前構築済みのロールよりも、管理者のアクセスをより具体的に制限する権限を持つカスタムロールを作成できます。ユーザーまたはセキュリティ グループにロールを割り当てることができます。ロールの作成に関する制限事項の詳細については、カスタムロールとロールの割り当ての制限事項をご覧ください。
新しいロールを作成するには、次の POST リクエストを使用します。
Directory API roles.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roles
customerId
は、このガイドのステップ 1 で使用したものと同じです。
POST リクエストを行うアカウントには、次のスコープが必要です。
https://www.googleapis.com/auth/admin.directory.rolemanagement
リクエストの本文
リクエストの本文には、作成される role
の詳細が含まれます。このロールに付与する権限ごとに privilegeName
と serviceId
を追加します。
Classroom アナリティクス
分析データにアクセスできるカスタムロールを作成するには、EDU_ANALYTICS_DATA_ACCESS
権限と serviceId
を 019c6y1840fzfkt
に設定する必要があります。
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to view analytics data", // customize as needed
rolePrivileges: [
{
privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
serviceId: "019c6y1840fzfkt"
}
]
}
一時的なクラス アクセス
クラスに一時的にアクセスできるカスタムロールを作成するには、ADMIN_OVERSIGHT_MANAGE_CLASSES
権限が必要です。また、serviceId
を 019c6y1840fzfkt
に設定する必要があります。
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to manage classes privilege", // customize as needed
rolePrivileges: [
{
privilegeName: "ADMIN_OVERSIGHT_MANAGE_CLASSES",
serviceId: "019c6y1840fzfkt"
}
]
}
privileges.list
メソッドを呼び出して、privilegeIds
と serviceIds
のリストを取得します。
レスポンス
レスポンスには、ロールの新しいインスタンスが含まれます。
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
}
一時的なクラス アクセス
{
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
}
組織部門 ID を取得する
組織部門 ID を使用して、カスタム管理者ロールのアクセスを 1 つ以上の組織部門に制限できます。OrgUnit API を使用して orgUnitId
を取得します。
Classroom アナリティクス
特定のユーザーまたはグループにカスタム管理者ロールを割り当てる場合は、生徒の組織部門と教師の組織部門の両方を選択することをおすすめします。これにより、カスタム管理者権限が割り当てられたユーザーは、組織部門の生徒とクラスレベルのデータにアクセスできるようになります。生徒の組織部門が省略されている場合、指定されたユーザーは生徒のデータにアクセスできません。教師の組織部門が省略されている場合、指定されたユーザーはクラスレベルのデータにアクセスできません。
一時的なクラス アクセス
一時的なクラスへのアクセス権限を制限するには、特定の組織部門のクラスにアクセスできるカスタム管理者ロールを持つユーザーを許可します。組織部門へのアクセスを制限する場合、カスタム管理者ロールが割り当てられたグループは、クラスの主担任がその組織部門に属するクラスにのみアクセスできます。
カスタムの管理者ロールを割り当てる
カスタム管理者ロールをグループに割り当てるには、次の POST リクエストを使用します。ロールの割り当て上限については、カスタムロールとロールの割り当てに関する制限事項をご覧ください。
Directory API roleAssignments.insert
:
POST https://admin.googleapis.com/admin/directory/v1/customer/{customer}/roleassignments
グループまたは個々のユーザーに割り当てる
グループに権限を割り当てる場合は、リクエスト本文の assignedTo
フィールドに groupId
を含めます。groupId
は、セキュリティ グループを作成するの手順で取得しました。個々のユーザーに権限を割り当てる場合は、リクエスト本文の assignedTo
フィールドにユーザー ID を含めます。ユーザーの ID は、users.get
を呼び出してユーザーのメールアドレスを userKey
パラメータとして指定するか、users.list
を呼び出すことで取得できます。
POST リクエストを行うアカウントには、次のスコープが必要です。
https://www.googleapis.com/auth/admin.directory.rolemanagement
リクエストの本文
リクエストの本文には、作成される RoleAssignment
の詳細が含まれます。このグループに関連付ける組織部門ごとに 1 つのリクエストを行う必要があります。
{
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
}
レスポンス
レスポンスには、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>"
}
リソース
詳細については、以下をご覧ください。