IdentityServer流程圖與相關術語

概念圖

 

 
apparch


最多見的交互是:
瀏覽器與web應用程序通訊
web應用程序與web APIs進行通訊
基於瀏覽器的應用程序與web APIs通訊
原生應用與web APIs通訊
基於服務的應用程序與web APIs通訊
web APIs與web APIs進行通訊html

 

一般,每一個層(前端、中間層和後端)都必須保護資源,並實現身份認證和受權.因此它們一般是針對同一個用戶進行存儲.
將這些基本安全功能外包給安全令牌服務,能夠防止在這些應用程序和端點之間複製該功能.
對應用程序進行重構以支持安全令牌服務,這將造成如下體系結構和協議:前端

 
protocols


這樣的設計將安全問題分爲兩部分:web

 

認證

當應用程序須要知道當前用戶的身份時,須要進行身份驗證。 一般,這些應用程序表明該用戶管理數據,而且須要確保該用戶只能訪問他被容許的數據。 最多見的例子是(經典)Web應用程序 - 可是基於原生和基於JS的應用程序也須要進行身份驗證。
最多見的身份驗證協議是SAML2p,WS-Federation和OpenID Connect - SAML2p是最流行和最普遍部署的。
OpenID Connect是三款中最新的,但被認爲是將來的趨勢,由於它具備現代應用的最大潛力。 它是從一開始就構建用於移動應用場景的,而且被設計爲API友好。後端

API 訪問

應用程序有兩種基本的方式與API通訊:使用應用程序標識或委派用戶的身份。 有時候兩種方法須要組合使用。
OAuth2是容許應用程序從安全令牌服務請求訪問令牌,並使用它們與API進行通訊的協議。這種方式減小了客戶端應用程序和API的複雜性,由於認證和受權能夠集中在了一塊兒。瀏覽器

OpenID Connect和OAuth 2.0:一塊兒食用更佳

OpenID Connect和OAuth 2.0很是類似,實際上OpenID Connect是在OAuth 2.0之上的擴展。兩個基本的安全考慮,身份驗證和API訪問,被組合成了一個單一的協議,一般與安全令牌服務一塊兒單一往返。
咱們認爲OpenID Connect和OAuth 2.0的組合是在可預見的將來保護現代應用程序的最佳方法。IdentityServer4是這兩個協議的實現,而且通過高度優化,能夠解決當今移動,原生和Web應用程序的典型安全問題。安全

術語

 
terminology

IdentityServer

IdentityServer是一個OpenID Connect提供程序,它實現了OpenID Connect和OAuth 2.0協議。
不一樣的文獻對於相同的角色使用不一樣的術語 - 您可能還會發現安全令牌服務,身份提供者,受權服務器,IP-STS等。
但簡而言之,它們都是同樣的:一種向客戶端發出安全令牌的軟件。服務器

IdentityServer有許多工做和功能 - 包括:
1.保護您的資源
2.使用本地賬戶商店或經過外部身份提供商對用戶進行身份驗證
3.提供會話管理和單點登陸
4.管理和驗證客戶端
5.提供身份和訪問令牌給客戶
6.驗證令牌app

用戶(User)

用戶是使用註冊的客戶端訪問資源的人。ide

客戶端(Client)

客戶端是從IdentityServer請求令牌的軟件,用於驗證用戶(請求身份令牌)或訪問資源(請求訪問令牌)。 必須首先向IdentityServer註冊客戶端才能請求令牌。
客戶端的示例是Web應用程序,移動或桌面應用程序,SPA,服務器進程等。優化

資源(Resources)

資源是要用IdentityServer保護的資源,包括用戶的身份信息或API。
每一個資源都有一個惟一的名稱,客戶端使用這個名稱來指定他們想要訪問的資源。
用戶的身份信息,包括名稱或電子郵件等。
API資源則是客戶端想要調用的功能,它們一般是Web API,但不必定。

身份令牌(Identity Token)

身份令牌表示身份驗證過程的結果。它至少包含1.用戶的標識,2.用戶如何以及什麼時候進行身份驗證的信息。它也能夠包含其餘身份信息。

訪問令牌(Access Token)

訪問令牌容許用戶訪問API資源,客戶端請求訪問令牌並將其轉發到API。訪問令牌包含有關客戶端和用戶的信息,API使用該信息來受權用戶訪問它的數據。
翻譯自:https://identityserver4.readthedocs.io/en/release/intro/terminology.html

相關文章
相關標籤/搜索