REST API OAuth API
最終更新日 2015-9-1

認証とトークンについて

認証とトークンについて説明します。

認証プロバイダーとしてのアピアリーズ

アピアリーズでアプリを公開し、おなじようにアピアリーズを利用しているエンドユーザが
そのアプリを使うとき、エンドユーザが許可するのであれば、アプリは、そのアプリを利用するエンドユーザの
プロフィール情報にアクセスすることが可能です。
この場合、アピアリーズは「認証プロバイダー」として機能し、そのための認証・認可の仕組みを提供します。

アプリが、アプリ利用者であるエンドユーザのプロフィール情報にアクセスする場合は 「アピアリーズユーザ API」 を使用しますが、
その認証および認可は 「アピアリーズ認証 API」 によって管理されます。したがってアプリ利用者であるエンドユーザの情報にアクセスする際は
いつも最初に「アピアリーズ認証 API」をもちいてアクセストークンを入手する必要があります。
アプリに与えられる権限レベル(アクセスレベル)はそのアクセストークンによって決定されます。

アクセスする対象がデータストアに格納されたエンドユーザのデータである場合は、そのデータが格納されている
コレクション毎に権限レベル(アクセスレベル)を決定することも可能です。

準拠するプロトコル

アピアリーズは、認証・認可のプロトコルとして OAuth 2.0 draft-ietf-oauth-v2-25 に準拠しています(一部未対応の部分があります。2012年3月現在)。OAuth API については該当の OAuth 2.0 仕様に沿った OAuth クライアントで利用することができます。

OAuth クライアントタイプと認可タイプ

管理画面でアプリを新規作成する際に、OAuth クライアントタイプ(CONFIDENTIALもしくはPUBLIC)を選択します。そこで選択された OAuth クライアントタイプに応じ、OAuth2.0 プロトコルの認可タイプおよび認可エンドポイントが決まります。次の表を参考に OAuth クライアントタイプを選択し、OAuth API で使用する認可エンドポイントを確認してください。

OAuth API におけるOAuth クライアントタイプと認可タイプの関係

OAuth クライアントタイプ 認可タイプ 認可エンドポイント 用途
CONFIDENTIAL 認可コード 認可コードグラントエンドポイント クライアントの認証情報への制限アクセスを伴ったセキュアなサーバ上に実装されたWebアプリ用
PUBLIC インプリシット(=暗黙の) インプリシットグラントエンドポイント インストールして利用するネイティブアプリもしくはブラウザベースのアプリ用

発行されるアクセストークンの種類

API へのアクセスには種類の異なるアクセストークンが必要になります。

ユーザトークンとストアトークンの発行は OAuth2.0 に準拠した方法により行われ、発行プロセスのなかでアプリ利用者による明示的な許可が必要になります。

ユーザトークン

アピアリーズ利用者の情報にアクセスするためのトークンであり、「アピアリーズユーザ API」で使用します。アプリとそのアプリの利用者の組ごとに発行されます。
アプリ利用者が認可した場合に限り、アプリ提供者にプロフィール情報を提供します。

ストアトークン

データストアにおけるデータ作成時にアプリ利用者にひもづいたデータとして作成されます。データストア関連 API である「JSON オブジェクト API」または「ファイル API」で使用しし、アプリとアプリ利用者の組ごとに発行されます。またアプリ利用者でしかアクセスできないデータ領域が自動生成されます。

アプリトークン

データストアにおいてアプリ利用者のサインイン不要な操作での使用を目的として発行されるトークンであり、データストア関連 API である「JSON オブジェクト API」「ファイル API」「会員 API」または「プッシュ API」で使用します。データストアのコレクションがすべてのアクセスを許可するアクセス権限で設定されている必要があります。またこのトークンはアプリ毎に発行されます。