管理者は管理コンソールでカスタム管理者ロールを作成し、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>"
}
リソース
詳細については、以下をご覧ください。