承認

アプリは、OAuth を使用してゼロタッチ登録の customer API への呼び出しを承認します。このドキュメントでは、Compute Engine インスタンスで 企業向けモバイル管理(EMM)プロバイダや企業の IT デベロッパーに使用されています。 このドキュメントを読むと、 アプリのユーザーにアカウントの要件を説明します。

認可のクイックスタート

  • ゼロタッチ登録 API を使用して Google Cloud Platform プロジェクトをセットアップする OAuth クライアント シークレットを使用する場合は、このウィザードを実行します。
  • Java.NET、または Python。Google の API クライアント ライブラリを使用して、 対応しています。

概要

デバイスとお客様のリソースの関係

  1. 1 人以上の IT 管理者は、ゼロタッチ登録の顧客アカウントのユーザーです。
  2. IT 管理者は Google アカウントを使用して認証を行います。
  3. API リクエストは、ユーザーの代わりに API リクエストを承認する OAuth2 トークンを IT 管理者。

顧客アカウント

組織の構成、デバイス、(IT 管理者)ユーザーは、 顧客アカウント。お客様のアカウントはグループに似ていますが、 できます。組織が最初に顧客を設定するとき、販売パートナーは ゼロタッチ登録用のデバイスを購入するIT 管理者が組織内の他のユーザーを管理する ゼロタッチ登録ポータルを使用して、組織での

この API では、数値のお客様 ID を使用してアカウントが識別されます。お客様 ID を渡す URL パスの一部として使用できます。アプリは、API メソッドを呼び出す前にユーザーのカスタマー ID を取得する必要があります。

以下の例は、サポートしているユーザーのアカウントを取得する方法を示しています。 API 呼び出しを承認します。

Java

AndroidProvisioningPartner.Customers.List accountRequest = service.customers().list();
accountRequest.setPageSize(100);
CustomerListCustomersResponse accountResponse = accountRequest.execute();

List<Company> customers = accountResponse.getCustomers();
if (customers == null || customers.isEmpty()) {
    // No accounts found for the user. Confirm the Google Account
    // that authorizes the request can access the zero-touch portal.
    System.out.println("No zero-touch enrollment account found.");
} else {
    // Print the customers in this page.
    for (Company customer : customers) {
        System.out.format("%s\tcustomers/%d\n",
              customer.getCompanyName(), customer.getCompanyId());
    }
}

.NET

CustomersResource.ListRequest accountRequest = service.Customers.List();
accountRequest.PageSize = 100;
CustomerListCustomersResponse accountResponse = accountRequest.Execute();
IList<Company> customers = accountResponse.Customers ?? new List<Company>();
if (customers.Count == 0)
{
    // No accounts found for the user. Confirm the Google Account
    // that authorizes the request can access the zero-touch portal.
    Console.WriteLine("No zero-touch enrollment account found.");
}
foreach (Company customer in customers)
{
    Console.WriteLine("{0}\tcustomers/{1}",
                      customer.CompanyName,
                      customer.CompanyId);
}

Python

response = service.customers().list(pageSize=100).execute()
if 'customers' not in response:
  # No accounts found for the user. Confirm the Google Account
  # that authorizes the request can access the zero-touch portal.
  print('No zero-touch enrollment account found.')
  response['customers'] = []

for customer in response['customers']:
  print('{0}\tcustomers/{1}'.format(
      customer['companyName'], customer['companyId']))

上記の例では最初の 100 件のアカウントのみが印刷されるため、アプリではアカウント結果ページを移動する必要があります。方法については、ページ分けされた結果をご覧ください。

通常、組織には 1 つのお客様アカウントがありますが、規模の大きい組織では部門ごとに個別のお客様アカウントを使用する場合があります。IT 管理者は 複数の顧客アカウントに属している場合、アプリで 新しい顧客アカウントの使用を検討してください。アプリでは、 companyName 値。

ユーザー

IT 管理者は、アプリがユーザーに代わって送信する API リクエストを承認します。宛先 API リクエストを承認するには、アプリのユーザーが次のことを行う必要があります。

  1. Google アカウントとメールアドレスを関連付けます。
  2. 同じメールアドレスを使用してお客様のアカウントに参加します。
  3. ゼロタッチ登録の利用規約に同意します。

アプリのユーザー設定をサポートするには、 のご利用を開始し、Google アカウントを関連付ける 独自のドキュメントに記載できます

ユーザー管理

IT 管理者は、顧客アカウントのユーザーをゼロタッチで管理できます 登録ポータルお客様のアカウントのユーザーには、 オーナーまたは管理者。どちらのロールも Customer API への同じアクセス権を持ちますが、 オーナーは他のユーザーを管理できます。

利用規約への同意

アプリのユーザーが API 呼び出しを承認する前に、ユーザーは最新の 利用規約これは、IT 管理者が初めてゼロタッチ登録を使用する場合や、 利用規約を更新します。ユーザーが最新の利用規約に同意していない場合、API は HTTP 403 Forbidden ステータス コード。レスポンスの本文には TosError

ユーザーが署名すると、最新の利用規約への同意を求めるメッセージがポータルから自動的に表示されます できます。アプリに含めることができる推奨アプローチについては、EMM 統合ガイドの利用規約を処理するをご覧ください。

アプリに認証を追加する

アプリが顧客の API に送信するすべてのリクエストには、承認を含める必要があります あります。このトークンは Google でアプリケーションを識別するためにも使用されます。これは、 アクセスする場合、データの所有者から承認を得る必要があります。 できます。お客様のアプリは、OAuth 2.0 プロトコルをご覧ください。

手順

Java.NETPython アプリ。別の言語を使用している場合は、次の 2 つの言語に従ってください。 認証を設定する手順は次のとおりです。 。

認証について詳しくは、OAuth 2.0 を使用した Google へのアクセス API

認可スコープ

アプリで API 認可スコープ https://www.googleapis.com/auth/androidworkzerotouchemm を使用して、OAuth 2.0 アクセス トークンをリクエストします。

スコープ パラメータは、アクセスするリソースとオペレーションのセットを 呼び出しが許可されます。アクセス トークンは、一連のオペレーションに対してのみ有効です。 トークン リクエストのスコープで説明されているリソースが含まれます。この API は、上記の単一のゼロタッチ登録スコープですべてのメソッドとリソースをカバーします。

Google API で使用されるゼロタッチ登録のスコープの例 Java.NETPython。Google API スコープの使用方法について詳しくは、 OAuth 2.0 to Access Google API

API キーのベスト プラクティス

アプリケーションで API キーを利用するときは、キーの安全確保に努めてください。認証情報が公開されると、アカウントが不正に使用され、 お使いのアカウントに予期しない請求が発生する可能性があります。保持 次のベスト プラクティスに従ってください。

API キーをコードに直接埋め込まない
コードに埋め込まれた API キーが、誤って たとえば、送信したコードをコードから削除し忘れた場合などに、 共有します。API キーは、アプリケーションに埋め込むのではなく、 アプリケーションのソース外のファイル内でも、 表示されます。
アプリケーションのソースツリー内のファイルに API キーを保存しないでください。
API キーをファイルに保存する場合は、ファイルをアプリケーションの キーがソースコード コントロールに含まれないようにするソースツリー ありません公開されているソースコードを使用する場合は特に、この点が重要になります。 使用することもできます。
API キーを、必要な IP アドレス、リファラー URL、モバイルアプリのみが使用できるように制限する
アクセスを許可する IP アドレス、参照 URL、モバイルアプリを制限することで、 API キーが不正使用された場合の影響を軽減できます。Google Chat では Google API Console から、各キーを使用できるホストとアプリを指定する [認証情報] ページを開き、新しい API を作成する キーを必要な設定に置き換えるか、API の設定を編集する ] キーを押します。
不要な API キーを削除する
攻撃を受けるリスクを最小限に抑えるため、不要になった API キーを削除します。
API キーを定期的に再生成する
Google API Console から API キーを再生成するには、 認証情報ページ。API キーを選択して、[再生成] をクリックする を組み合わせます。その後、新しく生成された できます。古いキーは置換用のキーを生成した後も 24 時間は機能し続けます。
コードを一般公開する前にレビューする
コードに API キーやその他の非公開の情報が含まれていないことを確認する 確認する必要があります。