情報応用演習Ⅰ(2024)

【T8b】ASP.NET Core Identity の基礎(3/9)

プロジェクトタイプ(注意: 本文参照)
プロジェクト名T8b
ソリューション名PIT8
注意
  • 本ページの作業内容は 前のページまでの続き になっていることに注意せよ.
    • 先に前のページまでをすべて読み,指示されている作業を済ませてから本ページを読むこと.
    • プロジェクトの作成作業については準備作業を参照せよ.

8b-3. ASP.NET Core Identity の概要

ASP.NET Core Identity は Entity Framework Core を利用したユーザー認証のための仕組みである. ASP.NET Core Identity は内部的に__に示す 7個のエンティティを使用する.ただし ASP.NET Core Identity ではこれらのエンティティを,ここまでの例のような方法で 直接的に操作するのではなく, ユーザー管理用のクラスロール管理用のクラスサインイン管理のためのクラス といったクラスを通じて操作する必要がある.

ASP.NET Core Identityが使用するエンティティ
エンティティ対応するテーブル名役割
IdentityUserAspNetUsersユーザー情報.
IdentityRoleAspNetRolesロール(役割).グループのようなもの.
IdentityUserRoleAspNetUserRolesユーザーのロールへの所属情報.
IdentityUserClaimAspNetUserClaimsユーザー識別のための情報群.
IdentityUserLoginAspNetUserLoginsユーザごとのログイン方法.
IdentityUserTokenAspNetUserTokens認証トークン(一時的な情報).
IdentityRoleClaimAspNetUserClaimsグループ識別のための情報群.
ASP.NET Core Identityが使用するエンティティの関係

ASP.NET Core Identity には2種類の使用方法がある(_).

1つの使用方法は アプリケーション内で2つのデータコンテキストクラスを管理する 方法である. ここまでの例では,各アプリケーション内にデータコンテキストクラスを1つだけ定義して利用していたが, 実は ASP.NET Core では1つのアプリケーション内で複数のデータコンテキストクラスを管理することが可能である. 通常は理由がない限り複数のデータコンテキストクラスを使う必要はないが,この方法では_に 示すエンティティを管理するためのデータコンテキストクラス──つまりは ASP.NET Core Identity 用のデータコンテキストクラス と, それとは別に アプリケーションの独自のロジックで必要となるエンティティを管理するデータコンテキストクラスを用意して これらを使ってアプリケーションそのものの機能と認証の実装を行う.

ASP.NET Core Identityの2種類の使用方法

もう1つの使用方法は, アプリケーションの独自のデータコンテキストクラスにASP.NET Core Identity 用のデータコンテキストクラスを組み込む 方法である. _を見てわかるように ASP.NET Core Identity 用のデータコンテキストには,「ユーザー」や「ロール(≒グループ)」, 「グループ所属」といった基本的なエンティティが含まれている.この方法の利点は,こういった基本的なエンティティをそのまま アプリケーション内で利用できる点である.例えばブログアプリであれば「記事の著者」,社員管理のためのグループウェアであれば「社員」 といったエンティティを ASP.NET Core Identity の「ユーザー」を拡張して定義する,といった利用が可能である.

通常のウェブアプリではユーザーの管理を行うことが多いため,どちらかといえば後者の方法が ASP.NET Core Identity の 使用方法としては一般的であるが今回は1つ目の利用方法を試みることにする.

Last updated on 2024-06-10
Published on 2024-06-10

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.