ID プロビジョニング(またはアカウント プロビジョニング)は、アカウントを設定し、3 つのシステム間の接続を確立するプロセスです。場合によっては、ユーザーとデバイス間の接続を設定することもあります。

Android エンタープライズ環境では、最大 3 つの異なるシステムがアカウント情報を保持しています。
- 組織のユーザー ディレクトリは、ユーザーに関する情報の信頼できるソースです。
- EMM ソリューション プロバイダは、組織のユーザーの最小限のディレクトリを維持する必要があります。
- Google は、managed Google Play アカウントと Google アカウントに関する一部の情報を保持し、Google Play を通じてアプリ管理を提供しています。
Users リソースは、企業に関連付けられたアカウントを表します。アカウントはデバイスに固有のものにすることも、複数のデバイス(スマートフォン、タブレットなど)を所有し、それらすべてでアカウントを使用する個人に関連付けることもできます。アカウントは、お客様の企業の設定方法に応じて、managed Google Play のみ、または他の Google サービスへのアクセスを提供できます。
managed Google Play アカウントを使用すると、企業はエンタープライズ モビリティ管理(EMM)ソリューション プロバイダを通じて、ユーザー アカウントまたはデバイス アカウントを自動的に作成できます。これらのアカウントは、managed Google Play へのアクセスのみを提供します。
Google アカウントは、Google が管理する既存のアカウントであり、Google アカウントのソースとの同期が必要です。
表 1: Users API のフィールドとメソッド
| managed Google Play アカウント | Google 管理アカウント | |
|---|---|---|
| フィールド | ||
| id | ||
| kind | ||
| accountIdentifier | 作成して Google Play から返された ID(userId)にマッピングする一意の識別子。個人を特定できる情報(PII)は使用しないでください。 | 未設定。 |
| accountType | deviceAccount、userAccount | userAccount |
| displayName | Google Play などの UI アイテムに表示する名前。個人を特定できる情報は使用しないでください。 | 未設定。 |
| managementType | emmManaged | googleManaged、emmManaged |
| primaryEmail | 未設定。 | このフィールドは、Google 管理ドメイン アカウントからシステム内のユーザー アカウントへの同期を管理するための主キーです。 |
| メソッド | ||
| delete | ||
| generateAuthenticationToken | ||
| generateToken | ||
| get | ||
| getAvailableProductSet | ||
| 挿入 | ||
| list | ||
| revokeToken | ||
| setAvailableProductSet | ||
| update | ||
managed Google Play アカウント
managed Google Play アカウントには次の 2 種類があります。
- ユーザー アカウント
- 1 人のユーザーがすべてのデバイスから managed Google Play にアクセスできるようにします。ユーザーのユーザー アカウントをプロビジョニングする必要があります。ユーザーは、managed Google Play アカウントを自分で追加するための認証情報を持っていません。
- ユーザー アカウントを作成するには、
Users.insertを呼び出します。アカウントの種類をuserTypeに設定し、企業内のユーザーを一意に参照するaccountIdentifierを設定します。 - 効果的な手法: 同じアカウントを使用するデバイスは 10 台までにしてください。
- デバイス アカウント
- 単一のデバイスから managed Google Play にアクセスできます。デバイス アカウントに認証トークンが発行されている場合、そのデバイス アカウントの認証トークンの新しいリクエストは、以前のトークンを無効にします。各デバイスが個別にアプリのライセンスを持つ必要があります。
- デバイス アカウントを作成するには、
Users.insertを呼び出し、アカウントの種類をdeviceTypeに設定します。

ユーザーまたはデバイスの ID と対応する managed Google Play アカウントのマッピングを作成して維持し、アカウントのライフサイクル全体を管理します。これらの managed Google Play アカウントは、アプリケーション管理専用であるため、組織が直接制御する必要はありません。
EMM コンソールとサーバーの要件
managed Google Play アカウントは、EMM ソリューションのコンポーネント(EMM コンソール、EMM サーバー、DPC)全体で Google Play EMM API と Android フレームワーク API を使用して、オンデマンドでプログラムによって作成されます。これらのコンポーネントは、実行時に連携してユーザー アカウントを作成し、対象デバイスに仕事用プロファイルをプロビジョニングします。
EMM コンソールまたはサーバーは、次の要件を満たしている必要があります。
Users.insertの呼び出しで使用する一意の匿名アカウント識別子(accountIdentifierフィールド)を作成するメカニズムを提供します。たとえば、ユーザーの内部値(「sanjeev237389」)や、わかりにくいアセットタグ番号(「asset#44448」)を使用できます。アカウント識別子に個人情報(PII)を使用しないでください。userId(insert呼び出しから返される)と選択したaccountIdentifierの間のマッピングを保存します。
DPC の要件については、デバイス ポリシー コントローラを構築するをご覧ください。
管理対象の Google Play ユーザー アカウントを作成する
- ユーザーが(通常は)会社の認証情報を使用して DPC にログインします。
- DPC は、EMM サーバーまたはコンソールからユーザーの詳細情報をリクエストします。お客様がシステムに登録されていないと仮定します。
- 新しい
accountIdentifier、displayName、accountTypeの値を使用してUsers.insertを呼び出し、新しい managed Google Play アカウントのリクエストを送信します。- システムで
accountIdentifierを作成する必要があります。アカウント識別子は、システム全体で一意の値である必要があります。アカウント ID に PII を使用しないでください。 displayNameは Google Play ストアのアカウント切り替えに表示され、ユーザーにとって意味のあるものにする必要があります(ただし、ユーザーの PII は含めないでください)。たとえば、組織名や EMM に関連する一般的な名前を含めることができます。accountTypeをuserAccountまたはdeviceAccountに設定します。userAccountは複数のデバイスで使用できますが、deviceAccountは単一のデバイスに固有です。指定できるaccountTypeはdeviceTypeまたはuserTypeです。managementTypeをemmManagedに設定します。
- システムで
- Google Play はリクエストを処理し、アカウントを作成して
userIdを返します。 accountIdentifierとuserIdのマッピングをデータストアに保存します。userIdとenterpriseIdを指定してUsers.generateAuthenticationTokenを呼び出します。Google Play は、1 回だけ使用できる認証トークンを返します。このトークンは数分以内に使用する必要があります。- 認証トークンを DPC に安全に転送します。
- 新しい
- DPC は仕事用プロファイルをプロビジョニングし、アカウントを仕事用プロファイルまたはデバイスに追加します。
- ユーザーは、仕事用プロファイルまたはデバイス内で managed Google Play にアクセスできます。
管理者アカウント
管理者が managed Google Play アカウントでエンタープライズを作成する場合、使用する Google アカウントは Google Workspace アカウントであってはなりません。使用するアカウントが企業のオーナーになり、オーナーは Managed Google Play コンソールでオーナーと管理者を追加できます。
Enterprises.get と Enterprises.completeSignup はどちらも、エンタープライズに関連付けられている管理者メールアドレスのリストを返します(managed Google Play アカウントを持つエンタープライズのみ)。
アカウントのライフサイクルを管理する
managed Google Play アカウントのデプロイでは、ユーザー アカウントとデバイス アカウントのライフサイクルを管理します。つまり、これらのアカウントの作成、更新、削除を行います。
アカウントは、デバイスのプロビジョニング中に作成します。このプロセスには、DPC アプリと EMM コンソールが関与します。手順については、managed Google Play アカウントのメソッドをご覧ください。
アカウントの情報を変更するには、Users.update を呼び出します。
アカウントを削除するには、Users.delete を呼び出します。
管理者は個々のアカウントを削除することはできませんが、managed Google Play アカウントを含むエンタープライズを削除することはできます。この操作を行うと、登録解除、再登録、削除で説明されているように、企業に関連付けられているデバイスとユーザー アカウントは最終的に削除されます。
アカウントの有効期限
アカウントまたはトークンが期限切れになることがあります。これには、次のような理由が考えられます。
- デバイスにアカウントを追加するために取得した認証トークンの有効期限が切れています。
- アカウントまたは企業が削除されている。
- デバイス アカウントの場合、アカウントが新しいデバイスに追加されたため、古いデバイスでは無効になっています。
- 不正使用の自動チェックがトリガーされます。
- デバイスが 270 日以上オフラインの場合、バッチ クリーンアップ プロセスによりデバイスの情報が削除されることがあります。
ほとんどの場合(EMM が意図的にデバイス アカウントを新しいデバイスに移動する場合を除く)、効果的な手法は、Google Play EMM API を使用して EMM サーバーから新しいトークンをリクエストし、アカウントとエンタープライズの状態と返されたエラーをメモしてから、デバイスで適切なアクションを実行することです。たとえば、トークンを更新します。エラーが回復できない場合は、デバイスをリセットするか登録解除します。
トークンを正しく更新するには、次の操作を行う必要があります。
users.generateAuthenticationTokenを呼び出して、アカウントの新しい認証トークンをリクエストします。- 呼び出しが成功した場合は、DPC サポート ライブラリを使用して既存のアカウントを削除し、新しいアカウントを追加します。
- 呼び出しが失敗した場合は、デバイスからアカウントを削除し、
users.insertを使用して新規ユーザーを作成し、認証トークンを生成して、デバイスにアカウントを追加します。
Google Play 開発者サービス バージョン 9.0.00 は、ブロードキャスト アクションを使用して、アカウントの有効期限が切れたことを DPC に通知します。
デバイスで managed Google Play アカウントが無効になると、DPC は次のアクションを含むブロードキャストを受信します。
com.google.android.gms.auth.ACCOUNT_REAUTH_REQUIRED
ブロードキャスト インテントには、無効化されたアカウントの
オブジェクトであるAccountaccountという名前のParcelableエクストラが含まれます。DPC は EMM サーバーで
Account#nameをチェックして、無効なアカウントを特定します。DPC は、デバイスのプロビジョニングの初期設定に使用したのと同じフローに沿って、新しい認証情報または新しいアカウントをリクエストします。
Google アカウント
Google アカウントを使用している組織の場合、EMM ソリューションのユーザー アカウントは、別の Google サービス(Google Workspace など)に関連付けられている既存のユーザー アカウントをミラーリングします。これらのアカウントは googleManaged(表 1)です。これは、Google のバックエンド サービスがアカウントの作成と情報の発信元であるためです。
EMM として、コンソールにメカニズムを提供して、Google Cloud Directory Sync(GCDS)や Admin SDK Directory API などのツールを使用して、システム内のユーザー アカウントと Google ドメイン アカウント ソースの作成と継続的な同期を容易にすることができます。さまざまなアプローチの概要については、Google 管理ドメインの ID モデルでは、仕事用プロファイルのコンテキストでユーザーのデバイスにプロビジョニングする前に、ユーザー アカウントがソリューションのコンテキスト(EMM コンソール、EMM サーバー、データストアなど)に存在する必要があります。
ID のプロビジョニング中に、組織の Google 管理ドメインにユーザー アカウントが設定されます。場合によっては、ユーザーの既存のオンライン ID(Microsoft Exchange アカウントなど)が Google アカウントと同期されます。
初回同期後、アプリがユーザーのデバイスに配信される前に、ユーザーは デバイスでアカウントを有効にするで説明されているように、Google アカウントを有効にする必要があります。この有効化により、デバイスは managed Google Play にアクセスできるようになります。
顧客アカウントを同期する
Google アカウントのデプロイでは、組織は GCDS ツールを使用して、Google Workspace ドメインのデータを LDAP ディレクトリのデータと同期できます。または、組織からアクセス権が付与されている場合は、GCDS を使用して組織に代わってこれを行うこともできます。
GCDS ツールは Google Directory API を呼び出して、ユーザー名を同期しますが、パスワードは同期しません。
組織で Microsoft Active Directory を使用しており、ユーザーの Google Workspace パスワードを Active Directory パスワードと同期したい場合は、Password Sync を使用する準備をするをご覧ください。
管理者向けの GCDS の手順については、Google アカウントを認可するをご覧ください。
Google Directory API
Google アカウントのデプロイでは、Google Directory API を使用して、Active Directory、パスワード、またはその両方を同期できます。
Directory API を使用してディレクトリのみを同期します。組織の管理対象 Google ドメインへの読み取り専用アクセス権がある場合は、Google Directory API を使用して、Google からユーザー名(パスワードは除く)などの Google アカウント情報を取得できます。ユーザーの Google アカウントにデータを書き込むことができないため、アカウントのライフサイクルは組織が完全に責任を負います。
シナリオ 1 と SAML ベースの SSO 認証シナリオで、この状況について詳しく説明しています。
この方法で Directory API を使用する方法については、Directory API ドキュメントのすべてのアカウント ユーザーを取得するをご覧ください。
ディレクトリとオプションのパスワードの同期に Directory API を使用する。組織の管理対象 Google ドメインに対する読み取り / 書き込みアクセス権がある場合は、Google Directory API を使用して、ユーザー名、パスワード、その他の Google アカウント情報を取得できます。この情報を更新して独自のデータベースと同期できます。また、お客様に提供するソリューションに応じて、アカウントのライフサイクル全体または一部を管理する責任を負う場合があります。
シナリオ 2 で、この状況について詳しく説明します。
Directory API を使用してユーザー アカウント情報を管理する方法については、Directory API: ユーザー アカウント デベロッパー ガイドをご覧ください。
Google アカウントのシナリオ
一般的な Google アカウントの ID プロビジョニング シナリオを以下に示します。
シナリオ 1: アカウントのライフサイクルをお客様が担当している場合

このシナリオでは、お客様がユーザーの Google アカウントを作成して管理します。
組織の LDAP ディレクトリからユーザー アカウント情報を取得し、Google Directory API を介して Google から取得した Google アカウントのデータと関連付けます。
アカウントのライフサイクルは組織が完全に管理します。たとえば、新しい Google アカウントが作成されると、組織はユーザーを LDAP ディレクトリに追加します。次回データベースを LDAP ディレクトリに同期すると、データベースにこの新しいユーザーの情報が反映されます。
次のようになります。
- Google アカウントに対する読み取り専用アクセス権があります。
- データベースは Google アカウント名を取得しますが、LDAP ユーザー名やパスワードは取得しません。
- Google Directory API を使用して、顧客のユーザーの基本アカウント情報を取得します。(利用可能な情報は、
Users.getリクエストによって返される書き込み不可の情報です)。この情報は、ユーザーの Google アカウントが存在することを確認するために使用され、ユーザーはデバイスを認証できます。 - お客様は GCDS ツールを使用して一方向同期を行い、ユーザーの Google アカウントにデータを入力します。(組織では、ID プロビジョニングの完了後も、独自の継続的な同期に GCDS を使用している可能性があります)。必要に応じて、組織は GSPS ツールを使用して、ユーザー名だけでなくパスワードも同期できます。
シナリオ 2: アカウントのライフサイクルを担当する EMM

このシナリオでは、お客様に代わって Google アカウントを作成するプロセスを処理し、ユーザーのアカウント ライフサイクルを管理します。
たとえば、組織の LDAP ディレクトリでユーザー情報が変更された場合は、ユーザーの Google アカウントを更新する必要があります。このシナリオでは GCDS は使用されません。
次のようになります。
- Google アカウントに対する読み取り / 書き込み権限がある。
- データベースは、Google アカウント名と LDAP ユーザー名(必要に応じてパスワード ハッシュ)を取得します。
- お客様に代わって Google Directory API を使用して、組織のユーザーのアカウント情報を読み書きします。(利用可能な情報は、
Users.getリクエストによって返される書き込み不可の情報です)。この情報は、ユーザーの Google アカウントが存在することを確認するために使用され、ユーザーはデバイスを認証できます。 - GCDS ツールは使用されていません。
SAML ベースの SSO 認証シナリオ
Google アカウントのデプロイでは、ユーザーまたはお客様が ID プロバイダ(IdP)で Security Assertion Markup Language(SAML)を使用して、各ユーザーに関連付けられた Google アカウントを認証する場合があります。Google アカウント名は、ユーザーがデバイスにログインする際のユーザー認証に必要な、ユーザーの Google アカウントが存在することの確認に使用されます。たとえば、シナリオ 2 では SAML を使用できます。設定方法について詳しくは、SSO についてをご覧ください。
デバイスでアカウントを有効にする
managed Google Play を介してアプリをユーザーのデバイスに配信するには、ユーザーがデバイスのプロビジョニング中にデバイスにログインする必要があります。
- managed Google Play アカウントのデバイス プロビジョニングでは、DPC がユーザーに、EMM コンソールで受け入れられる認証情報(通常は会社のメールの認証情報)を使用してログインするよう促します。
- Google アカウントのデプロイでは、DPC がユーザーに Google アカウントのログイン認証情報の入力を促します。通常、これらの認証情報は、GCDS または GSPS と同期している場合、または組織が認証に IdP を使用している場合に、ユーザーが企業ドメインにログインする際に使用する認証情報と一致します。これにより、ユーザーの Google アカウントが有効になり、一意のデバイス ID が生成され、ユーザーの Google アカウントの ID とデバイスのデバイス ID がバインドされます。