エンタープライズ バインディングを作成する

EMM コンソールを使用して新しい組織を登録するには、エンタープライズ バインディングを作成する必要があります。Enterprises リソースは、EMM と組織との間のバインディングを表します。そのインスタンスを使用して、組織に代わってオペレーションを呼び出します。

Play EMM API では、次の 3 つの方法でエンタープライズ バインディング インスタンスを作成できます。

  • 管理対象の Google ドメインの登録 - この方法は、他のどちらの方法の代わりに使用できます。管理対象の Google ドメインがすでにあり、Google を初めて利用する組織でも、同じ登録 UI を使用します。UI を使用するプロセスは、ユーザーの状況やニーズによって異なります。組織は事前に EMM トークンを取得する必要はありません。

  • managed Google Play アカウントの登録 - 組織が managed Google Play アカウントの使用を検討しています。Google の Android 登録 UI を EMM コンソールと統合すると、EMM にバインドするエンタープライズ バインディング インスタンスをすばやく作成できます。これにより、ユーザーとデバイスで managed Google Play アカウントが有効になります。 このアプローチは、API ドキュメントでは「EMM 開始」と呼ばれることもあります。このメソッドは非推奨のため、前のマネージド Google ドメインの登録メソッドに置き換えられました。

  • 管理対象の Google ドメインの登録 - 組織に既存の管理対象の Google ドメインがある場合。IT 管理者は、Google でのドメイン所有権の確認、EMM トークンの取得、エンタープライズ サービス アカウントの作成など、いくつかの手動タスクを行います。このアプローチは、API ドキュメントでは「Google が開始」と呼ばれることもあります。

どちらの方法も EMM コンソールで Enterprises リソースを使用してサポートできます。表 1 に、組織を EMM にバインドする際にこのリソースの関連フィールドとオペレーションを示します。

表 1: Enterprises API と代替バインディング プロセス

 managed Google Play アカウント エンタープライズ管理対象の Google ドメイン説明
項目
id enroll 呼び出しと completeSignup 呼び出しから返される、組織の一意の識別子。
kind 固定文字列値 "androidenterprise#enterprise" を使用して、リソースのタイプを識別します。
name enterprise オブジェクトに関連付けられた組織。
primaryDomain未設定 managed Google Play アカウント エンタープライズは Google ドメインモデルに関連付けられないため、このフィールドは管理対象の Google ドメインにのみ関連します。
管理者 []未設定EMM の登録プロセスを使用して Android に登録した IT 管理者が、エンタープライズ バインディングの管理者(オーナー)になります。IT 管理者は managed Google Play Console を使用して、組織内の他のユーザーを管理タスクに招待できます。managed Google Play ヘルプセンターをご覧ください。
administrator[].email 未設定
Methods
completeSignup completionTokenenterpriseToken を指定すると、レスポンスの本文で Enterprises リソースを返します。
generateSignupUrl callbackUrl を指定すると、URL と completionToken を返します。
登録 リクエストでトークンが送信された EMM に呼び出し元を登録します。
getServiceAccount サービス アカウントと認証情報を返します。
setAccount エンタープライズとして API への認証に使用するアカウントを設定します。
unenroll EMM は、登録解除を使用して、どちらのタイプの企業に対するバインディングも切断できます。ESA の認証情報ではなく、MSA の EMMcreating 認証情報を使用して呼び出す必要があります。

managed Google Play アカウントの登録

この登録方法は非推奨です。代わりに、管理対象の Google ドメインの登録方法を使用してください。

管理対象の Google ドメインの登録

EMM コンソールに登録プロセスを統合できます。

managed Google Play アカウント管理者の登録
図 1. 管理対象の Google ドメインの登録ワークフロー

IT 管理者がエンタープライズの作成プロセスを開始します。これを行うには、IT 管理者は次のことを行います。

  1. EMM コンソールにログインします。
  2. たとえば、[Android を構成する] をクリックまたは選択すると、Google がホストする登録 UI にリダイレクトされます。
  3. 登録用 UI に企業の詳細情報を提供します。
  4. EMM コンソールにリダイレクトされます。

これで、IT 管理者のメールアドレスが、管理対象の Google ドメインの管理者アカウントである Google アカウントにリンクされました。

ベスト プラクティス: Google セキュリティ ガイドラインに従って、管理者アカウントのセキュリティを維持します。

前提条件

IT 管理者向け

  • EMM コンソールにアクセスし、コンソールで適切な選択を行うために必要な権限(メニュー選択としての Android の管理など)。

  • 仕事用のメールアドレス。これは Gmail.com などの共有ドメインではなく 組織が所有するドメインの一部である必要があります

EMM コンソールの場合

管理対象の Google Doomain の登録フローを実装するには、EMM コンソールで次のことができる必要があります。

  • Play EMM API の呼び出しを呼び出すときは MSA 認証情報を使用します。MSA は、組織のエンタープライズ サービス アカウント(ESA)が設定されるまで、IT 管理者に代わって多くのオペレーションを呼び出すために使用されます。

  • 安全な URL 経由で Google が提供する外部サイトへのリダイレクトを処理して、登録フローを開始し、登録プロセスを完了します。

  • 登録後に ESA 認証情報を構成できる。EMM コンソールを使用すると、任意の組織のサイト内に多くの企業を作成できます。そのため、各 enterpriseId を独自のサービス アカウントと認証情報に関連付ける方法が必要です。Enterprises.getServiceAccount を呼び出し、Serviceaccountkeys API を使用して鍵の管理を処理し、組織のサービス アカウントを作成します。詳細については、プログラムでエンタープライズ サービス アカウントを作成するをご覧ください。

Android の登録プロセスでは、実行時にコンソールで使用できるように、安全な(https)サービスを提供する必要があります。この安全なサービスへの URL はローカル URL でもかまいません。システムが解析できるように正しい形式であれば、セッションなどの一意の識別情報を含めることができます。次に例を示します。

https://localhost:8080/enrollmentcomplete?session=12345

登録手順

登録プロセスは 5 分以内に完了します。以下の手順は、callbackUrl をホストしているサーバーが稼働していることを前提としています。また、これらの手順では、認証された IT 管理者がオプションを選択したときに登録プロセスを開始する UI コンポーネント(オプションとして [Android を管理] を選択できるメニュー選択など)がコンソールに含まれていることを前提としています。

managed Google Play アカウント エンタープライズを登録するための 12 ステップのプロセス
図 2. 管理対象の Google ドメインへのバインディングを作成する 12 ステップのプロセス
  1. IT 管理者が EMM コンソールで登録リクエストを開始します。

  2. Enterprises.generateSignupUrl を呼び出します。その際、callbackURL を唯一のパラメータとして使用します。例:

    https://localhost:8080/enrollcomplete?session=12345

  3. レスポンスには、登録 URL(30 分間有効)と完了トークンが含まれます。完了トークンを抽出して保存します。

    ベスト プラクティス: 登録を開始した IT 管理者に完了トークンを関連付けます。

  4. generateSignupURL レスポンスから url を抽出します。

  5. ステップ 4 で抽出した URL にリダイレクトします。

  6. IT 管理者は、登録 UI の設定フローに沿ってエンタープライズ バインディングを作成します。

    1. IT 管理者は、自分自身と組織の詳細を入力し、Google アカウントを持っていない場合はパスワードを設定します。

    2. IT 管理者に EMM 名が表示され、組織がこの EMM にバインドされることが確認されます。

    3. IT 管理者が Google 利用規約に同意している。

  7. 登録 UI で、手順 2 で指定した URL に基づいてコールバック URL が生成されます。

  8. 登録 UI で、IT 管理者はコールバック URL にリダイレクトされます。エンタープライズ トークンを抽出して URL に保存します。例:

    https://localhost:8080/enrollcomplete?session=12345&enterpriseToken=5h3jCC903lop1

  9. Enterprises.completeSignup を呼び出して、completionToken(ステップ 3)と enterpriseToken(ステップ 8)を渡します。

  10. この呼び出しは、レスポンスの本文で Enterprises インスタンスを返します。後で使用できるように、idname、管理者のメールアドレス(存在する場合)を保存します。

  11. エンタープライズ サービス アカウント(ESA)を作成します。ESA の認証情報は、メールアドレスと秘密鍵の形式になります。ESA を作成するには 2 つの方法があります。

    • おすすめの方法: Play EMM API を使用して、プログラムで ESA を作成します。
    • Google API Console で ESA を作成するよう IT 管理者に指示するページを表示します。詳細については、サービス アカウントの作成をご覧ください(管理者にロールとして [プロジェクト] > [編集者] を選択し、秘密鍵のダウンロード チェックボックスをオンにするよう指示してください)。IT 管理者が ESA を作成したら、ESA の秘密鍵認証情報を使用してコンソールを構成します。
  12. MSA 認証情報を使用して setAccount を呼び出して、この組織の ESA を設定します。

登録プロセスが完了しました

  • 新しい管理対象の Google ドメインが EMM にバインドされます。
  • IT 管理者の Google アカウントはドメインの管理者として構成されており、https://play.google.com/work にアクセスして組織のアプリを管理できます。
  • EMM コンソールを使用すると、ESA を使用して Google Play EMM API を通じて組織のデータを管理できます。

プログラムで ESA を作成する

ESA の鍵管理を簡素化するには、Google Cloud コンソールではなく、Google Play EMM API を使用して組織のサービス アカウントを生成します。Play EMM API で生成されたサービス アカウント:

  • ユーザーまたは組織の Cloud コンソール プロジェクトには表示されません。プログラムで管理する必要があります。
  • 組織の登録を解除すると、削除されます。

サービス アカウントをプログラムで生成するには:

  1. enterpriseId を使用して Enterprises.getServiceAccount を呼び出し(登録プロセスのステップ 10 を参照)、必要なキーのタイプ(keyType)を指定します(googleCredentials、pkcs12)。システムからサービス アカウント名とサービス アカウントの秘密鍵が返されます(Google API Console から返される形式と同じ形式)。

  2. Enterprises.setAccount を呼び出し、組織のサービス アカウントを設定します。

ベスト プラクティス: IT 管理者による ESA 認証情報の変更をサポートします。EMM コンソールでこれを行うには、既存の ESA を使用して setAccount を呼び出します。

サービス アカウント キーを管理する

Enterprises.getServiceAccount から返されるサービス アカウントは、Google によって透過的に作成されます。EMM には、これらのアカウントへのアクセス権はありません。ただし、Serviceaccountkeys API をコンソールに統合すると、組織でプログラムで生成された独自の ESA と鍵を管理できるようになります。

Serviceaccountkeys API を使用すると、組織はサービス アカウントの有効な認証情報を挿入、削除、一覧表示できます。これらの API は、組織に対して設定され、ESA が getServiceAccount から生成されている ESA として承認されている間に呼び出す必要があります。つまり、組織が(Enterprises.getServiceAccount で生成されたサービス アカウントを使用して)Enterprises.setAccount を呼び出した後は、その組織にのみ、Serviceaccountkeys API 呼び出しを呼び出し、アカウントを管理できるようになります。

表 2. Serviceaccountkeys API

フィールド
idサーバーによって割り当てられた ServiceAccountKey の不透明な一意の文字列識別子。
kind固定文字列 androidenterprise#serviceAccountKey を使用してリソースを識別します。
種類生成された鍵データのファイル形式。使用できる値:
  • googleCredentials
  • pkcs12
dataプライベート認証情報ファイルの本文を含む文字列。作成時に入力されます。Google によって保存されることはありません。
Methods
deleteサービス アカウントに指定した認証情報(enterpriseIdkeyId で指定)を削除して無効にします。
挿入企業に関連付けられたサービス アカウントの新しい認証情報を生成します。
list企業に関連付けられているサービス アカウントのアクティブな認証情報をすべて一覧表示します。ID とキータイプのみを返します。

通知

プログラムで生成された ESA から通知を取得するには、Enterprises.pullNotificationSet を呼び出します。詳しくは、EMM 通知を設定するをご覧ください。

管理対象の Google ドメインの登録

管理対象の Google ドメインに属するデバイスを管理するには、EMM コンソール、組織、Google 間の接続(バインディング)を確立する必要があります。

前提条件

組織には、マネージド Google ドメイン、EMM 登録トークン、エンタープライズ サービス アカウント(ESA)が必要です。IT 管理者向けの詳細情報については、Android Enterprise ヘルプセンターをご覧ください。

管理対象の Google ドメイン

組織の IT 管理者が Google Workspace のお申し込み時に管理対象ドメインを申請した場合は、Google 管理コンソールから Android の管理を有効にできます。組織に管理対象の Google ドメインがない場合、IT 管理者は Google への 1 回限りのウェブ登録プロセスを完了する必要があります。

EMM トークン

IT 管理者は Google 管理コンソール([デバイス] > [モバイルとエンドポイント] > [設定] > [サードパーティとの統合])から EMM トークンを取得できます。

スペイン語圏

組織の IT 管理者は、通常は Google Cloud コンソールを使用して、EMM コンソールに関連付けられたプロジェクトで ESA を作成できます。ESA には、名前、ID、アカウントを認証するキー(ユーザーに代わって実行されるアクション)があります。ID はメールアドレスに似た形式で、@ 記号の前にサービス アカウントの名前、プロジェクト名の後に Google サービスの情報(some-orgs-esa@myemmconsole313302.iam.gserviceaccount.com など)が付きます。

登録手順

  1. IT 管理者は、Google 管理コンソールから EMM トークンを取得します。
  2. IT 管理者は EMM トークンを共有します。これにより、ドメインの Android を管理する権限が付与されます。
  3. EMM コンソールから、EMM トークンを使用して Enterprises.enroll を呼び出します。これにより、組織の Android ソリューションが Google ドメインにバインドされます。
    • enroll メソッドは一意の enterpriseId を返します。これは、後で list メソッドを使用して取得できます(管理対象の Google ドメインのみ)。
    • 必要に応じて、バインディングに関する情報(enterpriseIdprimaryDomain)をデータストアに格納して、詳細を取得するための API 呼び出しを回避できます。Google アカウントのシナリオでは、組織の primaryDomain が EMM と Google が組織を識別する一意のキーです。
  4. Google Play EMM API を組織固有の呼び出しを行うには:
    • 組織に代わって ESA を作成するか、管理者が ESA を作成して共有します。
    • EMM コンソールから、enterpriseId と ESA のメールアドレスを使用して setAccount を呼び出します。これにより、ESA は企業として API に対して認証できるようになります。

次の例では、primaryDomainNameserviceAccountEmailauthenticationToken を使用して組織を登録します。

    public void bind(String primaryDomainName, String serviceAccountEmail,
        String authenticationToken) throws IOException {

      Enterprise enterprise = new Enterprise();
      enterprise.setPrimaryDomain(primaryDomainName);

      Enterprise result = androidEnterprise.enterprises()
          .enroll(authenticationToken, enterprise)
          .execute();

      EnterpriseAccount enterpriseAccount = new EnterpriseAccount();
      enterpriseAccount.setAccountEmail(serviceAccountEmail);
      androidEnterprise.enterprises()
          .setAccount(result.getId(), enterpriseAccount)
          .execute();
    }

この例では、Java 用のクライアント ライブラリと、com.google.api.services.androidenterprise.model パッケージの AndroidEnterprise サービスクラスを使用します。このサンプルで示す手順は、次の手順にまとめることができます。

  1. bind が提供するパラメータ(プライマリ ドメイン名、サービス アカウントのメールアドレス、EMM 登録トークンを含むモデルクラス)を使用して、新しい AndroidEnterprise オブジェクトを作成します。
  2. 新しく作成したエンタープライズ オブジェクトのプライマリ ドメイン名を指定します。
  3. 登録メソッドを呼び出して、エンタープライズ オブジェクトと登録トークンを指定します。
  4. お客様の ESA ID(serviceAccountEmail)を使用して、新しい EnterpriseAccount オブジェクトを作成します。
  5. enterpriseId(手順 3 で返された)フィールドと enterpriseAccount フィールドの両方を指定して、アカウントを設定します。

必要に応じて、バインディングに関する情報(enterpriseIdprimaryDomain)をデータストアに格納して、詳細を取得するための API 呼び出しを回避できます。Google アカウントのシナリオでは、組織の primaryDomain は EMM と Google が組織を識別する一意のキーです。

オンプレミスのデプロイメントを設定する

組織がデータをサイト上に残してアクセスできないようにする必要がある場合は、ESA の有効な認証情報セットがサーバーに表示されないようにする必要があります。そのために、一連の ESA 認証情報を生成してサイトに保存します。

  1. 登録フローを完了します。
    1. ステップ 11 に示すように、MSA を使用して getServiceAccount を呼び出します。これにより、ESA 認証情報が生成されます。
    2. 手順 12 に示すように、ESA の setAccount を使用して、この組織の ESA として設定します。
  2. ESA を組織のオンプレミス サーバーに渡します。
  3. オンプレミス サーバーで次の操作を行います。
    1. Serviceaccountkeys.insert を呼び出して、ESA の新しい鍵を作成します。この秘密鍵は Google サーバーには保存されず、アカウントの作成時に 1 回だけ返されます。他の方法ではアクセスできません。
    2. 新しい ESA 認証情報を使用して Serviceaccountkeys.list を呼び出します。これにより、アクティブなサービス アカウントの認証情報が返されます。
    3. Serviceaccountkeys.delete を呼び出して、オンプレミスで作成した ESA 認証情報を除くすべての認証情報を削除します。
    4. (省略可)Serviceaccountkeys.list を呼び出して、現在オンプレミスで使用されている認証情報が、サービス アカウントで唯一の有効な認証情報であることを確認します。

これで、オンプレミス サーバーが ESA 認証情報を持つ唯一のサーバーになります。getServiceAccount で生成された ESA のみが ServiceAccountKeys にアクセスできます。MSA でこれを呼び出すことはできません。

ベスト プラクティス: マスター サービス アカウント(MSA)の認証情報をオンプレミスに保存しないでください。オンプレミス デプロイごとに個別の ESA を使用する。

エンタープライズ バインディングの登録解除、再登録、削除

Unenroll

EMM ソリューションから組織をバインド解除するには、unenroll を使用します。登録を解除しても企業バインディングは削除されませんが、EMM が管理するユーザーと関連するすべてのユーザーデータは 30 日後に削除されます。実装例を次に示します。

    public void unbind(String enterpriseId) throws IOException {
      androidEnterprise.enterprises().unenroll(enterpriseId).execute();
    }

ベスト プラクティス: 組織名とエンタープライズ バインディング ID のマッピング用のデータストアがある場合は、unenroll を呼び出した後にデータストアから情報を削除します。

再登録

IT 管理者は既存の enterpriseId を使用して企業を再登録できます。これを行うには、オーナーレベルのアカウントでログインし、登録プロセスを行います。

再登録のフローは、ユーザーにとっては透過的です。リダイレクト URL(ステップ 8)で返されたエンタープライズ トークンが新しい組織によるものか、以前に別の EMM を使用して登録された組織のものかを判断する方法はありません。

組織が EMM ソリューションに以前登録されている場合は、エンタープライズ バインディング ID を認識できることがあります。登録を解除してから 30 日以内に IT 管理者が組織を再登録すると、EMM が管理するユーザーと関連するユーザーデータを復元できます。すでに別の EMM に登録されている組織の場合、その EMM によって作成された EMM 管理対象ユーザーのユーザー ID にはアクセスできません。これは、これらのユーザー ID が EMM 固有であるためです。

削除

IT 管理者は managed Google Play から組織を削除できます。管理者、エンドユーザー、ユーザーは、24 時間以内に組織のデータ、アカウント、ライセンスの割り当てなどのリソースにアクセスできなくなります。そのため、API 呼び出しは enterpriseId パラメータに対して HTTP 404 Not Found レスポンス ステータス コードを返します。EMM コンソールでこのエラーを処理するには、組織との関連付けを削除する前に、IT 管理者に確認を求めます。