SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ASP.NET Identity入門

ASP.NET Identity 2.0の新機能
~メール連携機能のためのメール送信処理

ASP.NET Identity入門 第5回

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

 前回に引き続き、ASP.NET Identity 2.0の新機能を紹介していきます。今回から数回に分けてメールと連携する機能について紹介していきます。まず今回と次回で「アカウントの確認」機能について、その動作イメージと実装方法を説明していきます。今回はメール送信処理および確認メール送信の実装まで説明します。

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

メール連携機能の概要

 前回から紹介を始めたASP.NET Identity 2.0の新機能には、メールと連携してセキュリティを強化する仕組みがいくつかあります。主なものは次の3つです。

  • アカウントの確認: ユーザーを登録する前に、メールで確認を行います。
  • パスワードのリセット: メールでパスワードのリセットを行うためのページへのリンクを送付します。
  • 二段階認証: 登録したパスワードの他に、メールやSMSで送った一時パスワードを使い、二段階で認証を行います。

 今回と次回は、この中から「アカウントの確認」を取り上げ、どのようにメールと連携するのか詳しく紹介します。「パスワードのリセット」「二段階認証」についても順次紹介する予定ですので、楽しみにお待ちください。

 なお、今回のサンプルは8月4日にリリースされた「Visual Studio 2013 Update 3」で新たに「ConfirmationWebFormApp」プロジェクトを作成していますので、事前にUpdate 3をインストールしておいてください。

ASP.NET Identity 2.1とVisual Studio 2013 Update 3

 8月4日にASP.NET Identityの最新バージョンである2.1.0がリリースされました。その主な新機能は次のとおりです。
 

  • SignInManagerクラスの導入: 二段階認証やアカウントのロックアウト機能を簡単に使用するための、ログイン(サインイン)処理をラップするクラスです。前回の記事で紹介したアカウントのロックアウトに必要な雑多な実装が、このクラスを使用することで不要になります。

 また、同日ASP.NET Identity 2.1.0に対応した新たなテンプレートを取り込んだVS2013 Update 3がリリースされています。新テンプレートの主な変更点は以下の通りです。
 

  • 二段階認証の骨組の追加: 先述のSignInManagerクラスを使用し、パスワード以外にワンタイムパスワード等を必要とする「二段階認証」を行うための骨組が組み込まれました。この機能については、本連載の後の回で取り上げる予定です。
  • アカウントロックアウトの骨組の追加: 二段階認証と同様SignInManagerクラスを用いたアカウントロックアウトの骨組が組み込まれています。こちらについては次回の記事で紹介します。

 詳しくは以下の記事を参考にしてください。
 

アカウントの確認とは

 それではまず「アカウントの確認」機能について、もう少し詳しく紹介していきます。「アカウントの確認」とは、ユーザー登録の際に本当に登録するかどうかメールを送信し、確認を行う機能です。その主な目的はセキュリティの強化で、次のようなものがあります。

  • ユーザーが存在することの確認
  • 正規のEメールアドレスであることの確認
  • スパムなどによる登録申請でないことの確認

 アカウントの確認の処理イメージは以下のようになります。

図1 アカウントの確認の動作イメージ
図1 アカウントの確認の動作イメージ
(1)ユーザー登録

 ユーザー登録ページにアクセスし、メールアドレスを入力してユーザーの登録を行います。

(2)確認メール送信

 ユーザー登録処理後に、入力されたメールアドレス宛に「確認メール」を送ります。この確認メールには、アカウントを確認するための「確認トークン」を含んだ「アカウント確認ページ」へのリンクが含まれています。

 なお、この時点でユーザー情報は登録されますが、「未確認」状態であるためログインはできません。

(3)確認処理

 ユーザーは(2)で送付された確認メールに含まれるリンクから、アカウント確認ページを表示します。

 アカウント確認ページでは「確認トークン」の検証を行い、妥当なものであればユーザーを「確認済」状態に変更します。したがって、メールで送られたリンク以外からアカウント確認ページを表示しても、確認トークンが含まれていない、もしくは妥当でないため、アカウントの確認は失敗します。

(4)ログイン

 アカウントの確認が成功するとユーザー情報が「確認済」状態になり、ログインできるようになります。

 今回は(2)の確認メールを送信するまでを実装していきます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
メール送信の仕組み

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 高野 将(タカノ ショウ)

<個人紹介>新潟県長岡市在住の在宅リモートワークプログラマー。家事や育児、仕事の合間に長岡IT開発者勉強会(NDS)、Niigata.NET、TDDBCなどのコミュニティに関わったり、Web記事や書籍などの執筆を行ったりしている。著書に『アプリを作ろう! Visual C#入門 Visual C# 2017対応』(日経BP社、2017)など。<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8047 2014/09/18 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング