ドメイン管理者は、ドメイン内のユーザーがアクセスできる機能とアプリケーションを管理するためのいくつかのコントロールを備えています。このページでは、これらの機能、外部統合への影響や有用性、関連する API リクエストについて説明します。
18 歳未満のユーザーによるサードパーティ製アプリへのアクセスを管理する
管理者は、18 歳未満のユーザーに対して Google 管理コンソールでサードパーティ製アプリを設定する必要があります。管理者がアプリを構成していない場合、18 歳未満のユーザーは Google Workspace for Education アカウントでそのアプリにアクセスできません。
18 歳未満の Google Workspace for Education ユーザー向けのアプリを開発するデベロッパーは、特にご対応いただく必要はありません。サードパーティ製アプリの設定は、管理コンソールの UI で管理者のみが行えます。プログラムで行うことはできません。
Classroom 機能のカスタム管理者ロールを指定
管理者は管理コンソールでカスタムの管理者ロールを作成して、Education Plus ライセンスを持つ特定の個人またはグループに次の権限を付与できます。
Classroom アナリティクスを表示して、課題の完了、成績の傾向、Classroom の使用状況などのデータを理解する。
常任の副担任を割り当てなくても、Classroom のクラスに一時的にアクセスできます。
このガイドでは、Google API を使用してドメインでこれらの機能を設定する方法について説明します。
カスタムロールの割り当てプロセスを自動化する
このガイドでは、次の手順でカスタムロールの割り当てプロセスを自動化する方法について説明します。
- セキュリティ グループを作成して、これらの機能にアクセスできるユーザーを整理します。
- グループにメンバーを追加します。
- 適切な権限を選択して、カスタムの管理者ロールを作成します。
- 組織部門 ID を取得します。
- 新しく作成したグループにカスタムの管理者ロールを適用します。
前提条件
- クイックスタート ガイドを読み、JavaScript、Python、Java などの言語で Google API を使用してアプリケーションを設定して実行する方法を理解する。
- このガイドで説明する Cloud Identity API を使用する前に、Cloud Identity を設定する必要があります。これらの API は、管理者権限を割り当てるグループを作成するために使用されます。
- 個々のユーザーではなく、ユーザーのグループにカスタムロールのアクセス権を付与する場合は、Groups 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
のメンバーにすることはできません。
グループにメンバーを追加するには、Directory API の members.insert
メソッドに対して次の POST リクエストを使用します。
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 に用意されている組み込みロールよりも具体的に管理者アクセスを制限する権限を持つカスタムロールを作成できます。ロールはユーザーまたはセキュリティ グループに割り当てることができます。ロールの作成の制限事項の詳細については、カスタムロールとロールの割り当ての制限事項をご覧ください。
新しいロールを作成するには、Directory API の roles.insert
メソッドに対して次の POST リクエストを使用します。
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>"
}
リソース
詳細については、以下をご覧ください。