Devices API を設定する

このページでは、Cloud Identity Devices API の設定方法について説明します。Devices API を使用すると、管理者に代わってリソース(Google グループの管理など)をプログラムでプロビジョニングできます。

API の有効化と認証情報の設定

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Identity API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Identity API.

    Enable the API

ドメイン全体の委任を持つサービス アカウントを使用して API アクセスを設定する

このセクションでは、サービス アカウントを作成して使用し、Google Workspace リソースにアクセスする方法について説明します。サービス アカウントを使用して Devices API に直接認証することはサポートされていないため、この方法を使用する必要があります。

サービス アカウントを作成し、ドメイン全体の委任用に構成する

サービス アカウントを作成してサービス アカウント キーをダウンロードするには、次の操作を行います。

  1. サービス アカウントを作成するには、次のようにします。

    1. Google Cloud コンソールで、IAM サービス アカウント ページに移動します。

      [サービス アカウント] に移動

    2. [ サービス アカウントを作成] をクリックします。

    3. [サービス アカウントの詳細] で、サービス アカウントの名前、ID、説明を入力し、[作成して続行] をクリックします。

    4. (省略可)[このサービス アカウントにプロジェクトへのアクセスを許可する] で、サービス アカウントに付与する IAM ロールを選択します。

    5. [続行] をクリックします。

    6. 省略可: [ユーザーにこのサービス アカウントへのアクセスを許可] で、サービス アカウントの使用と管理を許可するユーザーまたはグループを追加します。

    7. [完了] をクリックします。

  2. ドメイン全体の委任を使用してサービス アカウントが Devices API にアクセスできるようにするには、サービス アカウントのドメイン全体の委任を設定するの手順を行います。

  3. サービス アカウント キーを作成してダウンロードする手順は次のとおりです。

    1. 作成したサービス アカウントのメールアドレスをクリックします。
    2. [キー] タブをクリックします。
    3. [鍵を追加] プルダウン リストで、[新しい鍵を作成] を選択します。
    4. [作成] をクリックします。

      新しい公開鍵と秘密鍵のペアを含む JSON 形式の認証情報ファイルが生成され、マシンにダウンロードされます。ファイルには鍵のコピーが 1 つだけ含まれています。大切に保管してください。鍵ペアを紛失した場合は、新しい鍵ペアを生成する必要があります。

ログエントリを確認する

ログエントリを確認する際は、監査ログにはサービス アカウントのアクションがユーザーによって開始されたものとして表示されることに注意してください。これは、ドメイン全体の委任はサービス アカウントが管理者ユーザーに成り代わることができるようにすることで機能するためです。

認証情報を初期化する

コード内で認証情報を初期化する場合は、認証情報に対して with_subject() を呼び出すためにサービス アカウントに使用するメールアドレスを指定します。次に例を示します。

Python

credentials = service_account.Credentials.from_service_account_file(
  'SERVICE_ACCOUNT_CREDENTIAL_FILE',
  scopes=SCOPES).with_subject(USER
)

次のように置き換えます。

  • SERVICE_ACCOUNT_CREDENTIAL_FILE: このドキュメントで前述のサービス アカウント キー ファイル
  • USER: サービス アカウントが権限を借用するユーザー

クライアントのインスタンス化

サービス アカウントの認証情報を使用してクライアントをインスタンス化する方法を、次の例に示します。

Python

from google.oauth2 import service_account
import googleapiclient.discovery

SCOPES = ['https://www.googleapis.com/auth/cloud-identity.devices']

def create_service():
  credentials = service_account.Credentials.from_service_account_file(
    'SERVICE_ACCOUNT_CREDENTIAL_FILE',
    scopes=SCOPES
  )

  delegated_credentials = credentials.with_subject('USER')

  service_name = 'cloudidentity'
  api_version = 'v1'
  service = googleapiclient.discovery.build(
    service_name,
    api_version,
    credentials=delegated_credentials)

  return service

次のように置き換えます。

  • SERVICE_ACCOUNT_CREDENTIAL_FILE: このドキュメントで前述のサービス アカウント キー ファイル
  • USER: サービス アカウントが権限を借用するユーザー

これで、Devices API を呼び出せるようになりました。

代わりにエンドユーザーとして認証を受けるには、サービス アカウントの credential オブジェクトを、OAuth 2.0 トークンの取得で取得した credential に置き換えます。

Python クライアント ライブラリのインストール

Python クライアント ライブラリをインストールするには、次のコマンドを実行します。

  pip install --upgrade google-api-python-client google-auth \
    google-auth-oauthlib google-auth-httplib2

Python 開発環境の設定の詳細については、Python 開発環境設定ガイドをご覧ください。