OAuthについて

最近は認証周りについて調べていることが多いのでOAuth(おーおーす)について簡単に調べたことを書いてみます。

概要

Wikipediaより
OAuth (オー オース) は、権限の認可(authorization)を行うためのオープンスタンダードである。

んーむずいですね。
アクセストークンを行うためのプロトコルと言っている人もいました。
厳密な定義はよくわかりませんが、どんなことをしてるのか見てみましょう。

セキュリティがばがばなサーバ

あるユーザのデータを所持しているサーバがあって、そこにクライアントアプリからそのデータをリクエストするモデルを考えてみましょう。

サーバ  <ーーデータくださいーー クライアント
     ーー  どうぞ  ーー>

このままだと誰でもデータを持っていかれてしまいますよね。

そこでアクセストークンを使用します。

アクセストークン

クライアントアプリがユーザのデータをリクエストするときに、アクセストークンを提示します。サーバはそのアクセストークンをチェックして、データを渡していいユーザなのか検証を行います。

サーバ  <ーー(アクセストークン)データくださいーー クライアント
このアクセス
トークンなら
大丈夫そう
     ーー  どうぞ  ーー>

これなら悪意のあるクライアントアプリがいてもトークンで検証するので、指定のユーザだけにデータを渡せますね。

アクセストークンを作成する

上記のやりとりをするためにはアクセストークンを作ってユーザに渡さないといけません。
そのためクライアントはまずトークンを発行するサーバにリクエストを送り、アクセストークンを受け取ります。

認可サーバ <ーートークンくださいーー クライアント
      ーー  どうぞ  ーー>

この部分のところを標準化したのがOAuthです。
セキュリティを考える人は本当にすごいですね!

コメントを残す

%d人のブロガーが「いいね」をつけました。