入門教程:.NET開源OpenID Connect 和OAuth解決方案IdentityServer v3 介紹 (一)


現代的應用程序看起來像這樣:

典型的交互操作包括:

  • 瀏覽器與 web 應用程序進行通信
  • Web 應用程序與 web Api (有時是在他們自己的有時代表用戶) 通信
  • 基於瀏覽器的應用程序與 web Api 通信
  • 本機應用程序與 web Api 通信
  • 基於服務器的應用程序與 web Api 通信
  • Web Api 和 web Api 交互(有時是在他們自己有時也代表用戶)

 

通常(前端,中間層和后端)的每一層有保護資源和執行身份驗證和授權的需求 —— 典型的情況是針對同一用戶存儲。這就是為什么業務應用程序/端點本身不實現這些基本的安全功能的,寧願外包給安全令牌服務。這將有了下列安全體系結構:

 

 

這對安全的需求分為兩個部分。

身份驗證

當應用程序需要知道有關當前用戶的身份時,則需身份驗證。通常這些應用程序管理代表該用戶的數據,並且需要確保該用戶僅可以訪問他允許的數據。最常見的例子是 (經典) 的 web 應用程序 —— 但本機和基於 JS 的應用程序,亦有需要進行身份驗證。

最常見的身份驗證協議是 SAML2p, WS-Federation 和 OpenID Connect —- SAML2p 是最受歡迎並被廣泛部署的身份驗證協議。

OpenID Connect是三個中最新的一個,但是通常被認為是未來的方向,因為它在現代應用程序中最具有潛力。它從一開始就是為移動應用程序考慮的,被設計為友好的 API。

API 訪問

應用程序有兩種基本方式 —— 使用應用程序的標識,或委派用戶的身份與API進行溝通。有時這兩種方法必須相結合。

OAuth2 是允許應用程序從安全令牌服務請求訪問令牌並使用它們與Api通信的一個協議。它減少了客戶端應用程序,以及 Api 的復雜性,因為可以進行集中身份驗證和授權。OpenID解決跨站點的認證問題,OAuth解決跨站點的授權問題。認證和授權是密不可分的。而OpenID和OAuth這兩套協議出自兩個不同的組織,協議上有相似和重合的之處,所以想將二者整合有些難度。好在OpenID Connect作為OpenID的下一版本,在OAuth 2.0的協議基礎上進行擴展,很好的解決了認證和授權的統一,給開發者帶來的便利。Thinktecture IdentityServer v3 是一個.NET 平台上開源的OpenID Connect 提供者 和 OAuth2 驗證服務器。


免責聲明!

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



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