web-dev-qa-db-ja.com

.NET Core IdentityとIdentityServer4

質問:.Net Core IdentityまたはIdentity Server 4 with Identityを使用する必要があります

ログイン/登録機能を備えたアプリを作成し、ユーザーがAPIを使用してソフトウェアからデータをインポート/エクスポートできるようにする必要があります。また、Google、Twitterなどの外部ログインも必要です。

そして、Identityのみを使用してすべてのことを実行できるのに、なぜIdentity Serverが必要なのか理解できません。

IdentityServerが必要なのはなぜですか?私は仕事を正しく、できるだけ簡単にする必要があります。

18
ferdinand

場合によります。

IdentityServerはOAuth 2.0およびOpenID Connectの実装を提供し、エンドポイント、トークン管理、スコープ、許可などを提供して)すべての詳細を処理します。独立して実行されるため、複数のクライアント(SPA、モバイル、Webアプリ)で使用でき、アプリの他の部分からうまく分離されています。必要に応じて、ASP.NET Core Identityと一緒に使用できます。

IdentityServerを使用しない場合、ASP.NET Core Identityはメンバーシップシステムであり、エンドポイントを使用する準備ができておらず、トークン管理や承認方法のサポートも提供されていないため、これらのいくつかを自分で作成する必要があります。 。

これらを自分で作成する方が良いかどうかを評価する必要がありますが、将来的には制限される可能性がありますが、IdentityServerが提供するすべてを必要としない可能性があるため、より簡単な設定を行う必要があります。

IdentityServerよりも複雑ではない OpenIddict も確認できます。

14
Tomáš Linhart

あなたは本当に2つを比較することはできません。

ASP.NET Identityは、ユーザー、ロール、クレーム、電子メール確認トークンなどを管理するためのデータベースAPIです。サインアップ、ログイン、パスワードの変更などの実装に使用できるもの。

IdentityServerはOpenID Connectであり、OAuth 2.0実装です。シングルサインオンやAPIアクセスコントロールなどの機能を提供します。これは、複数のクライアントアプリケーション間でユーザーを共有する場合に便利です。

ただし、プロトコルの作業にはIdentityServerを使用し、中央のログインページでのユーザー管理にはASP.NET Identityを使用できます。

20
leastprivilege