見出し画像

OAuth:安全で便利なAPIアクセスを実現する仕組み

今使っているスマホアプリを、他のサービスと連携して使いたい…。

これを安全に便利に実現しようとする仕組みが「OAuth」(オウオース
です!FIDO認証に引き続いて、このOAuthによる「認可」、その先にあるOpenID Connectによる「認証」について、シリーズ化してご紹介したいと思います!

OAuthって何だろう?

まずは、OAuthから行きましょう!

あるアプリを使用しているときに、すでにある別サービス(GoogleとかInstagramとか)と連携することがあります。連携しようとすると、連携先からのメッセージ(「〇〇アプリにアクセスを許可しますか?」)が表示されて、連携先のリソースが使えるようになる。

こんなパターンを経験したことがありますね(本当は「認証」も含めてGoogleなどに依頼することが多いのですけれども)。

このように、OAuthとは、別サービスへのアクセス権の許可(認可)する仕組みです。

一目でわかる!OAuthの概要

では、OAuthは一体どんなことをしているのでしょう。

流れ図を示すと次の通りです。

OAuthの超簡略化した概念図

本当はもっと複雑なのですか、正確さを犠牲にして、やりたいことを単純化して示したものが上図です。あしからず。

この流れを定番の「画像シェア」の例で簡単に解説します。

1.アクセスを申請

Aサービスは、画像を「加工」できるアプリです。Bサービスは、画像を「保存」するサービスです。Bサービスのリソース(画像)をAサービスは、Bサービスの窓口(API)を通じて連携して使えたら便利ですね。

ということで、AサービスはBサービスに「連携させて!」とお願いします。

2.アクセストークンを返す

Bサービスのうち、アクセス許可(認可)を行うのが「認可サーバ」です。認可サーバは、「これを使ってアクセスしな」と「アクセストークン」なるものをAサービスに渡します。

3.APIでアクセスを要求

Aサービスは、ほくほくしながらBサービスのリソースサーバにアクセストークンを示して、「アクセスさせてください!」とお願いします。

4.APIでアクセス応答

Bサービスのリソースサーバは、アクセストークンを確認して「OK!このりリソースだったらアクセスしてどうぞ」と応じます。


だいたい、こんな感じです。怒られそうなくらい簡略化したやりとりですが、まずはOAuthで実現できることは何となく分かるかな、と思います。


はい、本日は、ここまで今回はOAuthとはどんなものか、その概略をご消化しました!

次回からは、本当はもう少し複雑なやりとりを掘り下げていきます。

ではまた。

この記事が気に入ったらサポートをしてみませんか?