管理者の操作

ドメイン管理者は、ドメイン内のユーザーがアクセスできる機能とアプリケーションを管理するためのいくつかのコントロールを備えています。このページでは、これらの機能、外部統合への影響や有用性、関連する 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 権限と、serviceId019c6y1840fzfkt に設定されている必要があります。

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

リソース

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