Asp.Net Core IdentityServer4 中的基本概念

1、前言

這篇文章可能你們會以爲很空洞,沒有實際的實戰東西,主要是本身整理出來的IdentityServer4 的一些概念性的東西;若是你對IdentityServer4有過必定的實戰經驗,能夠跳過不須要閱讀該文章,後續我會以一個Demo 來給你們帶來IdentityServer4深刻的實戰分享 。html

2、概述

IdentityServer4是一個用於ASP.Net Core的OpenID ConnectOAuth 2.0框架web

2.1 什麼是OAuth 2.0?

OAuth 2.0是受權的行業標準協議。OAuth 2.0側重於客戶端開發人員的簡單性,同時爲web應用程序、桌面應用程序、移動應用等提供特定的受權流。該規範及其擴展正在IETF OAuth工做組內開發。api

簡單說,OAuth 就是一種受權機制。數據的全部者告訴系統,贊成受權第三方應用進入系統,獲取這些數據。系統從而產生一個短時間的進入令牌(token),用來代替密碼,供第三方應用使用。服務器

OAuth 2.0 規定了四種得到令牌的流程。你能夠選擇最適合本身的那一種,向第三方應用頒發令牌。無論哪種受權方式,第三方應用申請令牌以前,都必須先到系統備案,說明本身的身份,而後會拿到兩個身份識別碼:客戶端 ID(client ID)和客戶端密鑰(client secret)。這是爲了防止令牌被濫用,沒有備案過的第三方應用,是不會拿到令牌的。下面就是這四種受權方式。框架

  • authorization code(受權碼模式)
  • implicit(簡化模式)
  • resource owner password credentials(密碼模式)
  • client credentials(客戶端模式)

OAuth 總體流程圖:
ide

具體的OAuth 2.0 四大受權方式請參考 阮一峯 的博客 OAuth 2.0 的四種方式網站

2.2 什麼是OpenId Connect

OpenID Connect的 的簡稱是OIDC,OIDC=(Identity, Authentication) + OAuth 2.0。它在OAuth2上構建了一個身份層,是一個基於OAuth2協議的身份認證標準協議。咱們都知道OAuth2是一個受權協議,它沒法提供完善的身份認證功能,OIDC使用OAuth2的受權服務器來爲第三方客戶端提供用戶的身份認證,並把對應的身份認證信息傳遞給客戶端,且能夠適用於各類類型的客戶端(好比服務端應用,移動APP,JS應用),且徹底兼容OAuth2,也就是說你搭建了一個OIDC的服務後,也能夠看成一個OAuth2的服務來用。應用場景如圖:
3d

2.3 IdentityServer4功能特性

IdentityServer4集成到你的應用具備以下功能特色:code

  • Authentication as a Service:能夠爲你的應用(如網站、本地應用、移動端、服務)作集中式的登陸邏輯和工做流控制。IdentityServer是徹底實現了OpenID Connect協議標準
  • Single Sign-on / Sign-out:在多個應用程序類型上進行單點登陸(和單點退出)。
  • Access Control for APIs:爲不一樣類型的客戶端,例如服務器到服務器、web應用程序、SPAs和本地/移動應用程序,發出api的訪問令牌。
  • Federation Gateway:支持來自Azure Active Directory, Google, Facebook這些知名應用的身份認證,能夠沒必要關心鏈接到這些應用的細節就能夠保護你的應用。
  • Focus on Customization:最重要的是identityserver能夠根據需求自行開發來適應應用程序的變化。identityserver不是一個框架、也不是一個盒裝產品或一個saas系統,您能夠編寫代碼來適應各類場景。

2.4 IdentityServer4 能夠幫助咱們作什麼?

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

以上若是有錯誤的地方,請你們積極糾正,謝謝你們的支持!!

相關文章
相關標籤/搜索