關於Identity和IdentityServer初學的時候可能會有一些疑惑(雖然我也不是很精深吧),但是,這里說一下自己關於這兩者的一些理解,如有錯誤,歡迎指正
總體上,
- ASP.NET Core Identity提供了一個用來管理和存儲用戶賬戶的框架.
- IdentityServer是一個中間件,它可以添加符合OpenID Connect和OAuth2.0的終端(endpoints)到一個任意的ASP.NET Core應用.
關於Identity
ASP.NET Core Identity 是用來在ASP.NET Core 應用中增加登錄功能的。用戶可以使用存儲在Identity中的登錄信息創建一個賬戶,或者他們可以使用第三方登錄,支持的一些第三方登錄:Facebook,Google,Microsoft Account,Twitter。當然,你可以集成一些國內的,QQ等
Identity可以被配置為使用SQL Server數據庫存儲用戶名,密碼,和其他信息。當然,你也可以使用另一個持久化存儲,例如Azure Table Storage
ASP.NET Core Identity提供了一個用來管理和存儲用戶賬戶的框架,在ASP.NET Core應用中。當你在創建項目時,身份驗證選擇的是Individual User Accounts(個人用戶賬戶),Identity被添加到了你的項目中。Identity默認使用的是Entity Framework Core 數據模型。
關於這個,可以看下這個
關於IdentityServer
下面的表,包含了一些開源的關於認證(authentication)的提供者,其中就包含IdentityServer
上面關於認證的一些開源項目各有特點
下面簡單說下IdentityServer
IdentityServer是用來幫助公司使用.net建立Identity(標識,注意這里不是上面說的ASP.NET Core Identity框架,而是表示一種標識,即識別用戶的), 和access control(權限控制)的, 包括單點登錄(single sign-on),Identity 管理,授權(authorization)和api 安全. 基於成功的開源項目例如IdentityServer, 可以提供了設計方案的靈活性來滿足你的要求.
IdentityServer是一個中間件,它可以添加符合OpenID Connect和OAuth2.0的終端(endpoints)到一個任意的ASP.NET Core應用.
典型的,你建立一個應用,這個應用包含一個登錄和登出頁面,並且IdentityServer中間件添加必要的協議到應用中,以便客戶端應用可以使用這些標准的協議和這個協議交流。
參考資料:
https://identityserver4.readthedocs.io/en/latest/index.html
https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-2.2
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/community?view=aspnetcore-2.2