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

  8. ドメイン全体の委任を持つサービス アカウントを使用して 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 開発環境設定ガイドをご覧ください。