oAuth 2.0の概要

1605 ワード

oAuthは、サードパーティ認証のためのプロトコルです.
この文章はkakao、google...などが提供するサービスごとにoauthは異なる部分がありますが、標準概要に関する記事です.
resource owner:oAuthで認証を行う主体(kakao、googleのidでログインしようとするユーザー)を示す
Client:oAuthは、サービスの認証構造ではなくサードパーティのサービスを通じてユーザーを認証するエージェント(アプリケーションサーバ)を表します.
resource server:oauthのマスターサービスを提供するデータサーバ(resource server).
ライセンスサーバ:oAuthのマスターサービスを提供する認証サーバ(authrization server).

  • アプリケーションサーバはauthorizationサーバに独自のサービスを登録し、client idとclient secret値、コールバックurlを確保します.

  • リソース所有者は、アプリケーション・サーバにログインを要求します.

  • 所有者は、アプリケーション所有者が自分のユーザー情報を提供することを望んでいないため(個人kakaoアイデンティティパスワードなどの情報が特定のサービスに露出することを望んでいない)、アプリケーションサーバはコールバックURLを通じてユーザーを3つのライセンスサーバにログインさせる.urlは、次のフォーマットを意味する場合があります.
    scopeは、3文字のサーバで使用できる特定の権限を意味します(kakao storyの執筆などを許可します...)
  • https://{Authorization server domain}/ {client_id} & {redirect_url} & {scope}
  • 3ワードのライセンスサーバは、所有者にユーザ情報を確認し、同意範囲を要求する.
    example

  • 4,5 . 3のプロセスが正常に完了すると、ライセンスサーバは以下のURLを使用して所有者にリダイレクトします.urlは、次のフォーマットを意味する場合があります.
    https://{client_domain}/{callback_url}? {code}

  • クライアントは、accesstokenを送信するための一時的なトークン、すなわちコードを得ることができる.
    クライアントは、コードとclient id、client secret、callback url、grant type情報をライセンスサーバに提供し、ライセンスサーバにトークンへのアクセスを要求します.

  • accesstokenが発行されている場合、clientはownerとサードパーティサービスのユーザー情報を使用して独自のサービスを使用することができ、リソースサーバが許可する範囲内でaccesstokenだけでアクセスできます.