web-dev-qa-db-ja.com

Spring OAuthで/ oauth / authorizeと/ oauth / tokenはどのように相互作用しますか?

Spring OAuthの詳細な調査を行っていますが、矛盾する情報が見つかりました。誰かが明確にしてもらえますか?

具体的には、 このチュートリアル は、/oauth/tokenエンドポイントは、クライアントアプリに更新トークンを付与する前に、ユーザー名とパスワードを処理します。対照的に、 Spring OAuth Developer Guide/oauth/authorizeおよび/oauth/tokenエンドポイントですが、それらがどのように機能するかについては具体的にはわかりません。

/oauth/authorizeを100%実行するusername/password/nOtherFactorsチェックしてから、/oauth/tokenエンドポイントを使用してクライアントに更新トークンを送信し、クライアントが更新トークンを/oauth/token 終点?

または、すべて/oauth/token 終点?

/oauth/authorizeおよび/oauth/token付与タイプによって異なりますか?どうやって?

12
CodeMed

OAuth 2.0仕様に従って、承認エンドポイントとトークンエンドポイントには異なる目的があります。

承認エンドポイントは、リソース所有者(ユーザー)がログインしてクライアントに承認を与える場所です(例:ブラウザーで実行されているWebアプリケーション、またはモバイルデバイスで実行されているアプリ)。これは通常、リソース所有者のユーザーエージェント(例:ブラウザー)が認証のためにIDサーバー(承認サーバー)にリダイレクトされるシナリオで使用されます。リソース所有者のユーザーエージェントは、アクセストークンに直接アクセスできます。

トークンエンドポイントは、クライアント(サーバー側APIまたはモバイルアプリなど)が呼び出して、認証コード、クライアントID、クライアントシークレットをアクセストークンと交換する場所です。このシナリオでは、ユーザーエージェントには認証コードのみが提供され、アクセストークンへの直接アクセスは提供されません。クライアントは、承認サーバーからクライアントIDとクライアントシークレットにアクセスできる信頼できる当事者です(そのため、サーバー側APIをクライアントとして説明しました)。

より良い説明がある これ の記事を読んでください。

15
Soma Yarlagadda