3
5

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 3 years have passed since last update.

ASP.NET Core (5.x)でMVCにおける認証機能(Identity)付きテンプレートの生成と動作確認

Last updated at Posted at 2021-02-05

基本的にはこちらを見れば書いてありますが、記述がwebapp(Razor Pages)ベースだったり(私はMVCで使いたい)、ちょっとわかりにくいので動作検証。

環境など

  • Mac上でdotnet 5.xを利用しています。(が、他の環境、3.1.xでも動くと思います)

プロジェクト生成

dotnet new mvc --auth Individual -o identity_mvc_test
cd identity_mvc_test

現在、dotnet new コマンドで生成できる認証テンプレートは[Individual]のみのようですが、カスタマイズすれば他の認証にも対応可能なようです。

何もオプションを指定しないとsqliteが利用されるようです。 -uld オプションをつけるとlocalDB(簡易SQL)で生成されるようです。

各種認証用DBの生成

プロジェクト生成時に何もオプションを指定しないとsqliteベースでDBが作られるみたいです。
生成ファイル群を見るとマイグレーションとかしてないのにapp.dbってのが作られてますね。

スクリーンショット 2021-02-06 5.54.20.png

中身を少し確認

sqliteにログインして、テーブルを表示してみます。Identityが利用する各種テーブルが作られていますね。

sqlite3 app.db

sqlite> .table
AspNetRoleClaims       AspNetUserLogins       AspNetUsers          
AspNetRoles            AspNetUserRoles        __EFMigrationsHistory
AspNetUserClaims       AspNetUserTokens     

sqliteから抜けるには.exitと入力します。

動作を確認

dotnet run

TOPページ

では実行されたページにアクセスしてみます。標準では http://localhost:5001 です。
MVCのテンプレートにRegister, Loginボタンが追加されています。

スクリーンショット_2021-02-06_6_03_46.png

SSL/TLSを利用する場合は dotnet dev-certs https --trust で証明書をインストールしておく必要があります。

Registerページ

ではRegisterリンクをクリックしてみます。すると登録用のページが表示されます。
登録してみましょう。

スクリーンショット_2021-02-06_6_04_45.png

登録後はEmailの(架空)コンファームが必要なようなのでクリックします。
実際のアプリでは確認メールが送信され、送信されたメール中の確認リンクをクリックすることになります。

sqliteのAspNetUsersにデータが記録されていることを確認してみましょう。

スクリーンショット_2021-02-06_6_04_55.png

Loginページ

では、次にLoginリンクをクリックします。するとログイン画面が現れるので先程登録したID,PWでログインしてみてください。

スクリーンショット_2021-02-06_6_05_19-2.png

このとき、パスワード忘れ対応のリンク等も生成されていることが確認できます。

ログイン後ページ

ログインすると、右上のヘッダ部にログインユーザー名が表示され、LoginリンクはLogoutリンクへと変化します。

スクリーンショット_2021-02-06_6_05_28.png

ユーザー名をクリックするといわゆるMyPage的な内容が表示され内容の変更・確認やMFA等の雛形が実装されています。

スクリーンショット_2021-02-06_6_05_34.png

一旦まとめ

Identityおよびそのテンプレートを利用すれば近代的Webサービスにおいて必要となる認証・認可機能の基本部分をひな形として生成してくれます。一方で、各機能を理解し、使いこなす(カスタマイズする)ためには一定の知識と慣れが必要となります。まずは雛形のコードを眺めながら不明な点を1つ1つ調査するとよいでしょう。

3
5
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
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?