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

Resource Access Management:Web アプリケーションから Alibaba Cloud API にアクセスする

最終更新日:Dec 02, 2025

このトピックでは、Open Authorization (OAuth) 2.0 を使用して Web アプリケーションから Alibaba Cloud API にアクセスする方法について説明します。

前提条件

  • Web アプリケーションが作成されています。Web アプリケーションの名前、OAuth スコープ、およびコールバック URL が指定されています。詳細については、「アプリケーションを作成する」をご参照ください。Web アプリケーションの作成後、次の図に示すように、アプリケーションリストでアプリケーション ID (client_id) を表示できます。应用ID

    説明

    Web アプリケーションは、Alibaba Cloud アカウント内の Alibaba Cloud リソースにアクセスできます。Web アプリケーションが他の Alibaba Cloud アカウントに属する Alibaba Cloud リソースにアクセスするようにするには、アプリケーションに必要な権限が付与されていることを確認してください。

  • Web アプリケーションのアプリケーションシークレットが作成されています。詳細については、「アプリケーションシークレットを作成する」をご参照ください。シークレットは、Web アプリケーションの作成時にのみ表示され、後続のクエリでは使用できません。後で使用するためにシークレットを保存することをお勧めします。

プロセス

基本流程

  1. ユーザーがブラウザを使用して Web アプリケーションにログインします。

  2. Web アプリケーションは、ユーザーを Alibaba Cloud OAuth 2.0 サービスにリダイレクトし、アプリケーションの URL をブラウザに送信します。

    説明

    ユーザーが Alibaba Cloud にログインしていない場合、Web アプリケーションはユーザーを Alibaba Cloud ログインページにリダイレクトします。

  3. ユーザーは、ブラウザを使用して Alibaba Cloud OAuth 2.0 サービスにログインし、認証コードをリクエストします。

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

  5. Web アプリケーションは、Alibaba Cloud OAuth 2.0 サービスからユーザーに対応するアクセストークンをリクエストします。リクエストには認証コードが必要です。

  6. Alibaba Cloud OAuth 2.0 サービスは、取得したアクセストークンを Web アプリケーションに送信します。

  7. Web アプリケーションは、アクセストークンを使用して Alibaba Cloud の API にアクセスします。

    説明

    アクセストークンにはユーザーの ID 情報が含まれており、Web アプリケーションがユーザーのリソースにアクセスするために使用できます。

アクセストークンを取得する

手順 1: Web アプリケーションは、認証コードを取得するためにユーザーを Alibaba Cloud OAuth 2.0 サービスにリダイレクトします

認証コードを取得するためのエンドポイントは https://signin.alibabacloud.com/oauth2/v1/auth です。

次の表に、リクエストパラメータを示します。

パラメータ

必須

説明

client_id

はい

Web アプリケーションの ID。

redirect_uri

はい

Web アプリケーションのリダイレクト Uniform Resource Identifier (URI)。

response_type

はい

レスポンスのタイプ。値を code に設定します。

scope

いいえ

OAuth スコープのスペース区切りリスト。このパラメータを空のままにすると、Web アプリケーションはすべてのスコープへのアクセスをリクエストします。

access_type

いいえ

Web アプリケーションのアクセスタイプ。有効な値:

  • online: Web アプリケーションはアクセストークンのみをリクエストします。

  • offline: Web アプリケーションはアクセストークンと更新トークンをリクエストします。更新トークンを使用すると、ビジネス要件に基づいて新しいアクセストークンを複数回取得できます。

デフォルト値:online

state

いいえ

リクエストとレスポンスの両方で使用される値。クロスサイトリクエストフォージェリ (CSRF) 攻撃を防ぐため、または Web アプリケーションと Alibaba Cloud OAuth 2.0 サービス間の状態を保持するために、state パラメータを nonce として構成できます。このパラメータをランダムな文字列に設定すると、Alibaba Cloud OAuth 2.0 サービスは後で使用するためにレスポンスで state の値を返します。

prompt

いいえ

サーバーがユーザーに必要な権限を Web アプリケーションに付与するように求めるかどうかを指定します。

このパラメータを指定すると、ユーザーは Web アプリケーションに必要な権限を付与する必要があります。Alibaba Cloud アカウントが既に Web アプリケーションに必要な権限を付与している場合でも、ユーザーは Web アプリケーションに必要な権限を付与する必要があります。このパラメータを空のままにすると、Alibaba Cloud アカウントが Web アプリケーションを初めて使用するときに、Alibaba Cloud アカウントのみが Web アプリケーションに必要な権限を付与する必要があります。

値を 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: Web アプリケーションは認証コードを使用して、Alibaba Cloud OAuth 2.0 サービスからユーザーに対応するアクセストークンをリクエストします

アクセストークンをリクエストするためのエンドポイントは https://oauth.alibabacloud.com/v1/tokenです。

次の表に、リクエストパラメータを示します。

パラメータ

必須

説明

code

はい

手順 1 のレスポンスから取得した認証コード。

client_id

はい

Web アプリケーションの ID。

redirect_uri

はい

認証コードの取得に使用される URI。リダイレクト URI は、手順 1 のリクエストのリダイレクト URI と同じである必要があります。

grant_type

はい

値を authorization_code に設定します。

client_secret

はい

Web アプリケーションがアクセストークンをリクエストするときに Web アプリケーションを認証するために使用されるアプリケーションシークレット。

リクエスト例:

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

返されたアクセストークン。

Web アプリケーションはこのトークンを使用して Alibaba Cloud API にアクセスできます。

expires_in

アクセストークンの残りの有効期間。単位:秒。

token_type

アクセストークンのタイプ。有効な値:Bearer

id_token

ID トークン。

値は JSON Web トークン (JWT) です。認証コードを取得するために開始されたリクエストの scope パラメータの値に openid が含まれている場合、ID トークンが返されます。

refresh_token

更新トークン。

認証コードを取得するために開始されたリクエストで access_type パラメータが offline に設定されている場合、更新トークンが返されます。

scope

取得した認証コードの実際の認証スコープ。

Web アプリケーションで要求される認可スコープが openid スコープに限定されない場合は、要求されるスコープが scope パラメーターの値に含まれているかどうかを確認します。

Web アプリケーションが scope パラメーターで指定された範囲にアクセスできない場合は、権限を再付与してください。権限を再付与するには、ステップ 1https://signin.alibabacloud.com/oauth2/v1/auth を使用して認証コードを要求するときに、prompt parameter to 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

はい

Web アプリケーションの ID。

grant_type

はい

値を refresh_token に設定します。

client_secret

いいえ

Web アプリケーションがアクセストークンをリクエストするときに Web アプリケーションを認証するために使用されるアプリケーションシークレット。

リクエスト例:

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

新しいアクセストークン。Web アプリケーションはこのトークンを使用して Alibaba Cloud API にアクセスできます。

expires_in

アクセストークンの残りの有効期間。単位:秒。

token_type

アクセストークンのタイプ。有効な値:Bearer

レスポンス例:

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

更新トークンを取り消す

ユーザーが Web アプリケーションからログアウトしたり、Web アプリケーションからアカウントを削除したりする場合は、アプリケーションの更新トークンを取り消す必要があります。

リフレッシュトークンを取り消すためのエンドポイントは https://oauth.alibabacloud.com/v1/revoke です。

次の表に、リクエストパラメータを示します。

パラメータ

必須

説明

token

はい

取り消す更新トークン。

client_id

はい

Web アプリケーションの ID。

client_secret

いいえ

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