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

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

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

割り当てシステムは、各プロジェクトで管理できるデバイスの数を制御します。最初のデバイスをプロビジョニングする前に、初期デバイスの割り当てをリクエストする必要があります。

個人所有のデバイス

Android 5.1 以降

従業員が所有するデバイスには、仕事用プロファイルを設定できます。仕事用プロファイルは、仕事用アプリやデータのための自己完結型のスペースを提供し、個人用アプリやデータとは分離します。ほとんどのアプリ、データ、その他の管理policiesは仕事用プロファイルにのみ適用され、従業員の個人用アプリとデータは非公開のままになります。

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

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

Android 8 以降

仕事用プロファイルが設定された会社所有デバイスは、仕事用と個人用の両方で使用できます。仕事用プロファイルが設定された会社所有デバイスの場合:

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

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

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

Android 5.1 以降

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

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

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

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

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


登録トークンを作成する

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

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

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

ポリシーを指定する

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

個人での使用を指定する

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

既存の登録トークンの免除

一部のお客様は、有効期限が長い登録トークンを使用して、繰り返し登録を行っています。これらの既存のワークフローが中断されないように、[Google を使用して認証する] 要件が初めて有効になる前に作成されたトークンは、新しいログイン プロンプトの対象外となります。これらの古いトークンは以前と同様に機能し、ユーザーは Google 認証プロセスを経ることなくデバイスを登録できます。

ただし、Google 認証要件が初めて有効になった後に作成されたトークンは、新しい認証ルールに従います。つまり、これらの新しいトークンを使用するデバイスでは、IT 管理者が選択した設定に従ってユーザーが認証を行う必要があります。ユーザーデータを保存しない専用デバイスの場合は、allowPersonalUsage が PERSONAL_USAGE_DISALLOWED_USERLESS に設定されていることを確認して、認証画面が表示されないようにします。

登録時に Google 認証を適用する

EMM は、登録トークンまたはログイン トークンに適切な値を設定することで、デバイスの登録時に Google アカウントへのログインを強制できます。この設定により、Google ログイン画面で [スキップ] ボタンを非表示にするかどうかを指定します。これらのオプションを設定すると、企業全体の googleAuthenticationSettings ポリシーがオーバーライドされます。

構成オプション

認証動作は、EnrollmentToken または SigninDetail 内の googleAuthenticationOptions オブジェクトを使用して制御できます。

フィールド 説明 値
authenticationRequirement 登録時にユーザーが Google で認証する必要があるかどうかを指定します。 AUTHENTICATION_REQUIREMENT_UNSPECIFIED: エンタープライズのデフォルト設定にフォールバックします。
省略可: Google ログイン画面が表示されますが、ユーザーはスキップできます。
REQUIRED: ユーザーはログインをスキップできません。[スキップ] ボタンが非表示になっている。
requiredAccountEmail ユーザーが使用する必要がある特定の管理対象 Google アカウントのメールアドレス。
注: このフィールドを使用する場合は、authenticationRequirement を REQUIRED に設定する必要があります。
文字列(例: "user@enterprise.com")

JSON ペイロードの例

スキップボタンを無効にする

[スキップ] ボタンを非表示にして、ユーザーに有効な企業アカウントでのログインを強制するには、認証要件を REQUIRED に設定します。

{
  ...
  "googleAuthenticationOptions": {
    "authenticationRequirement": "REQUIRED"
  }
}

特定のアカウントのメールアドレスを必須にする

ユーザーに指定されたアカウントでのログインを強制するには、requiredAccountEmail 文字列を定義します。要件フィールドが REQUIRED に設定されていない場合、トークン作成リクエストは INVALID_ARGUMENT エラーで失敗します。

{
...
  "googleAuthenticationOptions": {
    "authenticationRequirement": "REQUIRED",
    "requiredAccountEmail": "user@enterprise.com"
  }
}

QR コードについて

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

QR コード バンドルの例

バンドルには、Android デバイス ポリシーのダウンロード場所と登録トークンが含まれています。

{
    "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 を指定します。ユーザーが仕事用プロファイルを作成できるようにするには、allowPersonalUsage を PERSONAL_USAGE_ALLOWED に設定します(個人所有デバイスの場合は必須、会社所有デバイスの場合は任意)。

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

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

    1. 会社所有のデバイス: 新しいデバイスまたは出荷時の設定にリセットしたデバイスの電源を入れた後、signinEnrollmentToken をデバイスに渡すか(QR コード、NFC バンプなどを使用)、ユーザーにトークンを手動で入力するよう依頼します。デバイスで、ステップ 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. enrollmentTokens.create を呼び出し、ユーザーの認証情報に基づいて適切な policyId を指定します。

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

ログイン URL フローで Google 認証を適用する

サードパーティのログインフロー(enterprises.create または enterprises.patch 経由)で SigninDetail を使用する場合は、googleAuthenticationOptions を渡すことができます。これにより、ユーザーがサードパーティのログイン URL にリダイレクトされる前にルールが適用されます。

ログイン URL フローの最後に EnrollmentToken が作成されると、その認証要件が最初の SigninDetail と相互作用します。

  • SigninDetail で必須ではなかったためにユーザーが Google ログインをスキップしたが、結果の EnrollmentToken で要件が REQUIRED に設定されている場合、ユーザーにはエラーが表示され、ログインが必要になります。
  • トークンに requiredAccountEmail が設定されていて、ユーザーが企業に属する別のアドレスでログインした場合、「アカウントが間違っています」というエラーが表示され、必要な正しいメールアドレスで再度ログインする必要があります。

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 識別子方式

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

  1. 新しいデバイスまたは出荷時の設定にリセットしたデバイスで、設定ウィザードに沿って操作します。
  2. Wi-Fi のログイン情報を入力して、デバイスをインターネットに接続します。
  3. ログインを求められたら、「afw#setup」と入力します。これにより、Android デバイス ポリシーがダウンロードされます。
  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}"
   }
}

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

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

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

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

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

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

{
   "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_ACTION(true に設定)が含まれます。このエクストラを使用すると、アプリが 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 によって出荷時の設定にリセットされます。