たくろぐ!

世界一のチラ裏

OAuthについて調べてみた

注釈

この記事は音声認識ソフトを利用しております。

読みづらい部分がありますが、ご了承ください。

OAuth徹底入門

これから認証や認可に関しての本の紹介をしたいと思います。

OAuth徹底入門という本です。

この本は大きく4部16章に分かれています。

まず第一部としてそもそもOAuthって何ということを話します。

次に第二部では環境構築します。

認可を取得するにあたっていろいろなですね付与方式というものがありましてその説明もこの中でします。

この環境構築でOAuthの大まかなワークフローが理解できます。

例えば認可サーバというものや、保護対象リソース、アクセストークンやクライアントという考え方が理解できます。

次の第三部ではOAuthを実装するにあたっての注意点としていろいろな脆弱性を紹介します。

そして最後の第4部これが11章から16章までなんですがこのOAuthの応用的な使い方について紹介します。

この中でOAuthを使ったユーザー認証を紹介します。

OAuth自体は認可システムですが、これを応用してOpenID connectという認証も備えたシステムを構築することができます。

OAuthとは

では早速始めていこうと思います。

最初にOAuthとは何かについて話そうと思います。

このOAuthというのは、簡単に言えば権限委譲するためのプロトコルです。

説明するにあたり、構成要素を考えてみたいと思います。

1つはリソース所有者です。

このリソース所有者とはAPIのアクセス権をもちそのAPIではアクセス権を以上できる所有者のことです。

次に保護対象リソースです。

この保護対象リソースとはリソース所有者がアクセス権を持っているリソースのことです。

多くの場合、なんらかのWeb APIになります。

次にクライアントです。

一般的なクライアントとは違って、ここでの文脈のクライアントというのは、リソース所有者の代わりに保護対象リソースにアクセスするソフトウェアのこと指します。

これらを踏まえてOAuthについて簡単に説明すると、

まずリソース所有者はブラウザでクライアントにアクセスします。

そこでリソース所有者はそのクライアントから操作させたい保護対象リソースのクレデンシャルをわたします。

そうすることでそのクライアントは保護対象リソースにアクセスしその権限でいろいろな操作をすることができるようになります。

ただしこの場合だとクライアントと保護対象リソースが同じドメインの場合は問題ありませんが、クライアントと保護対象リソースが別ドメインだった場合セキュリティー上のリスクが伴います。

そこでもう一つ保護対象リソースにアクセスするための権限を与える認可サーバというものができました。

この認可サーバーは保護対象リソースに信頼されているサーバーで特別な目的を持ったセキュリティクレデンシャルをクライアントに発行するものです。

ここでいうセキュリティクレデンシャルというのはアクセストークンのことです。

このアクセストークンというのは文字通り、保護対象リソースにアクセスするための通行券みたいなものです。

まずリソース所有者はブラウザでクライアントにアクセスします。

クライアントは認可サーバニに問い合わせをしてリソース所有者に権限を付与するように依頼します。

依頼を受けた認可サーバーはクライアントに対してアクセストークンを送ります。

その後クライアントが保護対象リソースにアクセスし、認可サーバからもらったアクセストークンを渡すことでリソースを操作することができます。