🦔

OAuth2.0 基礎

2023/11/20に公開

OAuth2.0

  • OAuth
    • authorization tokenの取得方法
    • tokenの使用方法
  • OAuthはシステムを跨いで認可を行える様にする委譲プロトコル
  • OAuthはパスワード共有のようなアンチパターンを委譲プロトコルに置き換えて、より安全で使いやすいもの

OAuth2.0 Process Flow

Authorization Grant Type

Authorization Code Grant Type

BrowserとClientが分離されている時はこちら!!

  • browser
  • client
  • authorization server
  • resource server

上記が分離されていれば、各構成要素が持つ情報を分離できる

Implicit Grant Type

  • Javascript Applicationが完全にブラウザ内部だけで稼働している場合に使われる(clientとbrowserが一致している状態)
    • 認可コードを隠すことはできない
    • clientの処理内容について、完全にuser側は把握可能になる

Client Credentials Grant Type

  • client-applicationがresource ownerである場合に利用
    • BFF layerなどで利用

Resource Owner Credentials Grant Type(Password Grant Type)

  • ResourceOwnerのusername/passwordで認証を行う方式
    • しかし、ResourceOwnerはAuthorizationServerとのやりとりはやらない
  • この付与方法はすべきではない

Assertion Grant Type

  • SAML(Security Assertion Markup Language)
  • JWT(JSON Web Token)

Authorization Grant Typeの選択

Discussion