OAuth:安全で便利なAPIアクセスを実現する仕組み
今使っているスマホアプリを、他のサービスと連携して使いたい…。
これを安全に便利に実現しようとする仕組みが「OAuth」(オウオース
)です!FIDO認証に引き続いて、このOAuthによる「認可」、その先にあるOpenID Connectによる「認証」について、シリーズ化してご紹介したいと思います!
OAuthって何だろう?
まずは、OAuthから行きましょう!
あるアプリを使用しているときに、すでにある別サービス(GoogleとかInstagramとか)と連携することがあります。連携しようとすると、連携先からのメッセージ(「〇〇アプリにアクセスを許可しますか?」)が表示されて、連携先のリソースが使えるようになる。
こんなパターンを経験したことがありますね(本当は「認証」も含めてGoogleなどに依頼することが多いのですけれども)。
このように、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とはどんなものか、その概略をご消化しました!
次回からは、本当はもう少し複雑なやりとりを掘り下げていきます。
ではまた。
この記事が気に入ったらサポートをしてみませんか?