「暗黙」という言葉を誤解しないよう注意してください。OAuthでは、現在、SPAでのアクセストークンの取得に暗黙の付与を使用することを奨励していませんが、フォームPOSTを使った暗黙フローで対処するシナリオは、これとはまったく異なり、SPAで使用する場合のようなセキュリティ上の問題が生じません 。具体的に言うと、フォームPOSTを使った暗黙フローは、SPAとは対照的に従来型のWebアプリに適用されます。また、取得するのはアクセストークンではなく、使用目的のまったく異なるIDトークンです。このフローは、POSTを使用し、(SPAのように)トークン情報がブラウザー履歴攻撃やヘッダーのリダイレクトなどにさらされる可能性のあるURLフラグメントにトークンを配置することはありません。
仕組み
このフローは、ログインのみのユースケースに使用します。ユーザーのログイン時にAPIを呼び出せるようにアクセストークンを要求する場合は、PKCEを使った認可コードフローまたはハイブリッドフローを使用してください。

- ユーザーはアプリで [Login(ログイン)] をクリックします。
- Auth0の SDKは、ユーザーをAuth0認可サーバー (
/authorize
endpoint)にリダイレクトし、要求された資格情報の種類を示すid_token
のresponse_type
パラメータを渡します。また、セキュリティを確保するためにform_post
のresponse_mode
パラメータも渡します。 - Auth0の認可サーバーがユーザーをログインにリダイレクトして、認可を促します。
- ユーザーは構成されたログインオプションの1つを使用して認証を行い、Auth0がアプリに与える許可をリストした同意ページが表示されることもあります。
- Auth0認可サーバーは、IDトークンを添えて、ユーザーをリダイレクトでアプリへ戻します。
実装方法
OktaのExpress OpenID Connect SDKを使用して、フォームポストを使用した暗黙フローを安全に実装することができます。Auth0 Single-Page App SDKとSingle-Page Quickstartsは、新しい推奨に従い、PKCEを使った認可コードフローを使用します。