2014/03/30

ASP.NET MVC 5 で OpenID を使用して Google 認証を行う方法


ASP.NET MVC 5 / Visual Studio 2013 には、Facebook/Twitter/Google/Microsoft 認証を簡単に行うことができる機能が搭載されています。

この記事では、OpenID を使用した Google 認証を行う方法をご紹介します。

但し、Google は OpenID での認証のサポートを 2014 年内にも終了する予定なので、もし既存のシステムで OpenID を使用している場合は、OpenID Connect への移行を検討してください。

Googleはサードパティーに提供するサインイン機能をすべてOpenID Connect規格にアップデートし、現在のOpenIDは来年にもサポートを打ち切る予定だ。Sachsは「デベロッパーはできるだけ速やかにOpenID Connectに切り替えるべきだ」と言う。

サイトにパスワードを保存する必要なし― Microsoft、Google等がユーザー認証の新規格、OpenID Connectをサポート | TechCrunch Japan

なお、OAuth 2.0 (OpenID Connect) による Google 認証は以下の記事を参照してください。

プロジェクトの作成

Visual Studio 2013 を起動して、[ファイル] – [新しいプロジェクト] を選択して、新しい Web アプリケーションを作成します。

[テンプレート] – [Web] – [ASP.NET Web アプリケーション] を選択し [OK] をクリックします。

pic01

テンプレートで、[MVC] を選択し、[認証の変更] をクリックします(実際はこのままで動作しますが、この機能があると認識する意味で作業します)。

pic02

認証の変更画面で、[個人ユーザーアカウント] を選択し、[OK] をクリックします。

pic03

元の画面に戻って、[OK] をクリックし、プロジェクトを作成します。

Google 認証の設定

ソリューションエクスプローラーの [App_Start] – [Startup.Auth.cs] を選択し、以下のソースのコメントを外します。設定はこれだけです。

app.UseGoogleAuthentication();

アプリケーションの実行

F5 キーを押してアプリケーションを実行します。

画面右上の [ログイン] をクリックします。

pic04

すると、Google 認証のボタンが表示されているので、これをクリックします。

pic05

Google のログイン画面が表示されるので、ログイン情報を入力してログインします。

pic06

権限の承認画面が表示されるので、[承認する] をクリックします。

表示されるのは、最初の1回目のみで、2回目以降は権限の承認は必要ありません。

pic07

正常にログインできていますね。

pic09

ログイン情報はどこに保存されるのか

ここまで、あらかじめ用意された環境で実行してきましたが、ログイン情報はどこに保存されるのでしょうか?

答えは、ローカルにある SQL Server LocalDB です。

ソリューションエクスプローラーで、[すべてのファイルを表示] して、[App_Data] を開くとデータベースが作成されていることが分ります。

pic10

このデータベースは、Web.config の以下の設定によって自動で作成されます。ですので、この設定を変えればリモートの SQL Server にログイン情報を保存することも可能です。

<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WebApplication4-20140330111802.mdf;Initial Catalog=aspnet-WebApplication4-20140330111802;Integrated Security=True"
    providerName="System.Data.SqlClient" />
</connectionStrings>

おわりに

OpenID を使用した Google 認証がいかに簡単か分ったかと思います。

この簡単な認証方法が使えなくなってしまうのは残念ですが、OpenID Connect に認証方法が統一されれば、それはそれでよいことなので将来に期待ですね。

関連エントリー

参考サイト


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。


    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから