ここでは、OAuth2.0の仕組みを解説します。
OAuth2.0は、2012年にRFC(Request For Comments)として発行された、リソースに対するアクセス権限の認可(Authorization)を行うためのオープンスタンダードです。
リソースとはサーバーが保持するクセス可能なファイルなどのことです。
OAuth2.0では、以下の4つの役割を考えます。
- リソースオーナー(resource owner)
- リソースサーバー (resource server)
- クライアント (client)
- 認可サーバー (authorization server)
リソースサーバーのリソースに対する認可を受けたもの。
リソースを保持しているサーバー。
リソースオーナーから認可を受けるもの。
リソースオーナーから信任され、認可を与えることができるサーバー。
クライアントがリソースサーバーのリソースにアクセスするまでの流れは以下のようになります。
- まずクライアントがリソースオーナーに認可サーバー経由で認可要求(Authorization Request)を出します。
- それを受けて、リソースオーナーは認可要求を許諾する旨の返答として認可グラントを、認可サーバー経由でクライアントに送ります。
- クライアントは認可サーバーに認可グラントを送ることでアクセストークンを要求します。
- 認可サーバーはクライアントの認証と認可グラントの正当性の検証を行い、問題なければアクセストークンを発行します。
- クライアントはアクセストークンにより認証を受けることで、リソースサーバーに対して、保護されたリソースへのアクセスを要求します。
- リソースサーバーは、アクセストークンが正当であれば、クライアントのリクエストを受諾します。
- クライアントはリソースサーバーのリソースにアクセスします。
以上、今回は、OAuth2.0の仕組みについて解説しました。