web-dev-qa-db-ja.com

OAuth2フロー-サーバーは認証サーバーで検証されますか?

私はOAuth2について頭を悩ませようと何度も読んでいましたが、それでも何か混乱しています。

クライアントがOAuthプロバイダー(Googleなど))で承認し、リソースサーバーがユーザーのプロファイルデータにアクセスできるようにすることを理解しました。その後、クライアントはリソースサーバーにアクセストークンを送信できますそして、リソースが返されます。

しかし、どのドキュメントでもカバーされていないように見えるのは、クライアントアプリがリソースサーバーにリソースを要求し、それにアクセストークンを渡したときに何が起こるかです。これまでに読んだことはすべて、リソースサーバーが要求されたリソースで応答するだけであると述べています。

しかし、それは巨大な穴のようです。確かにリソースサーバーは何らかの方法でアクセストークンを検証する必要があります。そうでなければ、古い要求を偽造して、古い、盗まれた、偽の、またはランダムに生成されたトークンを渡すだけで、それを受け入れるだけです。

これまでに読んだものは不完全だと感じているので、誰でも簡単にOAuth2の説明に従うことができますか?.

10
drekka

それを見つけた。スペックに埋もれています。リソースサーバーは認証サーバーでアクセストークンを検証する必要があるが、ドキュメントの範囲外であると彼らは言っています。残念ですが、トークンの検証は重要な部分だと思いました。

8
drekka

トークンの検証は通常、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

2
Howie Ross

トークンを検証する方法の仕様を読みます。

https://tools.ietf.org/html/rfc7662

これが役に立てば幸い-クエリ/問題に答えた場合、plsは答えをマークします

0
Chirag