管理者は、管理コンソールでカスタムの管理者ロールを作成することで、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 分の遅延が発生する可能性があります。さらに、API はグループ メンバーシップのサイクルについてエラーを返します。たとえば、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 分析
分析データにアクセスするカスタムロールを作成するには、serviceId
を 019c6y1840fzfkt
に設定し、EDU_ANALYTICS_DATA_ACCESS
権限が必要です。
{
roleName: "Education Admin", // customize as needed
roleDescription: "Access to view analytics data", // customize as needed
rolePrivileges: [
{
privilegeName: "EDU_ANALYTICS_DATA_ACCESS",
serviceId: "019c6y1840fzfkt"
}
]
}
一時的なクラスアクセス
serviceId
を 019c6y1840fzfkt
に設定し、クラスに一時的にアクセスできるカスタムロールを作成するには、ADMIN_OVERSIGHT_MANAGE_CLASSES
権限が必要です。
{
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>"
}
関連情報
詳細については、次のリンクをご覧ください。