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

プロビジョニングとは、enterprise によって policies を介して管理されるデバイスを設定するプロセスです。この処理中に、デバイスは 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 に設定されていることを確認します)、次のいずれかのプロビジョニング方法を使用します。

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

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


登録トークンを作成する

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

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

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

ポリシーを指定する

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

ユーザーを指定する

enrollmentTokens リソースには userAccountIdentifier フィールドが含まれています。userAccountIdentifier を指定しない場合、デバイスが登録トークンで登録されるたびに、API が新しい一意のアカウントを暗黙的に作成します。

指定した userAccountIdentifier がデバイスで有効になっていない場合、デバイスが登録トークンに登録されると、API はその識別子のアカウントを自動的に作成します。

以前に別のデバイスで有効にした userAccountIdentifier を指定すると、API は既存のユーザーを再利用し、登録トークンで登録されている各デバイスでそのユーザーを有効にします。おすすめの方法: 1 つのアカウントで 10 台を超えるデバイスを有効にすることは避けてください。

個人の使用を指定する

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 を参照)を使用して、次の形式の URL を生成します。

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

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

ログイン URL

この方法では、認証情報の入力を求める 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. ログイン URL では、ユーザーに認証情報の入力を求める必要があります。ID に基づいて、適切なポリシーを決定できます。

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

  5. 手順 4 で生成した登録トークンを、URL リダイレクトによって 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 プログラマー アプリを作成する必要があります。パートナー様またはお客様が NFC プログラマー アプリを Android デバイスにインストールすると、そのデバイスがプログラマー デバイスになります。

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 コンソール(ゼロタッチ カスタマー 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}"
   }
}

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

設定操作
図 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_CANCELED を返すことができます。

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

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

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

新しく登録されたデバイスにポリシーを適用する方法は、デベロッパーや顧客の要件によって異なります。ここでは、3 種類のアプローチを紹介します。

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

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

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

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

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

デバイスが 5 分以内にポリシーにリンクされなかった場合、デバイスの登録は失敗し、デバイスは出荷時の設定にリセットされます。隔離デバイスの状態を確認することで、ソリューションの一部としてライセンス チェックやその他の登録検証プロセスを実装できます。

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

  1. デフォルトのポリシーまたは特定のポリシーなしでデバイスが登録されている。
  2. エンタープライズの残りのライセンス数を確認します。
  3. 利用可能なライセンスがある場合は、devices.patch を使用してデバイスにポリシーを適用し、ライセンス数を減らします。使用可能なライセンスがない場合は、devices.patch を使用してデバイスを無効にします。また、ポリシーに接続されていないデバイスは、登録後 5 分以内に出荷時の設定にリセットされます。