私はOAuth2について頭を悩ませようと何度も読んでいましたが、それでも何か混乱しています。
クライアントがOAuthプロバイダー(Googleなど))で承認し、リソースサーバーがユーザーのプロファイルデータにアクセスできるようにすることを理解しました。その後、クライアントはリソースサーバーにアクセストークンを送信できますそして、リソースが返されます。
しかし、どのドキュメントでもカバーされていないように見えるのは、クライアントアプリがリソースサーバーにリソースを要求し、それにアクセストークンを渡したときに何が起こるかです。これまでに読んだことはすべて、リソースサーバーが要求されたリソースで応答するだけであると述べています。
しかし、それは巨大な穴のようです。確かにリソースサーバーは何らかの方法でアクセストークンを検証する必要があります。そうでなければ、古い要求を偽造して、古い、盗まれた、偽の、またはランダムに生成されたトークンを渡すだけで、それを受け入れるだけです。
これまでに読んだものは不完全だと感じているので、誰でも簡単にOAuth2の説明に従うことができますか?.
それを見つけた。スペックに埋もれています。リソースサーバーは認証サーバーでアクセストークンを検証する必要があるが、ドキュメントの範囲外であると彼らは言っています。残念ですが、トークンの検証は重要な部分だと思いました。
トークンの検証は通常、2つの方法のいずれかで処理されます。
1)トークンは事前共有鍵を使用して暗号で署名されています。これには、分散して増殖するシステムで使用するための明らかな短所があります。
2)Authorization Server(AS)は、トークン検証またはイントロスペクションのためのエンドポイントを提供します。この方法は、2015年10月にIETF RFC 7662で標準化されました。以下を参照してください https://tools.ietf.org/html/rfc7662
このスタックオーバーフローの質問/回答には、GoogleとGithubの例が含まれています。 https://stackoverflow.com/questions/12296017/how-to-validate-an-oauth-2-0-access-token-for-a -resource-server