IdentityServer4 中文文檔 -1- (簡介)背景


IdentityServer4 中文文檔 -1- (簡介)背景


原文:http://docs.identityserver.io/en/release/intro/big_picture.html

目 錄

下一篇:IdentityServer4 中文文檔 -2- (簡介)相關術語

現代應用程序看上去大都是這樣的:

常見的交互方式包括:

  • 瀏覽器 與 Web應用程序 通信;
  • Web應用程序 與 Web API 通信(Web應用程序自身 或 代表用戶 與 Web API 通信);
  • 基於瀏覽器的應用程序 與 Web API 通信;
  • 本地應用程序 與 Web API 通信;
  • 基於服務器的應用程序 與 Web API 通信;
  • Web API 與 Web API 通信(WebAPI自身 或 代表用戶與另一個WebAPI 通信);

將基礎安全功能外包給一個安全令牌服務(STS,Security Token Service),能夠避免這些應用程序以及端點之間的功能性重復。

重組應用程序以支持一個安全令牌服務,能夠導出以下架構和協議:

這樣的設計把安全問題分成了兩個部分:

身份認證

當一個應用程序需要知道當前用戶的身份(Identity)的時候就要用到身份認證(Authentication)。通常情況下這些應用程序托管着代表該用戶的數據,並且必須確保該用戶只能訪問被允許訪問的數據。最常見的例子就是傳統的web應用程序 —— 但是本地應用程序和基於JS的應用程序也同樣需要身份認證。

最常見的身份認證協議是 SAML2p、WS-Federation 和 OpenID Connect——SAML2p 是最受歡迎的,也是部署得最廣泛的。

OpenID Connect 是三種協議中最新的一種,但它卻被認為是未來的趨勢,因為它對於現代應用程序來說最具潛力。它從一開始就是為移動應用場景而構建的,並且被設計成了友好的API。

API訪問

應用程序有兩種基礎的方式與API通信 —— 使用應用程序身份,或者使用代表用戶的身份。有時候需要聯合使用這兩種方式。

OAuth2 是一個通信協議,它允許應用程序向安全令牌服務請求訪問令牌,然后通過訪問令牌與API通信。這同時減少了客戶應用程序和API的復雜性,因為認證和授權可以是集中式的。

OpenID Connect和OAuth2 —— 結合使用更好

OpenID Connect和OAuth2非常相似 —— 實際上前者是后者的頂級擴展。它們把兩個基礎安全問題(身份認證和 API 訪問)合並成了一個單一的協議 —— 通常這只是與安全令牌服務的一個往返交互。

我們堅信,將 OpenID Connect 和 OAuth2 結合以保護現代應用程序,在可預見的未來,肯定會是最佳實踐。IdentityServer4 是這兩種協議的實現,並且它已經被高度優化以解決當今 移動應用程序、本地應用程序 和 Web應用程序 的典型安全問題。

IdentityServer4 能做什么?

IdentityServer4 是一個中間件 ,它能夠將符合規范的 OpenID Connect 和 OAuth2.0 端點添加到任意一個 ASP.NET Core 應用程序中。

通常,在你構建(或者復用)一個包含登錄和注銷頁(或者 授權確認頁)的應用程序的時候,IdentityServer 中間件會將需要的協議添加到頁面頭部,這樣一來客戶端應用程序就能夠使用這些標准協議跟它協商了。

你可以根據你的需要使用盡可能復雜的宿主應用程序。但是,為了保持受攻擊面盡可能小, 我們一般建議你只將認證相關的UI包含進來。

目 錄

下一篇:IdentityServer4 中文文檔 -2- (簡介)相關術語


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM