すべてのプロダクト
Search
ドキュメントセンター

Resource Access Management:Web アプリケーションから Alibaba Cloud へのログイン

最終更新日:Sep 11, 2026

このトピックでは、Web アプリケーションが OAuth 2.0 認可コードフローを使用して、ユーザーに代わって Alibaba Cloud API にアクセスする方法について説明します。

前提条件

  • Web アプリケーションがユーザーに代わって Alibaba Cloud API にアクセスする前に、アプリケーションを作成する必要があります。名前、OAuth スコープ、リダイレクト URI などのキー情報を提供します。詳細については、「アプリケーションの作成」をご参照ください。アプリケーションを作成した後、そのクライアント ID を確認できます。[Enterprise Applications] ページで、アプリケーションリストからお使いのアプリケーションの クライアント ID を見つけます。

    説明

    アプリケーションを作成すると、そのアプリケーションは Alibaba Cloud アカウント内のユーザーに代わって動作できるようになります。他の Alibaba Cloud アカウントのユーザーに代わって動作するには、それらのアカウントから認可を取得する必要があります。

  • クライアントシークレットを作成します。詳細については、「クライアントシークレットの作成」をご参照ください。クライアントシークレット (client_secret) は作成時にのみ表示され、後で取得することはできません。安全に保管してください。

認可フローの概要

基本流程

  1. ユーザーがブラウザで Web アプリケーションにサインインします。

  2. Web アプリケーションは、ユーザーを Alibaba Cloud OAuth 2.0 認可エンドポイントにリダイレクトします。

    説明

    ユーザーが Alibaba Cloud にサインインしていない場合、最初に Alibaba Cloud のサインインページにリダイレクトされます。

  3. ユーザーはサインインし、同意画面でアプリケーションを認可します。

  4. Alibaba Cloud OAuth 2.0 サービスは、認可コードとともにユーザーを Web アプリケーションにリダイレクトします。

  5. Web アプリケーションは、認可コードをアクセストークンと交換します。

  6. Alibaba Cloud OAuth 2.0 サービスは、アクセストークン (access_token) を Web アプリケーションに返します。

  7. Web アプリケーションは、アクセストークンを使用して、ユーザーに代わって Alibaba Cloud API を呼び出します。

    説明

    アクセストークンはユーザーを表すため、アプリケーションはユーザーのリソースにアクセスできます。

アクセストークンの取得

ステップ 1:認可コードのリクエスト

認可エンドポイント: https://signin.alibabacloud.com/oauth2/v1/auth。

リクエストパラメーター:

パラメーター

必須

説明

client_id

はい

アプリケーションのクライアント ID。

redirect_uri

はい

アプリケーション作成時に指定したリダイレクト URI のいずれか。

response_type

はい

レスポンスタイプ。OAuth 2.0 プロトコルに従い、この値は code である必要があります。

scope

いいえ

スペースで区切られた OAuth スコープのリスト。このパラメーターを省略した場合、リクエストでは、デフォルトでアプリケーションに設定されたすべてのスコープが使用されます。

access_type

いいえ

リクエストされたアクセスの種類。有効な値:

  • online: アプリケーションがアクセストークンを更新するためにオフラインアクセスを必要としない場合。

  • offline: オフラインアクセスを必要とするリクエストの場合、サービスは更新トークンを発行します。アプリケーションは、必要に応じて更新トークンを使用してアクセストークンを更新できます。

デフォルト値: online。

state

いいえ

アプリケーションは、state パラメーターを、状態の維持や CSRF リスクを軽減するための nonce として利用するなど、複数の目的で使用できます。state パラメーターを任意の文字列に設定すると、Alibaba Cloud OAuth 2.0 サービスはレスポンスに state パラメーターとその値を含めます。

prompt

いいえ

サーバーがユーザーに認可を求めるプロンプトを表示する必要があるかどうかを指定します。

このパラメーターを含めると、ユーザーが以前に認可を与えていた場合でも、アプリケーションを再認可するよう強制されます。省略した場合、ユーザーは初回使用時にのみ認可を求められます。

有効な値: admin_consent。この値は、クライアントに情報を返す前に、サーバーに同意画面を表示させます。

リクエスト例:

https://signin.alibabacloud.com/oauth2/v1/auth?
client_id=123****&
redirect_uri=https://example.com/authcallback/&
response_type=code&
scope=openid /acs/ccc&
access_type=offline&
state=123456****

レスポンスパラメーター:

パラメーター

説明

code

認可コード。

state

リクエストに含まれる state パラメーターの値。

レスポンス例:

GET HTTP/1.1 302 Found
Location: https://example.com/authcallback/?code=ABAFDGDFXYZW888&state=123456****

ステップ 2:コードとアクセストークンの交換

トークンエンドポイント: https://oauth.alibabacloud.com/v1/token。

リクエストパラメーター:

パラメーター

必須

説明

code

はい

認可コード。

ステップ 1 で受け取った認可コード。

client_id

はい

アプリケーションのクライアント ID。

redirect_uri

はい

リダイレクト URI。

この URI は、ステップ 1 の認可リクエストで指定された値と一致する必要があります。

grant_type

はい

OAuth 2.0 プロトコルに従い、値は authorization_code である必要があります。

client_secret

はい

アプリケーションのクライアントシークレット。

リクエスト例:

POST /v1/token HTTP/1.1
Host: oauth.alibabacloud.com
Content-Type: application/x-www-form-urlencoded
code=ABAFDGDFXYZW888&
client_id=123****&
client_secret=`your_client_secret`&
redirect_uri=https://example.com/authcallback/&
grant_type=authorization_code

レスポンスパラメーター:

パラメーター

説明

access_token

ユーザーに代わって Alibaba Cloud API へのアクセスを許可するトークン。アプリケーションはこのトークンをパースするべきではありません。API コールでそのまま渡してください。

アクセストークンはユーザーのアイデンティティを表し、アプリケーションはこのトークンを使用して Alibaba Cloud API にアクセスします。アプリケーションはトークンの意味を理解する必要はなく、直接使用できます。

expires_in

アクセストークンの有効期間 (秒単位)。

token_type

アクセストークンのタイプ。値は常に Bearer です。

id_token

ID トークン。

ユーザーのアイデンティティ情報を含む JWT (JSON Web Token) です。このトークンは、最初の認可リクエストの scope パラメーターに openid が含まれている場合にのみ返されます。

refresh_token

更新トークン。

このトークンは、最初の認可リクエストの access_type パラメーターが offline に設定されていた場合にのみ返されます。

scope

アクセストークンに付与されたスコープのスペース区切りリスト。

アプリケーションが openid 以外の認可スコープを必要とする場合は、返された scope の値にアプリケーションが必要とするすべてのスコープが含まれていることを確認する必要があります。

アプリケーションに必要な scope が付与されていない場合は、再度認可をリクエストする必要があります。これを行うには、ステップ 1 で説明されているように、https://signin.alibabacloud.com/oauth2/v1/auth から認可コードをリクエストし、prompt=admin_consent パラメーターを設定します。

レスポンス例:

{
  "access_token": "eyJraWQiOiJrMTIzNCIsImVu****",
  "token_type": "Bearer",
  "expires_in": "3600",
  "refresh_token": "Ccx63VVeTn2dxV7ovXXfLtAqLLERA****",
  "id_token": "eyJhbGciOiJIUzI1****",
  "scope": "openid /acs/ccc"
}

アクセストークンの更新

トークンエンドポイント: https://oauth.alibabacloud.com/v1/token。

リクエストパラメーター:

パラメーター

必須

説明

refresh_token

はい

最初のトークン交換で受け取った更新トークン。

client_id

はい

アプリケーションのクライアント ID。

grant_type

はい

OAuth 2.0 プロトコルに従い、値は refresh_token である必要があります。

client_secret

はい

アプリケーションのクライアントシークレット。

リクエスト例:

POST /v1/token HTTP/1.1
Host: oauth.alibabacloud.com
Content-Type: application/x-www-form-urlencoded
refresh_token=Ccx63VVeTn2dxV7ovXXfLtAqLLERAH1Bc&
client_id=123****&
client_secret=`your_client_secret`&
grant_type=refresh_token

レスポンスパラメーター:

パラメーター

説明

access_token

新しいアクセストークン。

expires_in

アクセストークンの有効期間 (秒単位)。

token_type

アクセストークンのタイプ。値は Bearer です。

レスポンス例:

{
  "access_token": "eyJraWQiOiJrMTIzNCIsImVu****",
  "token_type": "Bearer",
  "expires_in": "3600"
}

更新トークンの取り消し

Web アプリケーションが更新トークンを取得した後、ユーザーがサインアウトするか、アプリケーションからアカウントの接続を解除したときに、トークンを取り消す必要があります。

取り消しエンドポイント: https://oauth.alibabacloud.com/v1/revoke。

リクエストパラメーター:

パラメーター

必須

説明

token

はい

取り消す更新トークン。

client_id

はい

アプリケーションのクライアント ID。

client_secret

いいえ

アプリケーションのクライアントシークレット。