Devices API の設定
このページでは、Cloud Identity Devices API の設定方法について説明します。Devices API を使用すると、管理者に代わって Google グループの管理などのリソースをプログラムでプロビジョニングできます。
API の有効化と認証情報の設定
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Identity API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Identity API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
ドメイン全体の委任を使用するサービス アカウントを使用して API アクセスを設定する
このセクションでは、サービス アカウント を作成して Google Workspace リソースにアクセスする方法について説明します。サービス アカウントを使用して Devices API に直接認証することはサポートされていないため、この方法を使用する必要があります。
サービス アカウントを作成し、ドメイン全体の委任用に構成する
サービス アカウントを作成してサービス アカウント キーをダウンロードする手順は次のとおりです。
サービス アカウントを作成するには、次のようにします。
コンソールで、IAM サービス アカウント ページに移動します。 Google Cloud
[ サービス アカウントを作成] をクリックします。
[サービス アカウントの詳細] で、 サービス アカウントの名前、ID、説明を入力し、[作成して続行] をクリックします。
省略可: [このサービス アカウントにプロジェクトへのアクセス権を付与] で、 サービス アカウントに付与する IAM ロールを選択します。
[続行] をクリックします。
省略可: [ユーザーにこのサービス アカウントへのアクセスを許可] で、 サービス アカウントの使用と管理を許可するユーザーまたはグループを追加します。
[完了] をクリックします。
サービス アカウントが ドメイン全体の委任を使用して Devices API にアクセスできるようにするには、サービス アカウントのドメイン全体の委任を設定するの手順に沿って操作します。
サービス アカウント キーを作成してダウンロードする手順は次のとおりです。
- 作成したサービス アカウントのメールアドレスをクリックします。
- [キー] タブをクリックします。
- [キーを追加] プルダウン リストで、[新しいキーを作成] を選択します。
[作成] をクリックします。
新しい公開鍵と秘密鍵のペアを含む 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 開発環境設定ガイドをご覧ください。