Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

認可対象をシステム管理者に限定する #15

Merged
merged 7 commits into from
Jul 10, 2020

Conversation

nanasess
Copy link
Collaborator

@nanasess nanasess commented Jul 7, 2020

  • Fixes OAuth2.0 Authorization 管理画面ログイン #5
  • 認証したユーザーがシステム管理者以外の場合はエラーレスポンスを返す
  • Controller/Admin/OAuth2/OAuth2Controller.php を EventListener/AuthorizationRequestResolveListener.php に移植

@okazy okazy added this to the 1.0 milestone Jul 7, 2020
@okazy okazy added the enhancement New feature or request label Jul 7, 2020
@nanasess
Copy link
Collaborator Author

nanasess commented Jul 9, 2020

Authentication Request Validation が標準仕様と一致しているかのチェックシート。ユニットテスト等にしておきたい

http://openid-foundation-japan.github.io/openid-connect-core-1_0.ja.html#AuthRequestValidation

Authorization Server は, 以下のように受信した要求を検証しなければならない (MUST).
取消線は、今回の仕様に含まないもの

  • Authorization Server は, 全ての OAuth 2.0 パラメータを OAuth 2.0 仕様に従って検証しなければならない (MUST).
  • scope パラメータが存在することと, openid scope 値を含んでいることを検証. (もし openid scope 値が存在しなかった場合, その要求は OpenID Connect の要求ではないが, 有効な OAuth 2.0 の要求である可能性がある.)
  • Authorization Server は, 全ての必須 (REQUIRED) パラメータが存在するか, そしてそれらの使用方法が当仕様に従っているかを検証しなければならない (MUST).
  • ID Token の sub (subject) Claim に値が指定されて要求された場合, Authorization Server は, sub 値で識別される End-Userが, Authorization Server 上にアクティブなセッションを持っているか, またはその要求の結果として認証された場合のみ, 成功応答を送信しなければならない (MUST) . End-User が Authorization Server 上にアクティブなセッションを持っていたとしても, Authorization Server は, 異なるユーザの ID Token や Access Token を応答してはならない (MUST NOT) . このような要求は, id_token_hint パラメータを用いるか, もしくは実装が claims パラメータをサポートしていれば, Section 5.5.1 に記述されているように特定の Claim Value を要求することによって実現することができる.
  • OAuth 2.0 [RFC6749] の規定どおり, Authorization Server は認識できない要求パラメータを無視すべきである (SHOULD) .
  • Authorization Server はなんからのエラーに遭遇した場合, Section 3.1.2.6 に従い, 失敗応答を返さなければならない (MUST) .(失敗応答については別途検証)

@nanasess
Copy link
Collaborator Author

nanasess commented Jul 9, 2020

認可エラーコードが標準仕様と一致しているかのチェックシート。ユニットテストにしておきたい
http://openid-foundation-japan.github.io/draft-ietf-oauth-v2.ja.html#auth-error-codes

  • invalid_request - リクエストが必須のパラメーターを含んでいない, サポートしていないパラメーターないしパラメーター値を含む, あるいは形式に問題がある.
  • invalid_client - 指定されたクライアント識別子が不正である.
    • redirect_uri_mismatch になるケースでも invalid_client が表示される
  • unauthorized_client - クライアントは指定されたレスポンスタイプを使用する権限を持たない.
  • redirect_uri_mismatch - 指定されたリダイレクトURIが事前登録されたものとマッチしない.
  • access_denied - エンドユーザーか認可サーバーが要求を拒否した.
    • パラメーターのバリデーションに失敗すると、すべてこれになる
  • unsupported_response_type
    要求されたレスポンスタイプを認可サーバーがサポートしていない.
    • response_type=code+id にすると unsupported_grant_type が表示される
  • invalid_scope - 要求されたスコープが不正か, 未知のものか, 形式に問題がある.

@nanasess nanasess changed the title [WIP]認可対象をシステム管理者に限定する 認可対象をシステム管理者に限定する Jul 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

OAuth2.0 Authorization 管理画面ログイン
3 participants