關於Identity和IdentityServer初學的時候可能會有一些疑惑(雖然我也不是很精深吧),可是,這裏說一下本身關於這二者的一些理解,若有錯誤,歡迎指正html
整體上,數據庫
ASP.NET Core Identity 是用來在ASP.NET Core 應用中增長登陸功能的。用戶可使用存儲在Identity中的登陸信息建立一個帳戶,或者他們可使用第三方登陸,支持的一些第三方登陸:Facebook,Google,Microsoft Account,Twitter。固然,你能夠集成一些國內的,QQ等api
Identity能夠被配置爲使用SQL Server數據庫存儲用戶名,密碼,和其餘信息。固然,你也可使用另外一個持久化存儲,例如Azure Table Storage安全
ASP.NET Core Identity提供了一個用來管理和存儲用戶帳戶的框架,在ASP.NET Core應用中。當你在建立項目時,身份驗證選擇的是Individual User Accounts(我的用戶帳戶),Identity被添加到了你的項目中。Identity默認使用的是Entity Framework Core 數據模型。框架
關於這個,能夠看下這個ide
下面的表,包含了一些開源的關於認證(authentication)的提供者,其中就包含IdentityServerspa
上面關於認證的一些開源項目各有特色.net
下面簡單說下IdentityServer設計
IdentityServer是用來幫助公司使用.net創建Identity(標識,注意這裏不是上面說的ASP.NET Core Identity框架,而是表示一種標識,即識別用戶的), 和access control(權限控制)的, 包括單點登陸(single sign-on),Identity 管理,受權(authorization)和api 安全. 基於成功的開源項目例如IdentityServer, 能夠提供了設計方案的靈活性來知足你的要求. server
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