Web社会を支える認証・認可~OAuth~

OAuth

OAuthの登場人物は3つです。

・ユーザー
・認証サーバー
・サービスサーバー

一連のフローをクライアントアプリからfacebookに投稿する例で説明します。

①クライアントアプリがアクセストークンを要求
クライアントアプリを操作しているユーザーがfacebookに投稿ボタンを押下した場合に認証サーバーに対してfacebookにアクセスするためのアクセストークンの発行依頼を送付します。

②認証サーバーからユーザーに対してアクセストークンの発行を許可するか確認
実際はユーザーといってもクライアントアプリに確認画面を出すということです。「クライアントアプリにfacebookへのアクセスを許可しますか」のようなメッセージを見たことがあるかと思います。これがその処理になります。

③アクセスを許可
許可することでその情報が認証サーバーに伝わります。

④許可してアクセストークンを発行
認証サーバーでアクセストークンの発行が行われます。

⑤アクセストークンの共有
クライアントアプリがリソースサーバーにアクセスしたときにアクセストークンを検証する必要があるためリソースサーバーにアクセストークンを共有しておきます。

⑥アクセストークンの送付
クライアントアプリにアクセストークンを送付します。

⑦リソースサーバーにアクセス
アクセストークンと共にAPIアクセスを実行します。

⑧アクセストークンの検証
送られてきたアクセストークンがユーザーの許可を得たものであるかを認証サーバーに検証する。

⑨リソースの取得
アクセストークンが検証されたらリソースを取得することができます。

まとめ

いかがだったでしょうか。
今回は認証・認可についてご紹介しました。
それではまたお会いしましょう。