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
付与タイプによって異なりますか?どうやって?
OAuth 2.0仕様に従って、承認エンドポイントとトークンエンドポイントには異なる目的があります。
承認エンドポイントは、リソース所有者(ユーザー)がログインしてクライアントに承認を与える場所です(例:ブラウザーで実行されているWebアプリケーション、またはモバイルデバイスで実行されているアプリ)。これは通常、リソース所有者のユーザーエージェント(例:ブラウザー)が認証のためにIDサーバー(承認サーバー)にリダイレクトされるシナリオで使用されます。リソース所有者のユーザーエージェントは、アクセストークンに直接アクセスできます。
トークンエンドポイントは、クライアント(サーバー側APIまたはモバイルアプリなど)が呼び出して、認証コード、クライアントID、クライアントシークレットをアクセストークンと交換する場所です。このシナリオでは、ユーザーエージェントには認証コードのみが提供され、アクセストークンへの直接アクセスは提供されません。クライアントは、承認サーバーからクライアントIDとクライアントシークレットにアクセスできる信頼できる当事者です(そのため、サーバー側APIをクライアントとして説明しました)。
より良い説明がある これ の記事を読んでください。