2

OpenID Connect セッション (質問時のドラフト 23)では、次のように述べています。

ログアウト エンドポイントで、OP はエンドユーザーに OP からもログアウトするかどうかを尋ねるべきです。エンドユーザーが「はい」と言った場合、OP はエンドユーザーをログアウトする必要があります。

したがって、ユーザーが [はい] をクリックすると、まだ OP の領域にいるので、ウェルカム画面に戻すことができます。ただし、ユーザーが「いいえ」をクリックすると、動作は定義されません。

私はそれが次のようなものになると推測しています:

  • stateRP アプリケーションのログアウト ボタンを押す前にユーザーが最後にアクセスしていた既知のページとします。
  • RP のログアウトは、ユーザーがトークン取り消しエンドポイントを使用して OP 上の RP に対して持っているすべての資格情報を破棄します (RP によって再同意が必要な場合)。
  • 次に、それを渡して end_session_endpoint にリダイレクトします。state
  • OP end_session_endpoint に到達すると、ユーザーはたまたま「いいえ」を選択します
  • ユーザーは OP からログアウトされません。
  • ユーザーは、渡された状態で post_logout_redirect_uri にリダイレクトされます。
  • RP にある post_redirect_uri は、ユーザーを状態の authentication_endpoint にリダイレクトします。
  • ユーザーはまだ OP にログインしており、同意がまだ存在すると想定しているため、ユーザーがアプリケーションを離れていないかのように状態でユーザーを RP コールバックにリダイレクトする必要がありますが、id_token のまったく新しいセットが現在あります。

リダイレクト ループを防ぐために、RP は、ログアウトが存在しなくなった場合に有効な ID を必要としないことを保証する必要があります。そうしないと、リダイレクト ループが発生します。

4

0 に答える 0