ASP.NET Core/Identity
ASP.NET Core Identityは、ASP.NET Coreアプリケーションにユーザー認証と承認の機能を提供するフレームワークです。
はじめに
[編集]ASP.NET Core Identityとは
[編集]ASP.NET Core Identityは、ASP.NET Coreアプリケーションにユーザー認証と承認の機能を提供するフレームワークです。従来の ASP.NET Membership Systemの後継にあたるものです。
ASP.NET Core Identityは、ユーザー登録、ログイン、ログアウト、パスワード管理、ロールベースのアクセス制御 (RBAC) など、一般的な認証/承認機能を統合的に提供します。開発者は、これらの機能を容易に組み込むことができます。
主な機能と利点
[編集]ASP.NET Core Identityの主な機能と利点は以下の通りです:
- ユーザー管理: ユーザーの登録、プロファイル管理、パスワード変更などの基本的な機能を提供します。
- 認証: ユーザーのログイン、ログアウト、クレーム管理などの認証機能を提供します。
- 承認: ロールやクレームに基づいたアクセス制御を実現できます。
- 拡張性: ユーザーエンティティやクレームなどをカスタマイズできるため、アプリケーションの要件に合わせて機能を拡張できます。
- セキュリティ: パスワードのハッシュ化、アカウントロックアウト、2段階認証などのセキュリティ機能を備えています。
- 統合性: ASP.NET Coreのその他の機能(Logging、DI、設定管理など)と統合されています。
ハンドブックの目的と対象読者
[編集]このハンドブックの目的は、ASP.NET Core Identityの基本的な使用方法から、高度な活用方法まで、開発者が必要とする包括的な情報を提供することです。
主な対象読者は以下の通りです:
- ASP.NET Coreアプリケーションの開発者
- 認証/承認機能の実装に携わるエンジニア
- ユーザーマネジメントの設計に関わるアーキテクト
- ASP.NET Core Identityを導入検討しているプロジェクトメンバー
基本セットアップ
[編集]プロジェクトへのIdentity SDKの追加
[編集]ASP.NET Core Identityを使用するには、まず対象のプロジェクトにIdentity SDKを追加する必要があります。Visual Studioを使用している場合は、ソリューションエクスプローラーから該当のプロジェクトを右クリックし、「管理NuGetパッケージ」を選択します。 "Microsoft.AspNetCore.Identity.EntityFrameworkCore"パッケージをインストールすることで、必要な参照が追加されます。
IdentityServiceCollectionExtensionsの設定
[編集]次に、StartupクラスのConfigureServices
メソッドで、Identity機能を設定する必要があります。
以下のように、AddIdentity
メソッドを呼び出して、ユーザー、ロール、ストア、パスワードポリシーなどを構成します。
public void ConfigureServices(IServiceCollection services) { services.AddIdentity<IdentityUser, IdentityRole>(options => { // パスワードポリシーの設定 options.Password.RequireDigit = true; options.Password.RequiredLength = 8; // その他の設定 }) .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultTokenProviders(); // その他のサービス設定 }
基本的な認証/承認の構成
[編集]最後に、StartupクラスのConfigure
メソッドで、認証とアクセス制御の設定を行います。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // 他の設定 app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoutes(); }); }
これらの設定により、ユーザーの認証とアクセス制御が有効になります。
コントローラーやビューで、[Authorize]
属性を使ってアクセス制限を設定できるようになります。
この基本セットアップの後は、ユーザー管理や高度な認証/承認機能の実装に進むことができます。