Asp.net-Core

.NET Core Identity 與 IdentityServer4

  • January 20, 2018

問題:我應該使用 .Net Core Identity 還是 IdentityServer 4 和 Identity

我需要建構具有登錄/註冊功能的應用程序,並允許使用者使用 API 從我的軟體中導入/導出數據。我也想有外部登錄,如穀歌、推特等。

而且我無法理解當所有事情都可以只使用身份來完成時,我為什麼需要身份伺服器。

為什麼我需要或想要 IdentityServer ?我只需要盡可能簡單地正確完成工作。

這取決於。

IdentityServer 將為您提供 OAuth 2.0 和 OpenID Connect 實現,它將為您處理所有細節(為您提供端點、令牌管理、範圍、授權等)。它獨立執行,因此您可以將它用於多個客戶端(SPA、移動、Web 應用程序),並且它與您的應用程序的其餘部分很好地隔離。如果您願意,可以將它與 ASP.NET Core Identity 一起使用。

如果您不使用 IdentityServer,則必須自己編寫其中的一些內容,因為 ASP.NET Core Identity 是一個成員系統,它不提供任何即用型端點,也不提供令牌管理或支持不同的授權方式.

您需要評估自己編寫這些東西是否更好,但設置更簡單,因為您可能不需要 IdentityServer 提供的所有內容,儘管它可能會在將來限制您。

您還可以查看比 IdentityServer 更簡單的OpenIddict 。

你真的無法將兩者進行比較。

ASP.NET Identity 是一個數據庫 API,用於管理使用者、角色、聲明、電子郵件確認令牌等。您可以使用它來實現註冊、登錄、更改密碼等。

IdentityServer 是一個 OpenID Connect 和 OAuth 2.0 實現。它為您提供單點登錄和 API 訪問控制等功能。如果您想在多個客戶端應用程序之間共享使用者,這很有用。

不過,您可以將兩者結合起來 - 使用 IdentityServer 進行協議工作,使用 ASP.NET Identity 進行中央登錄頁面上的使用者管理。

引用自:https://stackoverflow.com/questions/48355229