ダウンロード サンプルファイル (494.5 KB)
最近TwitterやGitHubなどのアカウントを使ってログインできるWebサービスをよく見るようになりました。連載の第9回となる今回は、この外部アカウントを使ったログインをASP.NET Identityを用いて実現する方法について紹介します。
外部ログインとは
最近Webサービスを利用していると、TwitterやGitHub、Facebook、Googleなどのアカウント情報を使ってログインできるサービスをよく見るようになりました。例えば、プログラミング情報の投稿サイトである「Qiita」では、GitHubとTwitterのどちらかのアカウントでログインできるようになっていて、Qiita側にパスワードを登録しなくても利用できます。
こういった外部のソーシャルアカウントを使ったログイン方法を、ASP.NET Identityでは「外部ログイン」または「外部認証」と呼んでいます。外部ログインは、本連載の第1回でも紹介した通り、ASP.NET Identityを開発した動機の一つでもあり、バージョン1.0のころからサポートしています。
外部ログインを利用することで、次のようなメリットがあります。
パスワードを持たなくてよい
外部サービスに認証処理を委譲するため、アプリケーション自体で認証のためのパスワードを持たなくてよくなります。したがって、その分セキュリティ上も有利になります。
外部サービスのアカウント情報が使える
ログインした外部サービスのアカウント情報を、ある程度自由に使えるようになります。例えば、表示する「ユーザー名」にTwitterのユーザー名を使う、といったことができるようになります。
今回はTwitterを例にして、外部ログインの説明を行っていきます。FacebookやGoogle等のサービスでも、ほぼ同じようなイメージで動作しますので、Web検索等で調べてみてください。
なお、今回から「Visual Studio Community」を使ってサンプルの作成、説明を行っていきますので、ご了承ください。
外部ログインの動作イメージ
Twitterを例とした動作イメージを図1に示します。
1. 外部ログイン要求
ログイン画面に追加された「別のサービスを使用してログインします。」欄の下にある「Twitter」ボタンをクリックすることで、Twitterを使用してログインすることを要求します。この時、Twitter側には事前に設定しておいた「Consumer Key」と「Consumer Secret」が送信されます。
2. 外部サービスでの認証
Twitterのアプリ認証画面にて「連携アプリを認証」ボタンをクリックし、Twitter側で認証します。
3. メールアドレス入力
元のアプリケーションに戻ってくるので、Twitterを使用してログインするユーザーの「メールアドレス」を入力してから「ログイン」ボタンをクリックし、ログインを完了します。この時、Twitterによる認証情報を読み取り、アプリケーション側のユーザー情報等に使うことができます。
Webアプリケーションの作成
それでは、順に外部ログインを行う方法について説明していきましょう。まず、これまでの連載と同様に、Visual Studioを起動して新しいプロジェクトを「ASP.NET Webアプリケーション」の「Web Forms」として作成します。サンプルではプロジェクト名を「ExternalLoginSample」としています。
プロジェクトを作成したら、この後のTwitter側の設定で使いますので、プロジェクトのプロパティの「開発サーバー」→「URL」を控えておきましょう(図2)。
この記事は参考になりましたか?
- ASP.NET Identity入門連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 高野 将(タカノ ショウ)
<個人紹介>新潟県長岡市在住の在宅リモートワークプログラマー。家事や育児、仕事の合間に長岡IT開発者勉強会(NDS)、Niigata.NET、TDDBCなどのコミュニティに関わったり、Web記事や書籍などの執筆を行ったりしている。著書に『アプリを作ろう! Visual C#入門 Visual C# 2017対応』(日経BP社、2017)など。< WINGSプロジェクト について>有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での 登録メンバ は約50名で、現在も執筆メンバを 募集中 。興味のある方は、どしどし応募頂きたい。 著書 、 記事 多数。 RSS X: @WingsPro_info (公式)、 @WingsPro_info/wings (メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

