5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OAuth 2.0について

Posted at

はじめに

OAuthという仕組みを使用してソーシャルログインを実装する時があったので、OAuthの基本的な概念についてを備忘録として残します。

OAuth 2.0とは何か?

OAuth 2.0とは、ユーザーが自分のアカウント情報を安全に他のアプリケーションと共有できるようにするためのプロトコルです。

これは、ユーザーが自分の資格情報を直接共有することなく、サービス間で情報を安全に共有できるようにするためのものです。

ソーシャルログイン(SNSログイン)などの外部アカウント連携機能で利用されます。

OAuth 2.0はどのように利用されるのか

よく、Webサイトのログイン画面でGoogleアカウントでログインという機能が実装されていることがあります。

こういったソーシャルログインを実装するために使用されているのがOAuthになります。

ソーシャルログインの手順

  1. メールアドレスやパスワードを入力するかわりに、Googleアカウントでログインをクリックする。
  2. Googleアカウントの情報へのアクセスを許可する
  3. ログインが成功!

OAuth 2.0のメリット

OAuthを使用してソーシャルログインを実装することには、以下のようなメリットがあります。

  1. ユーザビリティの向上:ユーザーは新たにユーザー名やパスワードを覚える必要がなく、既存のソーシャルメディアアカウントを使用してログインできます。これにより、ユーザー体験が向上します。

  2. 登録の簡素化:新規ユーザーは、ソーシャルメディアアカウントを使用して簡単に登録できます。これにより、登録プロセスが簡素化され、ユーザーの離脱率が低下します。

  3. セキュリティの強化:パスワードを直接管理する必要がなくなるため、パスワードリセットやパスワード盗難のリスクが減少します。また、ソーシャルメディアプロバイダーは通常、セキュリティ対策(例えば二段階認証)を提供しています。

  4. データアクセス:ユーザーの許可を得て、ソーシャルメディアプロファイルから追加情報を取得することができます。これにより、パーソナライズされたユーザー体験を提供することが可能になります。

OAuthの構成とフロー

OAuthは以下のように構成されています。

1.リソースオーナー(ユーザー):サービスを利用するエンドユーザーです。
2.クライアント:ユーザーが使用するアプリケーションです。
3.リソースサーバー:ユーザーのデータを保持しているサーバーです。
4.認可サーバー:認可コードやアクセストークンを発行するサーバーです。

上記の4つを踏まえてGoogleアカウントを使用したログインまでのフローを示します。

image.png

フロー詳細

  1. ユーザはサイトのログイン画面へアクセスする。
  2. ログイン画面のGoogleアカウントでログインをクリックするとGoogleの認可サーバーは認可画面を返却する。
  3. ユーザーが許可すると認可サーバーは認可コードを発行する。
  4. クライアントは、受け取った認可コードを認可サーバーに送信して、アクセストークンを受け取る。
  5. 受け取ったアクセストークンをリソースサーバーに送信して、ユーザーの情報を取得する。
  6. 受け取ったユーザー情報で認証を行ってログインが成功する。
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?