AspNetCore3.1_Secutiry源碼解析_1_目錄

文章目錄

  • AspNetCore3.1_Secutiry源碼解析_1_目錄
  • AspNetCore3.1_Secutiry源碼解析_2_Authentication_核心項目
  • AspNetCore3.1_Secutiry源碼解析_3_Authentication_Cookies
  • AspNetCore3.1_Secutiry源碼解析_4_Authentication_JwtBear
  • AspNetCore3.1_Secutiry源碼解析_5_Authentication_OAuth
  • AspNetCore3.1_Secutiry源碼解析_6_Authentication_OpenIdConnect
  • AspNetCore3.1_Secutiry源碼解析_7_Authentication_其餘
  • AspNetCore3.1_Secutiry源碼解析_8_Authorization_核心項目
  • AspNetCore3.1_Secutiry源碼解析_9_Authorization_Policy

概述

最近一直在學習研究認證受權這一塊,從AspNetCore的Security解決方案,到Identity,再到OAuth2.0、OpenIdConnect協議,而後IdentityServer4,這一塊的東西十分多並且複雜,能夠算是DotNet裏最難啃的骨頭之一了。計劃作個認證受權的系列,藉由分析源碼來學習、記錄和加深對這一塊的理解。微信

如圖是AspNetCore.Security解決方案的項目結構。網絡

能夠看到主要有5個解決方案文件夾架構

  • Authentication:認證
  • Authorization:受權
  • CookiePolicy:Cookie策略中間件
  • _dependencies:依賴項目
  • benchmarks:測試項目

最主要的是Authentication和Authorization這兩個裏面的內容。框架

image

什麼是Authentication, 什麼是Authorization

初次接觸這一塊,可能會比較懵,啥玩意兒啊,倆單詞長得差很少像念繞口令的。學習

我嘗試大白話解釋下。測試

Authentication(認證):who are you。系統獲知當前用戶身份的過程就叫認證。能夠類比成身份證。一般來講,在你登陸的時候,系統就知道了你的身份,而後將當前用戶信息加密後存儲在Cookie中來維持登陸態。加密

Authorization(受權):are you allowed。受權就是判斷你有沒有權限,好比網管拿着你身份證一看,你這不行,未滿十八歲,不能在我這上網。而有的黑網吧是沒有這個要求的,給錢就能玩。正經網吧和黑網吧,這就是須要受權資源和匿名資源的區別。翻譯

Authentication項目簡介

咱們能夠看到第三個文件夾叫Core,裏面只有一個項目叫Microsoft.AspNetCore.Authentication,是咱們使用DotNet受權框架必須引用的一個核心類庫。中間件

而後其餘的Certificate、Cookies、OAuth、OpenIdConnect等這些,在DotNet裏叫作Schema,能夠翻譯爲架構。這就比如,證實身份的方式有不少種,身份證、護照、戶口本均可以,同理網絡世界也有各類各樣的協議。最多見傳統的是方式是使用Cookie,也可使用無狀態的JwtBear,如今常見的微信、QQ等掃碼登陸是使用的OAuth協議。blog

Authorization項目簡介

受權就兩個項目,[Microsoft.AspNetCore.Authorization.Policy],[Microsoft.AspNetCore.Authorization]。多看看源碼的話,應該對Policy這個詞很熟悉了,在DotNet裏面屬於高頻詞彙,意思是策略。這兩個項目容許設置不一樣的受權策略/規則,來實現高度靈活的受權方案。

相關文章
相關標籤/搜索