デバイスの登録とプロビジョニング

プロビジョニングは、enterprisepolicies を使用して管理するデバイスをセットアップするプロセスです。このプロセスで、デバイスに Android Device Policy がインストールされます。これは、policies の受信と適用に使用されます。プロビジョニングが成功すると、API は devices オブジェクトを作成し、デバイスを企業にバインドします。

Android Management API は、登録トークンを使用してプロビジョニング プロセスをトリガーします。使用する登録トークンとプロビジョニング方法によって、デバイスの所有権(個人所有または会社所有)と管理モード(仕事用プロファイルまたは完全管理対象デバイス)が決まります。

個人所有のデバイス

Android 5.1 以降

社員が所有するデバイスには、仕事用プロファイルを設定できます。仕事用プロファイルは、仕事用のアプリとデータを個人用のアプリやデータとは別に、独立したスペースに格納します。アプリ、データ、その他の管理のほとんどはpolicies仕事用プロファイルにのみ適用され、従業員の個人用アプリとデータは非公開のままです。

個人所有のデバイスに仕事用プロファイルを設定するには、登録トークンを作成し(allowPersonalUsagePERSONAL_USAGE_ALLOWED に設定されていることを確認)、次のいずれかのプロビジョニング方法を使用します。

仕事とプライベートの両用に使用する会社所有デバイス

Android 8 以降

会社所有デバイスに仕事用プロファイルを設定すると、仕事とプライベートの両方でデバイスを使用できるようになります。仕事用プロファイルが設定された会社所有デバイスの場合:

  • アプリ、データ、その他の管理のほとんどの policies は、仕事用プロファイルにのみ適用されます。
  • 従業員の個人用プロファイルは非公開のままです。ただし、企業は特定のデバイス全体のポリシー個人使用ポリシーを適用できます。
  • 企業は blockScope を使用して、デバイス全体または仕事用プロファイルのみにコンプライアンス アクションを適用できます。
  • devices.deleteデバイス コマンドはデバイス全体に適用されます。

仕事用プロファイルが設定された会社所有デバイスをセットアップするには、登録トークンを作成し(allowPersonalUsagePERSONAL_USAGE_ALLOWED に設定されていることを確認)、次のいずれかのプロビジョニング方法を使用します。

仕事専用の会社所有デバイス

Android 5.1 以降

完全デバイス管理は、仕事専用の会社所有デバイスに適しています。企業は、デバイス上のすべてのアプリを管理し、Android Management API のポリシーとコマンドの全範囲を適用できます。

専用の目的やユースケースに応じて、デバイスを単一のアプリまたは少数のアプリセットにロックダウン(ポリシー経由)することもできます。完全管理対象デバイスのサブセットを専用デバイスと呼びます。これらのデバイスの登録トークンでは、allowPersonalUsagePERSONAL_USAGE_DISALLOWED_USERLESS に設定する必要があります。

会社所有デバイスで完全管理を設定するには、登録トークンを作成し、allowPersonalUsagePERSONAL_USAGE_DISALLOWED または PERSONAL_USAGE_DISALLOWED_USERLESS に設定されていることを確認してから、次のいずれかのプロビジョニング方法を使用します。

ポリシーは、デバイスのプロビジョニング中の UI の生成に影響する可能性があります。該当するポリシーは次のとおりです。

デバイスのプロビジョニング中に、仕事用アプリのインストールやデバイス登録カードの横にパスワードの手順を表示する場合は、デバイスを検疫状態に保ち、UI の生成を遅らせるようにポリシーを更新することをおすすめします。検疫状態は、関連するポリシーなしで登録した場合に発生します。デバイスのセットアップに最終的に選択したポリシーを指定すると、セットアップのニーズに関連する項目が入力されます。デバイスのプロビジョニングが完了したら、必要に応じてポリシーを変更できます。


登録トークンを作成する

Android 管理の概要。
図 1. 「policy1」をデバイスに登録して適用するトークンを作成します。1,800 秒(30 分)経過すると、トークンは期限切れになります。

登録するデバイスごとに登録トークンが必要です(複数のデバイスに同じトークンを使用できます)。登録トークンをリクエストするには、enterprises.enrollmentTokens.create を呼び出します。登録トークンはデフォルトで 1 時間後に期限切れになりますが、最大 10,000 年までのカスタム有効期限duration)を指定できます。

リクエストが成功すると、IT 管理者とエンドユーザーがデバイスのプロビジョニングに使用できる enrollmentTokenIdqrcode を含む enrollmentToken オブジェクトが返されます。

ポリシーを指定する

リクエストで policyName を指定して、デバイスの登録時にポリシーを適用することもできます。policyName を指定しない場合、ポリシーなしでデバイスを登録するをご覧ください。

個人での使用を指定

allowPersonalUsage は、プロビジョニング中に仕事用プロファイルをデバイスに追加できるかどうかを決定します。ユーザーが仕事用プロファイルを作成できるようにするには、PERSONAL_USAGE_ALLOWED に設定します(個人所有デバイスの場合は必須、会社所有デバイスの場合は省略可)。


QR コードについて

QR コードは、さまざまなポリシーを維持している企業にとって、効率的なデバイス プロビジョニング方法として機能します。enterprises.enrollmentTokens.create から返される QR コードは、登録トークンと、Android Device Policy がデバイスをプロビジョニングするために必要なすべての情報を含む Key-Value ペアのペイロードで構成されています。

QR コード バンドルの例

このバンドルには、Android Device Policy のダウンロード ロケーションと登録トークンが含まれています。

{
    "android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME": "com.google.android.apps.work.clouddpc/.receivers.CloudDeviceAdminReceiver",
    "android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM": "I5YvS0O5hXY46mb01BlRjq4oJJGs2kuUcHvVkAPEXlg",
    "android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION": "https://play.google.com/managed/downloadManagingApp?identifier=setup",
    "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE":{
        "com.google.android.apps.work.clouddpc.EXTRA_ENROLLMENT_TOKEN": "{enrollment-token}"
    }
}

enterprises.enrollmentTokens.create から返された QR コードを直接使用することも、カスタマイズすることもできます。QR コード バンドルに含めることができるプロパティの一覧については、QR コードを作成するをご覧ください。

qrcode 文字列をスキャン可能な QR コードに変換するには、ZXing などの QR コード生成ツールを使用します。


プロビジョニング方法

このセクションでは、デバイスをプロビジョニングするさまざまな方法について説明します。

[設定] から仕事用プロファイルを追加する

Android 5.1 以降

デバイスで仕事用プロファイルを設定するには、次の方法があります。

  1. [設定] > [Google] > [設定と復元] に移動します。
  2. [仕事用プロファイルを設定] をタップします。

これらの手順により、デバイスに Android Device Policy をダウンロードする設定ウィザードが開始されます。次に、QR コードをスキャンするか、登録トークンを手動で入力して、仕事用プロファイルの設定を完了するよう求められます。

Android Device Policy をダウンロードする

Android 5.1 以降

デバイスに仕事用プロファイルを設定するには、Google Play ストアから Android Device Policy をダウンロードします。アプリがインストールされると、QR コードをスキャンするか、登録トークンを手動で入力して仕事用プロファイルの設定を完了するよう求められます。

Android 5.1 以降

enrollmentTokens.create から返された登録トークンまたはエンタープライズの signinEnrollmentToken を使用して、次の形式の URL を生成します。

https://enterprise.google.com/android/enroll?et=<enrollmentToken>

この URL を IT 管理者に提供すると、IT 管理者はエンドユーザーに提供できます。エンドユーザーがデバイスからリンクを開くと、仕事用プロファイルの設定がガイド付きで開始されます。

ログイン URL

この方法では、プロビジョニングの完了に必要な追加情報を入力するページが表示されます。ユーザーが入力した情報に基づいて、デバイスのプロビジョニングに進む前に、ユーザーに適したポリシーを計算できます。次に例を示します。

  1. enterprises.signInDetails[] にログイン URL を指定します。ユーザーが仕事用プロファイルを作成できるようにするには、allowPersonalUsagePERSONAL_USAGE_ALLOWED に設定します(個人所有デバイスの場合は必須、会社所有デバイスの場合は省略可)。

    生成された signinEnrollmentToken を、QR コードNFC ペイロードゼロタッチ構成にプロビジョニングの追加として追加します。また、signinEnrollmentToken をユーザーに直接提供することもできます。

  2. 次のいずれかを選択します。

    1. 会社所有のデバイス: 新しいデバイスまたは出荷時の設定にリセットしたデバイスの電源を入れたら、(QR コード、NFC バンプなどを使用して)signinEnrollmentToken をデバイスに渡すか、トークンを手動で入力するようユーザーに依頼します。デバイスに、手順 1 で指定したログイン URL が開きます。
    2. 個人所有のデバイス: [設定] から仕事用プロファイルを追加するようユーザーに伝えます。プロンプトが表示されたら、signinEnrollmentToken を含む QR コードをスキャンするか、トークンを手動で入力します。デバイスで、ステップ 1 で指定したログイン URL が開きます。
    3. 個人所有のデバイス: 登録トークンのリンクをユーザーに提供します。登録トークンは signinEnrollmentToken です。デバイスで、ステップ 1 で指定したログイン URL が開きます。
  3. Google がユーザーをすでに認証しているかどうかを確認します。GET パラメータ provisioningInfo を使用してデバイスのプロビジョニング情報を取得し(デバイス登録中)、authenticatedUserEmail フィールドの値を確認します。このフィールドに値が設定されている場合、ユーザーはすでに Google によって正常に認証されており、追加の認証なしでこの ID を使用できます。

  4. Google がユーザーを認証していない場合は、ログイン URL でユーザーに認証情報を入力するよう求める必要があります。デバイスの ID に基づいて適切なポリシーを決定し、GET パラメータ provisioningInfo を使用して(デバイスの登録時に)デバイスのプロビジョニング情報を取得できます。

  5. ユーザーの認証情報に基づいて適切な policyId を指定して、enrollmentTokens.create を呼び出します。

  6. URL リダイレクトを使用して、手順 5 で生成した登録トークンを https://enterprise.google.com/android/enroll?et=<token> 形式で返します。

QR コード方式

Android 7.0 以降

会社所有デバイスをプロビジョニングするには、QR コードを生成して EMM コンソールに表示します。

  1. 新しいデバイスまたは出荷時設定にリセットしたデバイスで、ユーザー(通常は IT 管理者)が画面の同じ場所を 6 回タップします。QR コードのスキャンを求めるメッセージがデバイスに表示されます。
  2. ユーザーは、管理コンソール(または同様のアプリケーション)に表示された QR コードをスキャンして、デバイスを登録してプロビジョニングします。

NFC メソッド

Android 6.0 以降

この方法では、完全管理対象デバイスまたは専用デバイスのプロビジョニングにお客様が必要とする、登録トークン、初期ポリシー、Wi-Fi 構成、設定、その他のすべてのプロビジョニングの詳細を含む NFC プログラマ アプリを作成する必要があります。お客様またはお客様自身が Android デバイスに NFC プログラマ アプリをインストールすると、そのデバイスがプログラマ デバイスになります。

NFC メソッドをサポートする方法について詳しくは、Play EMM API デベロッパー ドキュメントをご覧ください。このサイトには、NFC バンプでデバイスにプッシュされるデフォルト パラメータのサンプルコードも含まれています。Android Device Policy をインストールするには、デバイス管理パッケージのダウンロード ロケーションを次のように設定します。

https://play.google.com/managed/downloadManagingApp?identifier=setup

DPC ID のメソッド

QR コードまたは NFC を使用して Android Device Policy を追加できない場合は、ユーザーまたは IT 管理者は次の手順に沿って会社所有のデバイスをプロビジョニングできます。

  1. 新しいデバイスまたは出荷時設定にリセットしたデバイスでセットアップ ウィザードを行います。
  2. Wi-Fi のログイン情報を入力して、デバイスをインターネットに接続します。
  3. ログインを求めるメッセージが表示されたら、afw#setup と入力して Android Device Policy をダウンロードします。
  4. QR コードをスキャンするか、登録トークンを手動で入力してデバイスをプロビジョニングします。

ゼロタッチ登録

Android 8.0 以降(Google Pixel 7.1 以降)

正規のゼロタッチ販売パートナーから購入したデバイスは、ゼロタッチ登録の対象となります。ゼロタッチ登録は、初回起動時に自動的にプロビジョニングされるようにデバイスを事前設定する効率的な方法です。

組織は、ゼロタッチ登録ポータルまたは EMM コンソールを使用して、ゼロタッチ デバイスのプロビジョニングの詳細を含む設定を作成できます(ゼロタッチ Customer API をご覧ください)。ゼロタッチ デバイスは、初回起動時に設定が割り当てられているかどうかを確認します。割り当てられている場合は、Android Device Policy がダウンロードされ、割り当てられた設定で指定されたプロビジョニング エクストラを使用してデバイスのセットアップが完了します。

お客様がゼロタッチ登録ポータルを使用している場合は、作成する設定ごとに EMM DPC として Android Device Policy を選択する必要があります。ポータルの使用方法(構成の作成とデバイスへの割り当て方法など)について詳しくは、Android Enterprise ヘルプセンターをご覧ください。

お客様が EMM コンソールから直接設定と割り当てを行う場合は、ゼロタッチ Customer API と統合する必要があります。構成を作成するときに、dpcExtras フィールドにプロビジョニングの追加情報を指定します。次の JSON スニペットは、dpcExtras に含める内容の基本的な例を示しています。ここには、追加されたログイン トークンも含まれています。

{
   "android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME":"com.google.android.apps.work.clouddpc/.receivers.CloudDeviceAdminReceiver",
   "android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM":"I5YvS0O5hXY46mb01BlRjq4oJJGs2kuUcHvVkAPEXlg",
   "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE":{
      "com.google.android.apps.work.clouddpc.EXTRA_ENROLLMENT_TOKEN":"{Sign In URL token}"
   }
}

セットアップ中にアプリを起動する

setupaction
図 2. setupActions を使用して、セットアップ中にアプリを起動します。

policies では、デバイスまたは仕事用プロファイルの設定時に Android Device Policy が起動するアプリを 1 つ指定できます。たとえば、VPN アプリを起動して、ユーザーがセットアップ プロセスの一部として VPN 設定を構成できるようにします。アプリは RESULT_OK を返して完了を通知し、Android Device Policy がデバイスまたは仕事用プロファイルのプロビジョニングを完了できるようにする必要があります。セットアップ中にアプリを起動する手順は次のとおりです。

アプリの installTypeREQUIRED_FOR_SETUP であることを確認します。デバイスにアプリをインストールまたは起動できない場合、プロビジョニングは失敗します。

{
   "applications":[
      {
         "packageName":"com.my.vpnapp.",
         "installType":"REQUIRED_FOR_SETUP"
      }
   ]
}

アプリのパッケージ名を setupActions に追加します。titledescription を使用して、ユーザー向けの手順を指定します。

{
   "setupActions":[
      {
         "title":{
            "defaultMessage":"Configure VPN"
         },
         "description":{
            "defaultMessage":"Enable your VPN client to access corporate resources."
         },
         "launchApp":{
            "packageName":"com.my.vpnapp."
         }
      }
   ]
}

アプリが launchApp から起動されたことを区別するため、アプリの一部として最初に起動されるアクティビティには、ブール値インテント エクストラ com.google.android.apps.work.clouddpc.EXTRA_LAUNCHED_AS_SETUP_ACTIONtrue に設定)が含まれています。このエクストラを使用すると、アプリが setupActions から起動されたのか、ユーザーによって起動されたのかに基づいてアプリをカスタマイズできます。

アプリが RESULT_OK を返すと、Android Device Policy はデバイスまたは仕事用プロファイルのプロビジョニングに必要な残りの手順を完了します。

セットアップ中に登録をキャンセルする

SetupAction として起動されたアプリは、RESULT_FIRST_USER を返して登録をキャンセルできます。

登録をキャンセルすると、会社所有のデバイスがリセットされるか、個人所有のデバイスの仕事用プロファイルが削除されます。

: 登録をキャンセルすると、ユーザー確認ダイアログが表示されずにアクションがトリガーされます。RESULT_FIRST_USER を返す前に、適切なエラー ダイアログをユーザーに表示するのはアプリの責任です。

新しく登録されたデバイスにポリシーを適用する

新しく登録されたデバイスにポリシーを適用する方法は、お客様の要件に応じて選択できます。使用できるアプローチは次のとおりです。

  • (推奨)登録トークンを作成するときに、デバイスに最初にリンクされるポリシーの名前(policyName)を指定できます。トークンを使用してデバイスを登録すると、ポリシーがデバイスに自動的に適用されます。

  • ポリシーを企業のデフォルト ポリシーとして設定します。登録トークンでポリシー名が指定されておらず、enterprises/<enterprise_id>/policies/default という名前のポリシーがある場合、新しいデバイスは登録時にデフォルト ポリシーに自動的にリンクされます。

  • Cloud Pub/Sub トピックにサブスクライブして、新しく登録されたデバイスに関する通知を受け取ります。ENROLLMENT 通知に応答して enterprises.devices.patch を呼び出し、デバイスをポリシーにリンクします。

ポリシーなしでデバイスを登録する

有効なポリシーなしでデバイスが登録されている場合、デバイスは検疫に置かれます。検疫対象のデバイスは、デバイスがポリシーにリンクされるまで、すべてのデバイス機能がブロックされます。

5 分以内にデバイスがポリシーにリンクされていない場合、デバイスの登録は失敗し、デバイスは出荷時の設定にリセットされます。デバイスの検疫ステータスを使用すると、ソリューションの一部としてライセンス チェックやその他の登録検証プロセスを実装できます。

ライセンス確認ワークフローの例

  1. デフォルト ポリシーまたは特定のポリシーなしでデバイスが登録されている。
  2. 企業に残っているライセンス数を確認します。
  3. 使用可能なライセンスがある場合は、devices.patch を使用してデバイスにポリシーを適用し、ライセンス数を減らします。使用可能なライセンスがない場合は、devices.patch を使用してデバイスを無効にします。また、登録から 5 分以内にポリシーに関連付けられていないデバイスは、API によって出荷時の設定にリセットされます。