OAuthをはじめる

  • 開発元が制作したAppがcafe24のAPIを利用するためには、認証/セキュリティの手順を先行させる必要があります。
  • cafe24の認証はOAuth2.0を提供、RFC6749の勧告に準拠しています。
  • 開発元のAppは、OAuthクライアントを必ず実装する必要があります。

OAuth 2.0の概要

  • 通常、インターネットサービスを利用する際、個人情報や保護されるべきコンテンツなどを守るため、コンテンツオーナーのIDとパスワードを用いてログインする必要があります。
    インターネットサービスの発展とともに、ECプラットフォーム間でのコンテンツの使用やシェアが必要になりました。
    そのため、既存方式のままでは、コンテンツオーナー自身のIDとパスワードをフラットフォーム上に入力しなければならない問題が発生しました。
    コンテンツオーナーは、IDとパスワードを入力せずに、自分が欲しいコンテンツのみをECプラットフォーム上に知らせたいという状況に直面することになりました。
    OAuth 2.0は、上記のような問題を解決させるために、第3のフラットフォームへコンテンツの使用権限を付与させるフレームワークであり、GoogleやFacebookなど多くのグローバル企業で採用している業界標準であります。
  •  
  • OAuthは、その流れを理解することがとても重要です。
  •  
  • 流れを説明する前に、まず主な役割について説明します。
OAuth 2.0の役割定義
用語 説明
Resource Owner
(リソースオーナー)
保護されたコンテンツ(ex: メール、カレンダー、メモ、アドレス帳)のオーナー本人を指します。
Client(クライアント) リソースオーナーの代わりにリソースサーバーに保護されたコンテンツをリクエストするアプリケーションです。
Resource Server
(リソースサーバー)
保護されたコンテンツを管理するサーバーです。リソースオーナーが権限を付与したことを証明するAccess Tokenを利用して保護されたコンテンツにアクセスすることができます。
  • その他、「権限付与サーバー: Authorization Server」、「認証サーバー: Authentication Server」などの役割があり、cafe24はのショップサーバーがそのような役割を代行しています。

OAuth 2.0の流れ

  • OAuthは、「code 発行」 > 「access token 発行」 > 「API 呼び出し」という順番で行われます。
  •  
  • Webサイト形態で作られたクライアントがあると想定します。
  • このクライアントは、リソースサーバーのデータを使用しようとします。
  • ① まず、リソースオーナーがWebブラウザ上でクライアントを最初に実行します。
  • ② クライアントは、データを使用するためにaccess tokenが必要とされるが、最初に実行するの際にはaccess tokenが存在しないため、権限の委任手続きが始まります。
  • ③ 委任手続きの完了後、access tokenに交換できるcodeが発行されます。
  •  
  • ここまでが上の水色の部分であり、この手続きは、必ずWebブラウザを通して進行されます。
  • 開発者は、Webブラウザを通して渡されたQuerystringからcodeを取得することができます。
  • ④ 取得したcodeをaccess tokenと交換すると ⑤ APIを呼び出してデータを 使用することができます。
  • このプロセスは、黄色いボックス部分に当たります。 クライアントが駆動されるサーバー上で、APIを使ってリソースサーバーにaccess token発行リクエストが必要です。
  •  
  • access tokenの有効期間は、とても短いので定期的に再発行してください。
  • ⑥ 再発行の際には、権限委任手続きは必要ありません。refresh tokenを利用してaccess tokenを再発行できます。
  •  
  • ここまでのOAuthの流れを理解したら、 OAuth Clientを直接実装することができます。

OAuth2.0 Clientを実装する

  • cafe24では、OAuthの役割を以下のように示しています。
OAuth 2.0の役割定義
標準用語 cafe24での用語
Resource Owner(リソースオーナー) ショップ運営者
Client(クライアント) App(Application)
Resource Server(リソースサーバー) cafe24ショップ
  • 下図は、OAuthの基本流れにdataの流れを一緒に表したのです。
  • この図とステップ別サンプル申込を参考にしてOAuth Clientを実装することでApp開発のためのすべての準備は完了です。