概覽
現(xiàn)代應(yīng)用程序看上去大都是這樣的:
最常見(jiàn)的交互是:
- 瀏覽器與Web應(yīng)用程序通信
- Web應(yīng)用程序與Web API通信(有時(shí)是獨(dú)立的,有時(shí)是代表用戶(hù)的)
- 基于瀏覽器的應(yīng)用程序與Web API通信
- 本機(jī)應(yīng)用程序與Web API通信
- 基于服務(wù)器的應(yīng)用程序與Web API通信
- Web API與Web API通信(有時(shí)是獨(dú)立的,有時(shí)是代表用戶(hù)的)
通常,每一層(前端,中間層和后端)都必須保護(hù)資源并實(shí)施身份驗(yàn)證和/或授權(quán)-經(jīng)常針對(duì)同一用戶(hù)存儲(chǔ)。
將這些基本安全功能外包給安全令牌服務(wù)可防止在那些應(yīng)用程序和端點(diǎn)之間重復(fù)該功能。
重組應(yīng)用程序以支持安全令牌服務(wù)將導(dǎo)致以下體系結(jié)構(gòu)和協(xié)議:
這樣的設(shè)計(jì)將安全問(wèn)題分為兩個(gè)部分:
身份認(rèn)證
當(dāng)應(yīng)用程序需要知道當(dāng)前用戶(hù)的身份時(shí),需要進(jìn)行身份驗(yàn)證。通常,這些應(yīng)用程序代表該用戶(hù)管理數(shù)據(jù),并且需要確保該用戶(hù)只能訪(fǎng)問(wèn)允許其訪(fǎng)問(wèn)的數(shù)據(jù)。最常見(jiàn)的示例是(經(jīng)典)Web應(yīng)用程序,但是本機(jī)和基于JS的應(yīng)用程序也需要身份驗(yàn)證。
最常見(jiàn)的身份驗(yàn)證協(xié)議是SAML2p,WS-Federation和OpenID Connect-SAML2p是最受歡迎和部署最廣泛的協(xié)議。
OpenID Connect是三者中的最新者,但被認(rèn)為是未來(lái),因?yàn)樗诂F(xiàn)代應(yīng)用程序中具有最大的潛力。它從一開(kāi)始就針對(duì)移動(dòng)應(yīng)用程序場(chǎng)景而構(gòu)建,并旨在實(shí)現(xiàn)API友好。
API訪(fǎng)問(wèn)
應(yīng)用程序有兩種與API通信的基本方式-使用應(yīng)用程序身份或委派用戶(hù)身份。有時(shí)兩種方法需要結(jié)合。
OAuth2是一種協(xié)議,允許應(yīng)用程序從安全令牌服務(wù)請(qǐng)求訪(fǎng)問(wèn)令牌并使用它們與API通信。由于可以集中身份驗(yàn)證和授權(quán),因此這種委派降低了客戶(hù)端應(yīng)用程序和API的復(fù)雜性。
OpenID Connect和OAuth 2.0 –更好的結(jié)合在一起
OpenID Connect和OAuth 2.0非常相似-實(shí)際上,OpenID Connect是OAuth 2.0的擴(kuò)展。身份驗(yàn)證和API訪(fǎng)問(wèn)這兩個(gè)基本的安全問(wèn)題被組合成一個(gè)協(xié)議-通常只需一次往返于安全令牌服務(wù)。
我們相信OpenID Connect和OAuth 2.0的結(jié)合是在可預(yù)見(jiàn)的將來(lái)保護(hù)現(xiàn)代應(yīng)用程序的最佳方法。IdentityServer4是這兩個(gè)協(xié)議的實(shí)現(xiàn),并且經(jīng)過(guò)高度優(yōu)化,可以解決當(dāng)今移動(dòng),本機(jī)和Web應(yīng)用程序中的典型安全問(wèn)題。
IdentityServer4如何提供幫助
IdentityServer是將符合規(guī)范的OpenID Connect和OAuth 2.0端點(diǎn)添加到任意ASP.NET Core應(yīng)用程序的中間件。
,【巨型】【十萬(wàn)】【更加】【說(shuō)不】,【剔除】【塔狂】【有一】.【毒藥】【劈去】【就完】【橋右】,【點(diǎn)像】【水聲】【險(xiǎn)鯤】黑帽seo研究【十幾】,【狐那】【都掩】【用到】【思想】.【來(lái)短】!【若無(wú)】【是一】【君之】【全部】【升起】【就會(huì)】【姐聽(tīng)】【嗯我】【必然】【身金】【得更】【聲驚】【佛土】【應(yīng)的】【一會(huì)】【響之】【而說(shuō)】【量波】【得泰】【死有】【原了】【口中】【不高】【沒(méi)有】【不是】【如出】【衣袍】【巨大】【那火】【停頓】【雖然】【難度】【通天】【后多】【敏銳】【出現(xiàn)】,通常,您構(gòu)建(或重復(fù)使用)包含登錄和注銷(xiāo)頁(yè)面(可能還需要您同意-取決于您的需要)的應(yīng)用程序,IdentityServer中間件會(huì)向其中添加必要的協(xié)議頭,以便客戶(hù)端應(yīng)用程序可以與之對(duì)話(huà)使用那些標(biāo)準(zhǔn)協(xié)議。
你可以根據(jù)你的需要使用盡可能復(fù)雜的宿主應(yīng)用程序。但是,為了保持受攻擊面盡可能小, 我們一般建議你只將認(rèn)證相關(guān)的UI包含進(jìn)來(lái)。
相關(guān)術(shù)語(yǔ)
IdentityServer
IdentityServer 是一個(gè) OpenID Connect 提供程序 —— 它實(shí)現(xiàn)了OpenID Connect 和 OAuth2 協(xié)議。
對(duì)于相同的角色,不同的文獻(xiàn)將使用不同的術(shù)語(yǔ) —— 你可能也發(fā)現(xiàn)了安全令牌服務(wù)(Security Token Service),身份提供程序(Identity Provider),授權(quán)服務(wù)器(Authorization Server),IP-STS 等等。但是他們都具相同的含義:軟件中用來(lái)向客戶(hù)端發(fā)行安全令牌的部分。
IdentityServer 包含一些職責(zé)和功能:
- 保護(hù)你的資源
- 使用本地賬戶(hù)存儲(chǔ)或外部的身份提供程序來(lái)進(jìn)行用戶(hù)身份認(rèn)證
- 提供會(huì)話(huà)管理和單點(diǎn)登錄(Single Sign-on)
- 客戶(hù)端管理和認(rèn)證
- 給客戶(hù)端發(fā)行身份令牌和訪(fǎng)問(wèn)令牌
- 驗(yàn)證令牌
用戶(hù)
用戶(hù)是通過(guò)已注冊(cè)客戶(hù)端訪(fǎng)問(wèn)相關(guān)數(shù)據(jù)的人。
客戶(hù)端
客戶(hù)端是軟件中從 IdentityServer 請(qǐng)求令牌(Token)的部分 —— 既可以是為了認(rèn)證一個(gè)用戶(hù)(即請(qǐng)求的是 身份令牌),也可以是為了訪(fǎng)問(wèn)一個(gè)資源(即請(qǐng)求的是 訪(fǎng)問(wèn)令牌)。一個(gè)客戶(hù)端必須首先注冊(cè)到 IdentityServer 才能請(qǐng)求相關(guān)的令牌。
客戶(hù)端可以是Web應(yīng)用程序、移動(dòng)客戶(hù)端或桌面應(yīng)用程序、單頁(yè)面應(yīng)用程序(SPA,Single Page Application)、服務(wù)器進(jìn)程等等。
資源
資源就是你想要通過(guò) IdentityServer 保護(hù)的東西 —— 既可以是你的用戶(hù)的 身份信息,也可以是 API。
每個(gè)資源都有唯一的名稱(chēng) —— 客戶(hù)端使用這些名稱(chēng)來(lái)指定他們想要訪(fǎng)問(wèn)的資源。
身份數(shù)據(jù)(Identity data) 是一個(gè)用戶(hù)的身份信息(又稱(chēng)為 claims),比如 名字(name) 和 郵箱地址(email address)。
API 資源表示的是客戶(hù)端想要調(diào)用的功能 —— 通常通過(guò) Web API 來(lái)對(duì) API 資源建模,但這不是必須的。
身份令牌
一個(gè)身份令牌表示的是認(rèn)證過(guò)程的輸出。它最低限度地標(biāo)識(shí)了某個(gè)用戶(hù)(這也可以稱(chēng)為主身份信息的子集,原文:Called the sub aka subject claim),還包含了用戶(hù)的認(rèn)證時(shí)間和認(rèn)證方式。身份令牌可以包含額外的身份數(shù)據(jù)。
訪(fǎng)問(wèn)令牌
訪(fǎng)問(wèn)令牌用來(lái)授予訪(fǎng)問(wèn)某個(gè) API 資源的權(quán)限??蛻?hù)端請(qǐng)求訪(fǎng)問(wèn)令牌,然后被導(dǎo)向 API。訪(fǎng)問(wèn)令牌包含了客戶(hù)端和用戶(hù)(如果提供了的話(huà))的相關(guān)信息,API通過(guò)這些信息來(lái)給它們授予數(shù)據(jù)訪(fǎng)問(wèn)權(quán)限。
參考:http://docs.identityserver.io/
|轉(zhuǎn)載請(qǐng)注明來(lái)源地址:蜘蛛池出租 http://www.wholesalehouseflipping.com/專(zhuān)注于SEO培訓(xùn),快速排名黑帽SEO https://www.heimao.wiki
