ASP.NET Core身份認證服務框架IdentityServer4 介紹

IdentityServer4是ASP.NET Core 2的OpenID Connect和OAuth 2.0框架。它能夠在您的應用程序中提供如下功能:前端

它使你的應用程序具備以下特色:web

認證即服務

適用於全部應用程序(web, native, mobile, services)的集中登陸邏輯和工做流程。IdentityServer是OpenID Connect的官方認證明現。後端

單點登陸/註銷

多個類型的應用程序在一個點進行登陸和註銷操做。瀏覽器

API 訪問控制

爲各類類型的客戶端頒發API的訪問令牌,例如 服務器到服務器、Web應用程序,SPA、本地應用和移動應用程序。安全

聯合網關

支持Azure Active Directory,Google,Facebook等外部身份提供商。這能夠保護您的應用程序免受如何鏈接到這些外部提供商的詳細信息的影響。服務器

專一於定製

最重要的部分 - IdentityServer的許多方面均可以根據您的需求進行定製。因爲IdentityServer是一個框架而不是現成的產品或SaaS,所以您能夠編寫代碼以使系統適應您的方案。框架

成熟的開源

IdentityServer使用的Apache 2開源協議,容許在其上構建商業產品。它也是.NET Foundation的一部分,它提供治理和法律支持。優化

免費和商業支持

若是您須要幫助構建或運行您的身份平臺,請告知IdentityServer官方。 他們能夠經過多種方式爲您提供幫助。spa

一.總體介紹

現代應用程序看起來更像這個:設計

最多見的相互做用:

  • 瀏覽器與Web應用程序的通訊 Browser -> Web App
  • Web應用程序與Web API通訊
  • 基於瀏覽器的應用程序與Web API
  • 本機應用程序與Web API進行溝通
  • 基於服務器的應用程序與Web API
  • Web API與Web API通訊

一般,每一個層(前端、中間層和後端)必須保護資源並實現身份驗證或受權——一般針對同一個用戶存儲區。

 

將這些基本安全功能外包給安全令牌服務能夠防止在這些應用程序和端點上覆制該功能。

 

應用支持安全令牌服務將引發下面的體系結構和協議:

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

二.認證(Authentication)

認證可讓一個應用程序知道當前用戶的身份。 一般,這些應用程序表明該用戶管理數據,而且須要確保該用戶只能訪問容許他訪問的數據。最多見的示例是Web應用程序,但基於本地和基於js的應用程序也須要進行身份驗證。

 

最經常使用的認證協議saml2p、WS-Federation和OpenID,saml2p協議是最流行和實際應用最多的。

OpenID Connect對於如今應用來講是被認爲是將來最有潛力的,這是專爲移動應用場景設計的,一開始就被設計成對移動應用場景友好。

 

三.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應用的典型安全問題

 

五.IdentityServer4能夠幫助你作什麼

IdentityServer是將規範兼容的OpenID Connect和OAuth 2.0端點添加到任意ASP.NET Core應用程序的中間件。一般,您構建(或從新使用)包含登陸和註銷頁面的應用程序,IdentityServer中間件會向其添加必要的協議頭,以便客戶端應用程序能夠與其對話 使用這些標準協議。

咱們一般建議經過僅包含認證相關的UI來使攻擊面儘量小。

相關文章
相關標籤/搜索