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

Drive and Photo Service:Web サーバー アプリケーションの OAuth 2.0 アクセス

最終更新日:Nov 09, 2025

このトピックでは、OAuth 2.0 を使用して Web サーバーアプリケーションから Drive and Photo Service (PDS) にアクセスする方法について説明します。

OAuth 2.0 の概要

OAuth 2.0 を使用すると、アカウントのパスワードを明かすことなく、サードパーティのサービスにリソース情報の取得を権限付与できます。

OAuth 2.0 は、認証コード、暗黙的、リソース所有者パスワード資格情報、およびクライアント資格情報の認証方式をサポートしています。認証コード方式は、最高レベルのセキュリティを提供します。このトピックでは、認証コード方式を使用します。

次の図は、Authorization Code メソッドを使用した OAuth 2.0 の権限付与プロセスを示しています。

a2

Web サーバー アプリケーションのアクセス プロセス

image

プロセス:

  1. ログインと承認

    ユーザーが Web サーバー アプリケーションにアクセスします。Web サーバー アプリケーションは、アクセス リクエストを認証サーバーにリダイレクトします。ユーザーは、Web サーバー アプリケーションを承認するかどうかを決定するように求められます。

  2. アクセストークンの取得

    1. ユーザーが Web サーバー アプリケーションの承認に同意すると、認証サーバーはアクセス リクエストをアプリケーションで指定されたリダイレクト URI にリダイレクトし、認証コードを生成します。

    2. 認証コードを受信した後、Web サーバー アプリケーションは認証サーバーにアクセストークンをリクエストします。このようにして、ユーザーはアクセストークンを取得します。

  3. リソースへのアクセス

    ユーザーはアクセストークンを使用して、Web サーバー アプリケーションのフロントエンドで PDS API にアクセスします。

前提条件

  • OAuth 2.0 をサポートするサービスが準備されていること。

  • [PDS 開発者版] がアクティブ化されていること。詳細については、「PDS を使い始める」をご参照ください。

手順

ステップ 1: アプリケーションの ID とシークレットを取得する

  1. PDS コンソールにログインします。左側のナビゲーションウィンドウで、[Drive And Photo Service (開発者版)] > [ドメイン] を選択します。

  2. 使用するドメインを見つけ、[詳細] 列の [詳細] をクリックします。

  3. アプリケーションを作成します。

    説明

    使用可能なアプリケーションがない場合は、後続の操作を実行する前にアプリケーションを作成してください。

    1. ドメイン詳細ページで、[アプリケーション] タブをクリックし、[アプリケーションの作成] をクリックします。

    2. 必要な情報を入力し、[OK] をクリックします。

      種類パラメーターには、WebServer(Web サーバー アプリケーション)を選択します。

      image

  4. アプリケーション リストで、作成したアプリケーションの [ID](client_id)と [シークレット](client_secret)を表示します。

    重要

    シークレットは機密にしておく必要があります。

ステップ 2: OAuth 2.0 ベースのログインを承認する

  1. 承認パラメーターを設定する

    権限付与を完了していないユーザーがブラウザを使用して Web サーバーアプリケーションにアクセスする場合、アプリケーションは権限付与のリクエストを構築する必要があります。リクエストには、アプリケーションの client_id と権限のスコープが含まれます。リクエストはユーザーから PDS 権限付与サーバーに送信され、ユーザーはアプリケーションに必要な権限を付与できます。

    リクエストの例:

    GET /v2/oauth/authorize?client_id=<ID>&redirect_uri=<redirect_uri>&login_type=<login_type>&scope=<scope>&response_type=code&state=[state] HTTP/1.1
    Host: {domainId}.api.aliyunpds.com

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

    パラメーター

    必須

    説明

    client_id

    はい

    アプリケーション ID。ID の取得方法の詳細については、「アプリケーション ID とシークレットの取得」をご参照ください。

    redirect_uri

    はい

    コールバック URL。これは、権限付与後にユーザーがリダイレクトされる URL です。例: https://example.com/callback

    権限付与が成功すると、ユーザーはこの URL にリダイレクトされ、これにはワンタイム検証コードが含まれます。例: https://example.com/callback?code=xxxx

    説明

    コールバック URL が、アプリケーションの作成時に指定した OAuth 2.0 コールバック URL と一致していることを確認してください。

    scope

    いいえ

    アプリケーションに必要な操作の権限を指定するスコープ。スコープは、アプリケーションの作成時に指定したスコープのサブセットであり、同意ページに表示されます。詳細については、「スコープ」をご参照ください。

    説明

    アクセストークンによって表される権限は、ユーザーの権限とスコープで指定された権限の共通部分です。

    response_type

    はい

    静的フィールド。値を code に設定します。

    state

    いいえ(推奨)

    リクエストにこのパラメーターが含まれている場合、認証サーバーはクロスサイトリクエストフォージェリ (CSRF) 攻撃を防ぐためにそのまま返します。例: https://example.com/callback?code=xxxx&state=abc

    login_type

    はい

    ログイン オプション。有効な値:

    • default: 携帯電話番号ログインなどのログイン方法をサポートする包括的なログイン ページを提供します。

    • phone: 携帯電話番号ログイン。

    • ding: DingTalk でのログイン。

    • ldap: Lightweight Directory Access Protocol(LDAP)または Active Directory(AD)に基づくログイン。

    • wx: WeChat アカウントでのログイン。

    • ram: Resource Access Management(RAM)ユーザーとしてのログイン。

    • lark: Lark でのログイン。

    • saml: Security Assertion Markup Language(SAML)プロトコルに基づくサードパーティ アカウントでのログイン。

    hide_consent

    いいえ

    最初のログイン成功後に、後続のログイン試行でユーザー承認ページをスキップするかどうかを指定します。有効な値:

    • true(デフォルト): 承認ページは表示されません。ユーザーは次のステップに直接進みます。

    • false: 承認ページが表示されます。

    lang

    いいえ

    ページが表示される言語。有効な値:

    • zh_CN(デフォルト): 簡体字中国語

    • en_US: 英語

  2. 同意ページ

    このステップでは、ユーザーは Web サービスアプリケーションに権限を付与するかどうかを決定します。ユーザーが権限付与を拒否した場合、プロセスは停止します。ユーザーが権限を付与した場合、ユーザーは最初のリクエストの redirect_uri にリダイレクトされます。例: https://example.com/callback?code=xxxx&state=abc

  3. 認証コードをアクセストークンと交換する

    Web サービスアプリケーションは、フロントエンドとバックエンドで構成されます。フロントエンドで https://example.com/callback などのリダイレクト URL を設定できます。フロントエンドが ?code=xxx パラメーターを受信した後、コードを解析してバックエンドに渡す必要があります。その後、バックエンドは次の API 操作を呼び出してアクセストークンを取得し、それをフロントエンドに返します。

    リクエストの例:

    POST /v2/oauth/token HTTP/1.1
    Host: {domainId}.api.aliyunpds.com
    Content-Type: application/x-www-form-urlencoded
    
    code=xxx\
    &client_id=your_app_id\
    &client_secret=your_app_secret\
    &redirect_uri=https://example.com/callback\
    &grant_type=authorization_code

    パラメーター

    必須

    説明

    code

    はい

    ワンタイム code。一度使用すると有効期限が切れます。

    client_id

    はい

    アプリケーション ID。ID の取得方法の詳細については、「アプリケーション ID とシークレットの取得」をご参照ください。

    client_secret

    はい

    アプリケーションの作成時に生成された secret

    redirect_uri

    はい

    コールバック URL。これは、権限付与後にユーザーがリダイレクトされる URL です。例: https://example.com/callback

    説明

    コールバック URL が、アプリケーションの作成時に指定した OAuth 2.0 コールバック URL と一致していることを確認してください。

    grant_type

    はい

    権限付与タイプ。これは静的フィールドです。値を authorization_code に設定して、認証コード権限付与タイプを示します。

    戻り値:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
      "access_token":"Aiasd76*****",
      "expires_time":"2019-11-11T10:10:10.009Z",
      "expire_in": 7200,
      "token_type":"Bearer",
      "refresh_token":"LSLKdk*******"
    }

    パラメーター

    位置

    タイプ

    必須

    説明

    access_token

    本文

    文字列

    はい

    生成された access_token。有効期間は 2 時間です。

    refresh_token

    本文

    文字列

    はい

    access_token を更新するために使用されるトークン。有効期間は長く、通常は 7 日間です。

    expires_time

    本文

    文字列

    はい

    access_token の有効期限が切れる時間。

    expire_in

    本文

    long

    はい

    access_token の有効期間 (秒単位)。デフォルト値: 7200。

    token_type

    本文

    文字列

    はい

    トークンタイプ。これは値が Bearer の静的フィールドです。

  4. PDS API を呼び出す

    Web フロントエンドは access_token を使用して PDS API を直接呼び出すことができます。リクエストの Authorization ヘッダーに access_token を含める必要があります。

    詳細については、「呼び出し方法」をご参照ください。

アクセストークンを更新する

リクエストの例:

POST /v2/oauth/token HTTP/1.1
Host: {domainId}.api.aliyunpds.com
Content-Type: application/x-www-form-urlencoded

refresh_token=xxx\
&client_id=xxx\
&client_secret=xxx\
&grant_type=refresh_token

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

パラメーター

必須

説明

refresh_token

はい

認証コードをアクセストークンと交換したときに返される更新トークン。

client_id

はい

アプリケーション ID

grant_type

はい

静的フィールド。値を refresh_token に設定します。

client_secret

はい

アプリケーションのシークレット。アプリケーションの認証に使用されます。

戻り値:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "access_token":"xxxxxxxxx",
  "refresh_token": "xxxxx",
  "expires_in":7200,
  "expire_time":"2019-11-11T10:10:10.009Z",
  "token_type":"Bearer"
}

名前

位置

タイプ

必須

説明

access_token

本文

文字列

はい

生成された access_token。有効期間は 2 時間です。

refresh_token

本文

文字列

はい

access_token を更新するために使用されるトークン。有効期間は長く、通常は 7 日間です。

expires_time

本文

文字列

はい

access_token の有効期限が切れる時間。

expire_in

本文

long

はい

access_token の有効期間 (秒単位)。デフォルト値: 7200。

token_type

本文

文字列

はい

トークンタイプ。これは値が Bearer の静的フィールドです。

FAQ

認証コードの有効期間はどのくらいですか?

認証コードは 10 分間有効で、一度使用すると無効になります。

アクセストークンの有効期間はどのくらいですか?

アクセストークンは 2 時間有効です。

アクセストークンの有効期限が切れた場合はどうすればよいですか?

更新トークンを使用して新しいアクセストークンを取得できます。

関連情報