ユーザー アカウントのプロビジョニング

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

Android エンタープライズ環境では、次の 3 つの異なるシステムがアカウント情報を保持します。

  • 組織のユーザー ディレクトリは、ユーザーに関する信頼できる情報源です。
  • EMM ソリューション プロバイダは、少なくとも組織のユーザーの最小限のディレクトリを維持する必要があります。
  • Google は、Google Play を通じてアプリを管理するために、managed Google Play アカウントと Google アカウントに関する一部の情報を保持しています。

Users リソースは、企業に関連付けられたアカウントを表します。アカウントは、デバイスに固有のアカウントでも、複数のデバイス(スマートフォン、タブレットなど)を所有し、すべてのデバイスでアカウントを使用する個人に関連付けることもできます。このアカウントでは、managed Google Play のみ、または他の Google サービス(お客様の企業の設定)に応じて他の 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)は使用しません。未設定。
accountTypedeviceAccount、userAccountuserAccount
displayNameGoogle Play 内などの UI アイテムに表示する名前。個人を特定できる情報を使用しない。未設定。
managementTypeemmManagedgoogleManaged、emmManaged
primaryEmail未設定。このフィールドは、Google 管理のドメイン アカウントからシステム内のユーザー アカウントへの同期を管理する主キーです。
Methods
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 台を超えるデバイスで同じアカウントを使用しないでください。
デバイス アカウント
1 台のデバイスから managed Google Play にアクセスできます。デバイス アカウント用に認証トークンが発行された場合、そのデバイス アカウントの認証トークンの新しいリクエストにより、以前のトークンが無効になります。デバイスごとにアプリの個別のライセンスを割り当てる必要があります。
デバイス アカウントを作成するには、Users.insert を呼び出して、アカウント タイプを deviceType に設定します。

ユーザー ID またはデバイスの ID と、対応する managed Google Play アカウント間のマッピングを作成して維持し、ライフサイクルを通じてアカウントを管理します。これらの managed Google Play アカウントはアプリの管理専用のため、組織が直接管理する必要はありません。

EMM コンソールと EMM サーバーの要件

managed Google Play アカウントは、EMM ソリューションのコンポーネント(EMM コンソール、EMM サーバー、DPC)全体で Google Play EMM API と Android フレームワーク API を使用して、オンデマンドでプログラムによって作成されます。これらのコンポーネントは、実行時にやり取りしてユーザー アカウントを作成し、対象デバイスに仕事用プロファイルをプロビジョニングします。EMM コンソールまたは EMM サーバーは、次の条件を満たしている必要があります。

  • Users.insert の呼び出しで使用する一意の匿名アカウント ID(accountIdentifier フィールド)を作成するメカニズムを提供します。たとえば、ユーザー用の内部値(「sanjeev237389」)や、難解なアセットタグ番号(「asset#44448」)を使用することがあります。アカウント ID に個人情報(PII)は使用しないでください。

  • userIdinsert 呼び出しから返されたもの)と選択した accountIdentifier の間のマッピングを保存します。

DPC の要件については、Device Policy Controller を作成するをご覧ください。

managed Google Play ユーザー アカウントを作成する

  1. ユーザーが(通常は)会社の認証情報を使用して DPC にログインします。
  2. DPC は EMM サーバーまたはコンソールからユーザーの詳細をリクエストします。 ユーザーがシステムで認識されていないと仮定した場合、次のようになります。
    1. 新しい accountIdentifierdisplayNameaccountType の値を指定して Users.insert を呼び出して、新しい managed Google Play アカウントのリクエストを送信します。
      • accountIdentifier はシステムが作成する必要があります。アカウント ID は、システム全体で一意の値にする必要があります。アカウント ID に PII を使用しないでください。
      • displayName は、Google Play ストアのアカウント切り替えツールに表示され、ユーザーにとってなんらかの意味を持つ必要があります(ただし、ユーザーに関する PII は扱いません)。たとえば、名前には EMM に関連する組織名や一般名などを含めることができます。
      • accountTypeuserAccount または deviceAccount に設定します。userAccount は複数のデバイスで使用できますが、deviceAccount は 1 つのデバイスに固有のものです。指定する accountType は、deviceType または userType です。
      • managementTypeemmManaged に設定します。
    2. Google Play がリクエストを処理し、アカウントを作成して userId を返します。
    3. accountIdentifieruserId 間のマッピングをデータストアに保存します。
    4. userIdenterpriseId を指定して Users.generateAuthenticationToken を呼び出します。Google Play から認証トークンが返されます。このトークンは 1 回使用でき、数分以内に使用する必要があります。
    5. 認証トークンを DPC に安全に転送します。
  3. DPC は仕事用プロファイルをプロビジョニングし、アカウントを仕事用プロファイルまたはデバイスに追加します。
  4. ユーザーは仕事用プロファイルまたはデバイス内で managed Google Play にアクセスできます。

管理者アカウント

管理者が managed Google Play アカウントのあるエンタープライズを作成する場合、使用する Google アカウントを G Suite アカウントにすることはできません。ユーザーが使用するアカウントが企業のオーナーになり、オーナーは managed Google Play Console でオーナーと管理者を追加できます。

Enterprises.getEnterprises.completeSignup はどちらも、企業に関連付けられている管理者メールアドレスのリストを返します(managed Google Play アカウントを持つ企業のみ)。

アカウントのライフサイクルを管理する

managed Google Play アカウントのデプロイでは、ユーザーとデバイスのアカウントのライフサイクルについて責任を負います。つまり、これらのアカウントの作成、更新、削除はユーザー自身で行う必要があります。

アカウントは、デバイスのプロビジョニング(DPC アプリと EMM コンソールに関するプロセス)中に作成します。手順については、managed Google Play アカウント メソッドをご覧ください。

アカウント情報を変更するには、 Users.update を呼び出します。

アカウントを削除するには、Users.delete を呼び出します。

管理者は個々のアカウントを削除することはできませんが、managed Google Play アカウントがある企業を削除できます。この操作を行うと、企業に関連付けられているデバイスとユーザー アカウントが最終的に削除されます(登録解除、再登録、削除を参照)。

アカウントの有効期限

アカウントやトークンの有効期限が切れることがあります。これにはさまざまな理由が考えられます。

  • アカウントをデバイスに追加するために取得した認証トークンの有効期限が切れています。
  • アカウントまたは企業が削除されている。
  • デバイス アカウントの場合、アカウントは新しいデバイスに追加されているため、古いデバイスでは無効になっています。
  • 不正行為の自動チェックがトリガーされます。

ほとんどの場合(EMM が意図的にデバイス アカウントを新しいデバイスに移行する場合を除く)、Play EMM API を使用して EMM サーバーに新しいトークンをリクエストし、アカウントと企業の状態と返されたエラーを記録して、デバイスで適切なアクションを実行することをおすすめします。たとえば、トークンを更新するか、エラーが回復できない場合は、デバイスをリセットまたは登録解除します。

Google Play 開発者サービスのバージョン 9.0.00 が、ブロードキャスト アクションを使用して、アカウントの有効期限が切れたことを DPC に通知します。

  1. デバイスで managed Google Play アカウントが無効になると、DPC は次のアクションでブロードキャストを受信します。

    com.google.android.gms.auth.ACCOUNT_REAUTH_REQUIRED

    ブロードキャスト インテントには、account という名前の Parcelable エクストラが含まれています。これは、無効化されたアカウントの Account オブジェクトです。

  2. DPC は EMM サーバーで Account#name をチェックし、無効化されたアカウントを特定します。

  3. DPC は、最初にデバイスをプロビジョニングしたときと同じフローに従って、新しい認証情報または新しいアカウントをリクエストします。


Google アカウント

Google アカウントを使用する組織の場合、EMMЦs ソリューションのユーザー アカウントは、別の Google サービス(G Suite など)に関連付けられた既存のユーザー アカウントを反映します。これらのアカウントは googleManaged表 1)です。これは、Google のバックエンド サービスがアカウントの作成とその情報のソースであるためです。

EMM は、Google Cloud Directory Sync(GCDS)Google Admin SDK Directory API などのツールを使用して、システム内のユーザー アカウントの作成と Google ドメイン アカウントのソースとの同期を容易にするメカニズムをコンソールで提供できます。さまざまなアプローチの概要を確認できます)。Google 管理のドメイン ID モデルでは、仕事用プロファイルのコンテキストでユーザーのデバイスにプロビジョニングする前に、ソリューションのコンテキスト(EMM コンソール、EMM サーバーなど、データストア内)にユーザー アカウントが存在する必要があります。

ID のプロビジョニング中に、組織の Google 管理ドメインにはユーザー アカウントが設定されます。場合によっては、ユーザーの既存のオンライン ID(Microsoft Exchange アカウントなど)が Google アカウントと同期される場合があります。

最初の同期の後、アプリがユーザーのデバイスに配布される前に、デバイスでアカウントを有効にするで説明されているように、ユーザーは Google アカウントを有効にする必要があります。この有効化により、デバイスは managed Google Play にアクセスできるようになります。

顧客アカウントを同期する

Google アカウントのデプロイでは、組織は GCDS ツールを使用して、G Suite ドメインのデータを LDAP ディレクトリのデータと同期できます。また、組織からアクセス権を付与されている場合は、GCDS を使用して組織に代わってこの操作を行うこともできます。

GCDS ツールは Google Directory API を呼び出し、ユーザー名を同期しますが、パスワードは同期しません。

組織で Microsoft Active Directory を使用していて、ユーザーの G Suite パスワードを Active Directory パスワードと同期させたい場合は、ユーザーまたは管理者が GCDS で G Suite Password Sync(GSA)ツールを使用できます。

GCDS に関する管理者向け手順については、同期のために G Suite ドメインを準備するをご覧ください。

Google Directory API

Google アカウントのデプロイでは、Google Directory API を使用してアクティブなディレクトリとパスワード、またはその両方を同期できます。

  • ディレクトリのみの同期に Directory API を使用する。組織の管理対象の Google ドメインに対する読み取り専用権限がある場合は、Google Directory API を使用して、ユーザー名(パスワードを除く)などの Google アカウント情報を Google から取得できます。ユーザーの Google アカウントにはデータを書き込めないため、アカウントのライフサイクルの全責任は組織が負います。

    この状況については、シナリオ 1SAML ベースの SSO 認証シナリオで詳しく説明しています。

    この方法で Directory API を使用する方法については、Directory API ドキュメントのすべてのアカウント ユーザーを取得するをご覧ください。

  • Directory API を使用したディレクトリとオプションのパスワード同期。組織の管理対象の Google ドメインに対する読み取り / 書き込みアクセス権がある場合は、Google Directory API を使用してユーザー名、パスワード、その他の Google アカウント情報を取得できます。この情報を更新して、独自のデータベースと同期できます。また、顧客に提供するソリューションに応じて、アカウントのライフサイクルのすべてまたは一部を貴社が責任を負うことがあります。

    この状況については、シナリオ 2 で詳しく説明しています。

    Directory API を使用してユーザー アカウント情報を管理する方法については、Directory API: ユーザー アカウントのデベロッパー ガイドをご覧ください。

Google アカウントのシナリオ

以下に、Google アカウントの ID プロビジョニングの一般的なシナリオを示します。

シナリオ 1: お客様がアカウントのライフサイクルを担当する

Directory API(読み取り専用アクセス権)と GCDS の使用

このシナリオでは、お客様がユーザー用の Google アカウントを作成、管理します。

組織の LDAP ディレクトリからユーザー アカウント情報を取得し、Google Directory API を介して Google から取得した Google アカウントのデータに関連付けます。

アカウントのライフサイクルについては、組織がすべて責任を負う。たとえば、新しい Google アカウントが作成されると、ユーザーは LDAP ディレクトリに追加されます。次回データベースを LDAP ディレクトリに同期するときに、データベースはこの新しいユーザーに関する情報を受け取ります。

次のようになります。

  • Google アカウントの権限は読み取り専用です。
  • データベースは Google アカウント名を取得しますが、LDAP ユーザー名とパスワードは取得しません。
  • Google Directory API を使用して、顧客のユーザーの基本的なアカウント情報を取得します。(取得できる情報は、Users.get リクエストによって返される書き込み不可能な情報です)。この情報を使用して、ユーザーがデバイスで認証できるように、ユーザーの Google アカウントが存在することを確認します。
  • お客様は GCDS ツールを使用して一方向の同期を行い、ユーザーの Google アカウントにデータを入力します。(組織では、ID のプロビジョニングの完了後の継続的な同期にも GCDS を使用している可能性があります)。必要に応じて、組織は gcr ツールを使用して、ユーザー名だけでなくパスワードも同期できます。

シナリオ 2: EMM がアカウントのライフサイクルを担当する

読み取り / 書き込みアクセス権を持つ Directory API の使用

このシナリオでは、お客様に代わって 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 を使用できます。この設定方法の詳細については、G Suite アカウントにシングル サインオン(SSO)を設定するをご覧ください。

デバイスでアカウントを有効にする

managed Google Play を介してユーザー デバイスにアプリを配布するには、デバイスのプロビジョニング中にユーザーがデバイスにログインする必要があります。

  • managed Google Play アカウントのデバイスのプロビジョニングでは、DPC は EMM コンソールに受け入れられた認証情報(通常は会社のメール認証情報)を使用してログインするようユーザーに指示します。
  • Google アカウントのデプロイでは、DPC はユーザーに Google アカウントのログイン認証情報の入力を指示します。通常、これらの認証情報は、ユーザーが GCDS または GSA と同期する場合や、組織が認証に IdP を使用する場合に、ユーザーが企業ドメインにログインする際に使用する認証情報と一致します。これにより、ユーザーの Google アカウントが有効になり、一意のデバイス ID が生成され、ユーザーの Google アカウント ID とデバイスのデバイス ID がバインドされます。