Asp.net-core-identity-overview
提供:Dev Guides
ASP.NET Core-アイデンティティの概要
この章では、ASP.NET Core Identityフレームワークについて簡単に説明します。 ASP.NET Core Identityフレームワークは、フォーム認証の実装に使用されます。 Windows認証や、Google、Microsoft、Facebook、GitHubなどのすべてのサードパーティIDプロバイダーなど、ユーザーを識別するための選択肢は多数あります。
- Identityフレームワークは、project.jsファイルでアプリケーションに追加する別の依存関係です。
- このフレームワークにより、ユーザーがローカルパスワードで登録およびログインできる機能を追加できます。
- このフレームワークは、2要素認証、サードパーティのIDプロバイダー、およびその他の機能もサポートしています。
- ユーザーが登録、ログイン、ログアウトできるシナリオに焦点を当てます。
これを行うには、Userエンティティを作成する必要があり、このクラスはIdentityフレームワークの基本クラスから継承し、基本クラスはユーザー名やメールアドレスなどの標準ユーザープロパティを提供します。
- このクラスには、ユーザーに関する情報を格納するために必要な数の追加プロパティを含めることができます。
- このUserクラスを取得し、Identityフレームワークによって提供されるUserStoreクラスにプラグインする必要があります。
- UserStoreは、ユーザーを作成し、ユーザーパスワードを検証するためにコードが話すクラスです。
- 最終的に、UserStoreはデータベースと通信します。 Identityフレームワークは、Entity Frameworkと、Entity Frameworkと連携できるすべてのデータベースをサポートしています。
- ただし、独自のUserStoreを実装して、任意のデータソースを操作できます。
- Entity Frameworkを適切に使用するために、UserクラスもIdentityDbクラスにプラグインします。
- これは、Entity Framework DBContextを使用して実際のデータベース作業を行うクラスです。
- Entity FrameworkのDBContextではなくIdentityDbから既存のDataContextクラスを継承させることにより、このIdentityDbをアプリケーションに含める必要があります。
- IdentityDbとUserStoreが連携してユーザー情報を保存し、ユーザーパスワード(データベースにあるハッシュされたパスワード)を検証します。
知る必要があるASP.NET Core Identity Frameworkには2つの部分があります
SignInManager
これは、Identityフレームワークの2つの部分の1つです-
- 名前が示すように、パスワードを検証すると、 SignInManager はユーザーにサインインできます。
- このマネージャーを使用してユーザーをサインアウトすることもできます。
- フォーム認証では、Cookieを管理することでサインインとサインアウトが行われます。
- SignInManagerにユーザーのサインインを指示すると、マネージャーはユーザーのブラウザーにCookieを発行し、ブラウザーは以降のすべてのリクエストでこのCookieを送信します。 そのユーザーを識別するのに役立ちます。
アイデンティティミドルウェア
これは、フレームワークの2番目の部分です-
- SignInManagerによって送信されたCookieを読み取り、ユーザーを特定すると、これはフレームワークの最後の部分であるIdentityミドルウェアで発生します。
- SignInManagerによって設定されたCookieを処理するには、このミドルウェアをアプリケーションパイプラインに構成する必要があります。 また、このミドルウェアのその他の機能については、次のいくつかの章で説明します。