OAuth2.0について調べる必要がありざっくりだが理解したことを書いてみる。
OAuth2.0とは
RFC6479にはこう書かれている。
The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf.
OAuth 2.0 authorization frameworkはサードパーティ製のアプリケーションがとあるHTTPサービスへの制限されたアクセスを得ることをHTTPサービスとリソースオーナーとの承認という行為か、サードパーティアプリケーションに自身の代わりにアクセスすることを認めることで許可する。
(恐らくこんな感じのことを言っているはず)
要は、他のサービスにあるリソースへのアクセス権限をリソースの所持者が与えるというシステム。よく似たようなものでOpenIDというものがあるが、OpenIDは同一人物ということしか証明できない。OAuthはそれに加えリソースのアクセスを可能にするという違いがある。
何が嬉しいか
何が嬉しいかというと、パスワードを他のアプリケーションに渡していないにも関わらず本人確認とリソースへのアクセスが行えるということ。
パスワードを渡さないことで、必要のない権限の認可を防げる。
欠点
アプリケーション間でアカウントの紐づけがされてしまうためセキュリティリスクが存在する。しかしアカウントの紐づけは利便性に直結すると私は考えているので、ここはセキュリティリスクとトレードオフの関係にあると思う(あくまで私の意見)。
OAuth2.0のプロトコル
RFC6749のフロー内容が日本版Wikipediaに翻訳された形で記載されているので、そこを見たほうが正確だと思うのでWikipedia(2. プロトコル)を見てください。
終わり
理論的な部分は終わり。今度は実際にOAuth2.0を使ってみようかな。
コメント