管理者の操作

ドメイン管理者は、ドメイン内のユーザーがアクセスできる機能やアプリケーションを管理するためのいくつかの制御機能を利用できます。このページでは、これらの機能、外部統合に与える影響や有用性、関連する API リクエストについて説明します。

18 歳未満のユーザーによるサードパーティ製アプリへのアクセスを管理する

管理者は、18 歳未満のユーザー向けに Google 管理コンソールでサードパーティ製アプリを設定する必要があります。管理者がアプリを設定していない場合、18 歳未満のユーザーは Google Workspace for Education アカウントでそのアプリにアクセスできません。

18 歳未満の Google Workspace for Education ユーザー向けにアプリを開発しているデベロッパーは、特にご対応いただく必要はありません。サードパーティ製アプリの設定は、管理コンソールの UI で管理者のみが行うことができ、プログラムで行うことはできません。

Classroom の機能にカスタムの管理者ロールを指定する

管理者は、管理コンソールでカスタムの管理者ロールを作成し、Education Plus ライセンスを持つ特定のユーザーまたはグループに次の操作を許可できます。

このガイドでは、Google API を使用してドメインでこれらの機能を設定する方法について説明します。

カスタムロールの割り当てプロセスを自動化する

このガイドでは、次の手順を完了してカスタムロールの割り当てプロセスを自動化する方法について説明します。

  1. これらの機能にアクセスできるユーザーを整理するためのセキュリティ グループを作成します。
  2. グループにメンバーを追加します。
  3. 適切な権限を選択して、カスタムの管理者ロールを作成します。
  4. 組織部門 ID を取得します。
  5. 新しく作成したグループにカスタム管理者ロールを適用します。

前提条件

  1. クイックスタート ガイドを読んで、JavaScript、Python、Java などの言語で Google API を使用してアプリケーションを設定して実行する方法を理解します。
  2. このガイドで説明する Cloud Identity API を使用する前に、Cloud Identity を設定する必要があります。これらの API は、管理者権限を割り当てるグループを作成するために使用されます。
  3. 個々のユーザーではなくユーザーのグループにカスタムロール アクセス権を付与する場合は、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 分ほどかかることがあります。また、グループ メンバーシップが循環している場合にもエラーが返されます。たとえば、group1group2 のメンバーの場合、group2group1 のメンバーにすることはできません。

グループにメンバーを追加するには、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 の詳細が含まれます。このロールに付与する権限ごとに privilegeNameserviceId を追加します。

Classroom アナリティクス

分析データにアクセスできるカスタムロールを作成するには、EDU_ANALYTICS_DATA_ACCESS 権限と serviceId019c6y1840fzfkt に設定する必要があります。

{
  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 権限と 019c6y1840fzfkt に設定された serviceId が必要です。

{
  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 メソッドを呼び出して、privilegeIdsserviceIds のリストを取得します。

レスポンス

レスポンスには、ロールの新しいインスタンスが含まれます。

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>"
}

リソース

詳細については、以下をご覧ください。