Tips:本篇已加入,,.Net core 3.1 使用IdentityServer4 實現(xiàn) OAuth2.0 --閱讀目錄 ,。 前言如果大家英語比較好 可以看下 OAuth2.0官網(wǎng)(https:///2/),,當(dāng)然英語不好也沒關(guān)系 我們看一下,,下面一段描述: OAuth(開放授權(quán))是一個開放標(biāo)準(zhǔn),,允許用戶授權(quán)第三方網(wǎng)站訪問他們存儲在另外的服務(wù)提供者上的信息,而不需要將用戶名和密碼提供給第三方網(wǎng)站或分享他們數(shù)據(jù)的所有內(nèi)容. 開始做過微信授權(quán)的同學(xué)們應(yīng)該都知道,,自己開發(fā)的應(yīng)用獲取用戶openid的過程就是一個OAuth認(rèn)證授權(quán)的流程,, 我們看一下微信官方的登錄流程圖:
這個就是一個 符合OAuth 授權(quán)碼模式(authorization code)的流程,當(dāng)我們需要獲取 微信的openid(資源)時,,不是在開發(fā)者應(yīng)用上讓用戶輸入微信號和密碼(其實也沒辦法輸入),, 需要用戶主動接受授權(quán)獲取到code,開發(fā)者拿著code和事先在微信平臺注冊的appid和appsecret,,去訪問微信服務(wù)器換取 openid(資源),。
可能大家有點暈乎了怎么一上來直接講 授權(quán)碼模式 了,之后的章節(jié)中會具體講解各種模式,,這里主要是讓大家先有點感覺,。 名詞定義(1)Third-party application:第三方應(yīng)用程序, 即上圖中的開發(fā)者做的微信小程序,。 (2)HTTP service:HTTP服務(wù)提供商,,本文中簡稱"服務(wù)提供商",即上圖中的微信,。 (3)Resource Owner:資源所有者,,本文中又稱"用戶"(user)。 (4)User Agent:用戶代理,,可以時瀏覽器,,app或者是上圖描述中的 微信小程序。 (5)Authorization server:認(rèn)證服務(wù)器,,即服務(wù)提供商專門用來處理認(rèn)證的服務(wù)器,。 (6)Resource server:資源服務(wù)器,即服務(wù)提供商存放用戶生成的資源的服務(wù)器,。它與認(rèn)證服務(wù)器,,可以是同一臺服務(wù)器,也可以是不同的服務(wù)器,。 認(rèn)證類型官網(wǎng)上描述的類型有以下幾種:
本系列主要是講解Web端的OAuth會講述里面的 5中類型(不包括 PKCE和 Device Code) 但是我還是會大概說一下這兩種模式
之后的章節(jié)主要重點講解
而Refresh Token 存在于各個模式之中,,隨著 .netcore 的流行,IdentityServer4也隨之風(fēng)靡,,下面一節(jié)中會介紹一下 IdentityServer4 里的一些名詞,,便于同學(xué)們理解之后章節(jié) 用ID4 實現(xiàn)各種模式。 |
|