這篇文章可能你們會以爲很空洞,沒有實際的實戰東西,主要是本身整理出來的IdentityServer4 的一些概念性的東西;若是你對IdentityServer4
有過必定的實戰經驗,能夠跳過不須要閱讀該文章,後續我會以一個Demo 來給你們帶來IdentityServer4深刻的實戰分享 。html
IdentityServer4
是一個用於ASP.Net Core的OpenID Connect
和OAuth 2.0
框架web
OAuth 2.0
是受權的行業標準協議。OAuth 2.0側重於客戶端開發人員的簡單性,同時爲web應用程序、桌面應用程序、移動應用等提供特定的受權流。該規範及其擴展正在IETF OAuth工做組內開發。api
簡單說,OAuth 就是一種受權機制。數據的全部者告訴系統,贊成受權第三方應用進入系統,獲取這些數據。系統從而產生一個短時間的進入令牌(token),用來代替密碼,供第三方應用使用。服務器
OAuth 2.0 規定了四種得到令牌的流程。你能夠選擇最適合本身的那一種,向第三方應用頒發令牌。無論哪種受權方式,第三方應用申請令牌以前,都必須先到系統備案,說明本身的身份,而後會拿到兩個身份識別碼:客戶端 ID(client ID)和客戶端密鑰(client secret)。這是爲了防止令牌被濫用,沒有備案過的第三方應用,是不會拿到令牌的。下面就是這四種受權方式。框架
OAuth 總體流程圖:
ide
具體的OAuth 2.0 四大受權方式請參考 阮一峯 的博客 OAuth 2.0 的四種方式網站
OpenID Connect的
的簡稱是OIDC
,OIDC=(Identity, Authentication) + OAuth 2.0。它在OAuth2上構建了一個身份層,是一個基於OAuth2協議的身份認證標準協議。咱們都知道OAuth2是一個受權協議,它沒法提供完善的身份認證功能,OIDC使用OAuth2的受權服務器來爲第三方客戶端提供用戶的身份認證,並把對應的身份認證信息傳遞給客戶端,且能夠適用於各類類型的客戶端(好比服務端應用,移動APP,JS應用),且徹底兼容OAuth2,也就是說你搭建了一個OIDC的服務後,也能夠看成一個OAuth2的服務來用。應用場景如圖:
3d
IdentityServer4
集成到你的應用具備以下功能特色:code
IdentityServer是將規範兼容的OpenID Connect和OAuth 2.0端點添加到任意ASP.NET Core應用程序的中間件。一般,您構建(或從新使用)包含登陸和註銷頁面的應用程序,IdentityServer中間件會向其添加必要的協議頭,以便客戶端應用程序能夠與其對話 使用這些標準協議。
server
以上若是有錯誤的地方,請你們積極糾正,謝謝你們的支持!!