Hello! 大家好! こんにちは! PanguのChoです。 社内勉強会のネタを掲載させていただきます。基本的にネットに既存でわかりやすい記事を探して、それを繋がせるかたちで編集させていただいております。ご参考になったら幸いです。
近年、新規会員登録する際にGoogle、Facebook、Twitterなどでログインのサイトは増えているようです。そのセキュリティーは大丈夫ですか? 心配したことはあるかと思います。また、Amebaブログなどを投稿の同時にFacebookなどに代理投稿もやってくれます。かなり便利な機能ですが、それはなんの仕組みですか?たくさんのネット記事の中、私は以下の記事はとても分かりやすい解説しているかと思い、リンクを掲載させていただきました。
代理投稿の仕組みよりOAuthを理解しましょう
いかがでしたか?OAuthの仕組みもよく理解出来たでしょうか?
応用でFacebookなどでログインの仕組みを想像して行きましょう
1. 初回登録
運用サイトより遷移されたFacebookのログイン画面にログイン情報を入力、次に「名前、アイコンなど情報の取得権限を運用サイトへ付与して大丈夫ですか?」旨のメッセージが提示され、承認した場合は運用サイトへ戻ります。その後に、運用サイトの裏にユーザIdを作成、アクセストークンよりFacebookのId(例:メールアドレス)を取得、自サイトのユーザIDと紐付ける。
2. 次回(以降)のログイン
セッションが切れった場合、再びFacebookのログイン画面へ遷移されます。ログイン後にFacebook用のアクセストークンが返ってきます。アクセストークンよりFacebookのId(例:メールアドレス)を再度取得し、それを利用して自サイト内に作成したユーザを特定出来、ログイン成功とみなします。
※Facebookログインの2回目以降は、「名前、アイコンなど情報の取得権限を運用サイトへ付与して大丈夫ですか?」旨のメッセージが表示されません。
Salesforce OAuth 2.0 Web Server Flow を理解しましょう
Web アプリケーションインテグレーションの OAuth 2.0 Web サーバフロー
https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_web_server_flow.htm&type=5
オフィシャルサイトにはとても丁寧に説明しているかと思います。さらに下記を図を参考しながら、理解を深めましょう!
↑図の元サイト:
Salesforce OAuth 2.0 User-Agent Flow を理解
デスクトップまたはモバイルアプリケーションのインテグレーションの OAuth 2.0 ユーザエージェントフロー
https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_user_agent_flow.htm&type=5
同じく下記を図を参考しながら、理解を深めましょう!
↑図の元サイト:
補足:
OAuth認証はセキュアな通信プロトコルhttpsを土台としています。httpsは盗聴、改ざん、なりすますを防ぎます。httpsの仕組みも理解しましょう!