アクセストークンの取得とスコープについて

アクセストークンの取得とスコープについて

CloudGearのAPIにリクエストを送信するには、事前にOpenID ConnectまたはOAuth 2.0 認証フローを使用してアクセストークンを取得する必要があります。

アクセストークンの取得方法は、以下の2種類になります。

Authorization Code によるアクセストークンの取得

Authorization Codeによるアクセストークンを取得するためには、サービスを利用しているユーザに認証を行っていただく必要があります。

認証に関する詳しいフローにつきましては、こちらをご覧ください。

Client Credentials によるアクセストークンの取得

Client Crendentialsによるアクセストークンを取得するためには、サービス認証の設定で作成した認証情報を使用する必要があります。

リクエスト

POST https://accounts.cloudgear.services/token

ヘッダー

 キー

 キー

Content-Type

application/x-www-form-urlencoded

リクエストボディ

キー

説明

キー

説明

grant_type

string

client_credentialsを指定します。(固定値)

client_id

string

サービス認証の設定で作成したクライアントのクライアントIDを指定します。

client_secret

string

サービス認証の設定で作成したクライアントのクライアントシークレットを指定します。

scope

string

利用したいスコープを指定します。
例:使用料の報告APIを利用したい場合は、api:service:report_usageを指定します。

サンプルリクエスト

curl https://accounts.cloudgear.services/token \ -X POST \ -d "grant_type=client_credentials" \ -d "client_id=acb390f4-b284-4a62-a07e-5791317e4783" \ -d "client_secret=secret" \ -d "scope=api:service:report_usage"

レスポンス

Content-Type: application/json

ステータスコード

メッセージ

説明

ステータスコード

メッセージ

説明

200

access_token: <access_token>

正常なレスポンスです。
アクセストークンがレスポンスに設定されています。

400

error: unsupported_grant_type error_description: Unsupported grant type: <client_credentials>

grant_typeの設定値を間違えている場合のレスポンスです。

400

error: invalid_client error_description: Client with id <client_id> was not found

指定されたクライアントIDが見つからない場合のレスポンスです。

サンプルレスポンス(正常)

{ "access_token": "<access_token>", "token_type": "Bearer", "expires_in": 3599, "scope": "api" }

サンプルレスポンス(エラー)

{ "error": "invalid_client", "error_description": "Client with id <client_id> was not found" }

スコープ

CloudGearのAPIにアクセスするには、APIごとに指定された追加の権限がアクセストークンに必要です。
以下のスコープをアクセストークン取得時のリクエストのscopeパラメータに指定することで、特定の権限が付与されたアクセストークンを取得できます。

ユーザ認証スコープ

ユーザー認証の際にスコープを付与するかを選択できる。

スコープ

権限

スコープ

権限

openid

ユーザーの認証情報を要求する。

profile

ユーザー情報へのアクセスを要求する。

email

ユーザーのメールアドレスを要求する。

offline_access

リフレッシュトークンの返却を要求する。

api:square:invite

API経由でスクエアへの招待を行う。

api:square:user_delete

API経由でスクエアに所属しているユーザーの削除を行う。

api.domain.users:read

API経由でドメインユーザの取得を行う。

api.domain.users:write

API経由でドメインユーザの追加、更新、削除を行う。

ユーザ認証を行なったユーザの管理権限が「オーナー」または「管理者」である必要があります。

api.domain.user.roles:write

API経由でドメインユーザの管理権限を編集する。

ユーザ認証を行なったユーザの管理権限が「オーナー」または「管理者」である必要があります。

api.domain.configs:read

API経由でドメインの情報を取得する。

api.domain.configs:write

API経由でドメインの情報を更新する。

ユーザ認証を行なったユーザの管理権限が「オーナー」または「管理者」である必要があります。

api.domain.transfer.owners:read

API経由でドメインオーナーの移譲状態を取得する。

ユーザ認証を行なったユーザの管理権限が「オーナー」または「移譲先のユーザー」である必要があります。

api.domain.transfer.owners:write

API経由でドメインオーナーの移譲リクエストを行う。

ユーザ認証を行なったユーザの管理権限が「オーナー」または「移譲先のユーザー」である必要があります。

api.domain.card:read

API経由でドメインに紐づくカード情報を取得する。

ユーザ認証を行なったユーザの管理権限が「オーナー」である必要があります。

api.domain.card:write

API経由でドメインに紐づくカードを追加、削除を行う。

ユーザ認証を行なったユーザの管理権限が「オーナー」である必要があります。

api.account.card:read

API経由でアカウントに紐づくカード情報を取得する。

api.account.card:write

API経由でドメインに紐づくカードを追加、削除を行う。

api.profile:write

API経由でユーザー情報の編集を行う。

api.subscriptions:read

API経由で契約情報の取得を行う。
契約情報の取得には、ユーザ認証を行なったユーザの管理権限が「オーナー」、「管理者」、「招待者」のいずれかである必要があります。

api.subscriptions:write

API経由で契約の更新、削除を行う。
契約情報の更新、削除には、ユーザ認証を行なったユーザの管理権限が「オーナー」か「管理者」のいずれかである必要があります。

api.subscription.users:read

API経由で契約内ユーザの取得を行う。
契約内ユーザの取得には、ユーザ認証を行なったユーザの管理権限が「オーナー」、「管理者」、「招待者」のいずれかである必要があります。

api.subscription.user.roles:read

API経由で契約内ユーザの権限を取得する。
契約内ユーザの権限取得には、ユーザ認証を行なったユーザの管理権限が「オーナー」、「管理者」、「招待者」のいずれかである必要があります。

api.subscription.user.roles.write

API経由で契約内ユーザの権限を更新する。
契約内ユーザの権限更新には、ユーザ認証を行なったユーザの管理権限が「オーナー」か「管理者」のいずれかである必要があります。

api.subscription.available_plans:read

API経由で契約中のサービスのプラン情報を取得する。
契約中のサービスのプラン取得には、ユーザ認証を行なったユーザの管理権限が「オーナー」、「管理者」のいずれかである必要があります。

api.subscription.invoices:read

API経由で契約に紐づく請求情報を取得する。
契約に紐づく請求情報の取得には、ユーザ認証を行なったユーザの管理権限が「オーナー」、「管理者」のいずれかである必要があります。

api.subscription.transfer.owners:read

API経由で契約者の移譲状態を取得する。
契約者の移譲状態の取得には、ユーザ認証を行なったユーザの管理権限が「オーナー」または「移譲先のユーザー」である必要があります。

api.subscription.transfer.owners:write

API経由で契約者の移譲リクエストを行う。
契約者の移譲リクエストを行うには、ユーザ認証を行なったユーザの管理権限が「オーナー」または「移譲先のユーザー」である必要があります。

api.subscription.card:read

API経由で契約に紐づくカード情報の取得を行う。
契約に紐づくカード情報の取得には、ユーザ認証を行なったユーザの管理権限が「オーナー」、「管理者」のいずれかである必要があります。

api.subscription.card:write

API経由で契約に紐づくカードの更新を行う。
契約に紐づくカードの更新には、ユーザ認証を行なったユーザの管理権限が「オーナー」か「管理者」のいずれかである必要があります。

api.subscription.cancel_reasons:write

API経由で解約時の解約理由を作成する。
解約時の解約理由の作成には、ユーザ認証を行なったユーザの管理権限が「オーナー」か「管理者」のいずれかである必要があります。


サービス認証スコープ

サービス認証の際に各スコープを付与するかを選択できます。
grant_typeclient_credentialsの場合のみ指定できます。

スコープ

権限

スコープ

権限

api:service:report_usage

API経由で使用量の報告を行う。

api:stripe_key:read

API経由でStripeの公開鍵の取得を行う。

api:service_signups:write

API経由でCloudGearアカウントの作成と契約を行う。

サービスサインアップAPIの詳細は、こちら