3

TL; DR - 見出し:)ASP.NET Core IdentityでIdentityServer 4を使用することの付加価値は何ですか?

背景ストーリー: 私は(RESTfulなAPIなど、いくつかのクライアント - 純粋なウェブアプリ、モバイルアプリの)一連のアプリケーションを構築しています。 すべてのコアAPIはASP.NET Coreに書き込まれます。 私は認証認可の問題に取り組んでいます。

クラウドや外部サービスを使用したくないのは、ユーザー関連のデータをすべて閉じておくことです(パスワードを含む)。

私が読んだところでは、ASP.NET Core Identityは、必要な認証と承認に関連するすべての機能とプロセスを提供しているようです。私は、ハッシュされたパスワードを含むユーザーベース全体と、ユーザー自身に関連するすべてのデータを自分で管理することができます。これは、抽象概念とコンセプトの集合です(必要に応じて拡張できます)。

また、IdentityServer 4と統合できることも読んでいます。私が理解しているところでは、セキュリティトークンサービス(STS)として使用できるように、セキュリティの追加層を私に与え、OAuth 2.0認証とOpenID認証の実装を提供します。それはそれですか?私はそれを使うことのメリットを理解したいだけです。 ASP.NETコアアイデンティティとIdentityServer 4の間に何

  1. :?

    私の質問は2つの部分を持っていますか
    IdentityServer 4は、ASP.NETアイデンティティが提供する抽象概念のいくつかの(異なる)コンセプトを提供しますか?
    ASP.NET IDとIdentityServer 4の関係を知りたいです。

  2. IdentityServer 4で開発するにはどのようなコストがかかりますか?それはまっすぐですか、それとも実装するのは簡単ではありませんか?
  3. ボーナスの質問:) - そこに何か別の選択肢がありますか?何を選びますか?なぜ?

the following questionは、私の質問にたくさん答える優れた答えを持っていますが、依然として私の質問に固有の答えが欲しいです。

ありがとうございます!

答えて

5

ASP.NET Core Identityでjwt/bearerトークンを作成することはできません。

ASP.NETコアIDは、いくつかの欠点があるCookieミドルウェアを使用します。許可ミドルウェアを使用すると、ベアラ/ jwtトークンを消費することができますが、独自のトークンを作成することはできません。それはASOS & Identity4がギャップを埋める場所です。

クッキーの使用には、一般的に長寿命であるという点を含め、いくつかの欠点があります。通常、JWTトークンは短い寿命(5〜10分)を持ち、アイデンティティトークンでリフレッシュされます。

誰かがトラフィックを盗聴してベアラトークンを取得した場合、トークンは短期間だけ有効であり、攻撃者はIDトークンなしでそれを更新することはできません。

第2に、クッキーはXSSの方が脆弱ですが、ベアラトークンはリクエストごとに送信され、XSRFの脆弱性のみがあり、AntiForgeryトークンで保護しやすくなります。セキュリティスタックの交換についてはanswerも参照してください。

+0

「許可中のミドルウェアを利用すると、**あなたはbearer/jwtトークンを消費することができます」と言ったとき、あなたは** ** bearer/jwt tokenを消費することはできません。 – DotnetProg

+0

いいえ、FacebookやGoogleが発行したものを 'Microsoft.AspNetCore.Authentication.JwtBearer'パッケージで使用できます。しかし、自分で作成して署名することはできません。 – Tseng

+0

@Tsengこの場合、タイプミスは「でもあなたは自分のものを作ることができます**」と思っています** **できない** :) – OffHeGoes

関連する問題