日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从壹开始 [ Id4 ] 之一║ 授权服务器 IdentityServer4 开篇讲计划书

發(fā)布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从壹开始 [ Id4 ] 之一║ 授权服务器 IdentityServer4 开篇讲计划书 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

哈嘍大家周四好!時間過的很快,現(xiàn)在已經(jīng)是三月份了,我的?IdentityServer4?教程也拖了一定的時間了,正好最近有精力學(xué)新東西了,主要中間被小伙伴要求寫一個管理后臺,目前1.0已經(jīng)上線(《權(quán)限后臺系統(tǒng)?1.0?正式上線》),平時也一直開發(fā)維護(hù)中,希望能達(dá)到更優(yōu)吧。

開發(fā)之余,晚上的時候,一直慢慢的學(xué)習(xí)?Id4,經(jīng)過了大概半個月的簡單資料尋找和學(xué)習(xí),對?Id4?有了初步的認(rèn)識,發(fā)現(xiàn)隨著不斷地學(xué)習(xí),其實(shí)也沒有剛開始學(xué)的時候的那種莫名的恐懼感了(有些小伙伴應(yīng)該會有和我一樣的心情,就是初學(xué)一門技術(shù)的時候,內(nèi)心總是很恐慌的,比如我當(dāng)時學(xué)DDD(地址:《D3模式設(shè)計初探?與?我的計劃書》),其實(shí)我認(rèn)為我們恐慌的不是學(xué)不會,而是對學(xué)習(xí)動力的不自信,大膽的學(xué)就對了,哪怕最后只知道OAuth是啥,哪怕最后只會照著套模板,也是一種成功!)。

從今天起,我將慢慢的更新?IdentityServer4?系列,因為我還沒有學(xué)習(xí)完,所以會一邊學(xué)習(xí)一邊開發(fā),最后形成一個統(tǒng)一的服務(wù)項目,初步打算把所有開源的這些項目(Blog.Vue、Blog.tBug、Blog.Admin、DDD等,相關(guān)項目參看開源地址?https://github.com/anjoy8)都集中到這一個授權(quán)服務(wù)器上,我暫時取名為?Blog.IdentityServer?,正好有 vue/js 項目,也有 MVC 項目,{把這個系列寫完,前后端分離就差不多了,我也不打算再寫了},至于如何搭建倉庫,如何多項目調(diào)用,這我先斟酌下,會在以后的文章中,一一說到,因為要用到?EFCore?來處理用戶數(shù)據(jù),我個人感覺這還是一個很實(shí)用的項目,畢竟這幾個都是實(shí)實(shí)在在的有血有肉的工程,不只是一個簡單的Demo,自己都可以拿來改改優(yōu)化優(yōu)化,直接用了(我這王婆賣瓜也是沒誰了?)。

本文只是一個開篇講,不會涉及到內(nèi)容知識點(diǎn),有很多小伙伴都是一直看我的文章的,特別是看過我寫的JWT?微軟官方自帶授權(quán)認(rèn)證的《JWT授權(quán)》,如果之前的你能看懂,或者八成懂,那么這個系列肯定也能,如果以前的都看不懂,(⊙﹏⊙),只能說咱們緣分太淺?。

廢話不多說,先把我這兩周的小成果展示下,當(dāng)然,現(xiàn)在很low,以后會各種優(yōu)化和改進(jìn),預(yù)計會有十篇文章,

故事背景

這個是我的第一個 Vue.js 項目?Blog.Vue,(長的很丑,我決定趁著這個機(jī)會,把這個美化一下,畢竟我也是看臉的,先用這個練練手,其他的再慢慢更新授權(quán)),這個項目首頁不需要登錄,但是詳情頁需要用戶登錄,之前我是走的?Blog.Core?很普通的登錄,那以后全部會走?Blog.IdentityServer?統(tǒng)一授權(quán)服務(wù)器了,請注意是兩個端口/域名(Vue是6688端口,Id4是5002端口):

可能你會感覺很簡單,不就是一個客戶端跳轉(zhuǎn)到授權(quán)服務(wù)器嘛,然后登錄了再跳轉(zhuǎn)過來,增加了個用戶角色授權(quán),額,我也感覺挺簡單的,可是我一個月前真不是這么認(rèn)為的,當(dāng)時我感覺還是有點(diǎn)兒難度,現(xiàn)在看起來還可以,所以說,Id4想入門還是可以的,至于后期匹配的微服務(wù)了,API網(wǎng)關(guān)了,負(fù)載均衡了,嗯,來日方長。

1、源代碼Github

授權(quán)服務(wù):https://github.com/anjoy8/Blog.IdentityServer

資源服務(wù):https://github.com/anjoy8/Blog.Core

客戶端一:https://github.com/anjoy8/Blog.Admin

以后每一個項目修改完登錄授權(quán),這里就列舉一個,爭取把所有項目的授權(quán)都遷到?Id4?服務(wù)器上。

2、本系列文章一覽

  • 01 ║ 授權(quán)服務(wù)器 IdentityServer4 開篇講&計劃書

  • 02 ║ 基礎(chǔ)知識集合 & 項目搭建一

1、先看看概念

我們通過查看官網(wǎng),就看到官方很明顯的定義(下文的必看文檔中有官網(wǎng)地址):

IdentityServer4 is an OpenID Connect and OAuth 2.0 framework for ASP.NET Core 2.

IdentityServer是基于OpenID?Connect協(xié)議標(biāo)準(zhǔn)的身份認(rèn)證和授權(quán)程序,它實(shí)現(xiàn)了OpenID?Connect?和?OAuth?2.0?協(xié)議。

同一種概念,不同的文獻(xiàn)使用不同的術(shù)語,比如你看到有些文獻(xiàn)把他叫做安全令牌服務(wù)(Security Token Service),
身份提供(Identity?Provider),授權(quán)服務(wù)器(Authorization?Server),IP-STS?等等。其實(shí)他們都是一個意思,目的都是在軟件應(yīng)用中為客戶端頒發(fā)令牌并用于安全訪問的。

IdentityServer有許多功能:

保護(hù)你的資源
使用本地帳戶或通過外部身份提供程序?qū)τ脩暨M(jìn)行身份驗證
提供會話管理和單點(diǎn)登錄
管理和驗證客戶機(jī)
向客戶發(fā)出標(biāo)識和訪問令牌
驗證令牌

2、它有什么優(yōu)點(diǎn)?

?

現(xiàn)在的應(yīng)用開發(fā)層出不窮,基于瀏覽器的網(wǎng)頁應(yīng)用,基于微信的公眾號、小程序,基于IOS、Android的App,基于Windows系統(tǒng)的桌面應(yīng)用和UWP應(yīng)用等等,這么多種類的應(yīng)用,就給應(yīng)用的開發(fā)帶來的挑戰(zhàn),我們除了分別實(shí)現(xiàn)各個應(yīng)用外,我們還要考慮各個應(yīng)用之間的交互,通用模塊的提煉,其中身份的認(rèn)證和授權(quán)就是每個應(yīng)用必不可少的的一部分。而現(xiàn)在的互聯(lián)網(wǎng),對于信息安全要求又十分苛刻,所以一套統(tǒng)一的身份認(rèn)證和授權(quán)就至關(guān)重要。

優(yōu)點(diǎn):簡單

因此,從實(shí)現(xiàn)者的角度來看,我在OAuth?2中看到的主要優(yōu)點(diǎn)是復(fù)雜性降低。它不需要請求簽名過程,這是不是很難,但肯定是fiddly。它大大減少了作為服務(wù)的客戶端所需的工作,這是(在現(xiàn)代的,移動世界)你最想要最小化疼痛的地方。在服務(wù)器?–?>內(nèi)容提供者端的降低的復(fù)雜性使其在數(shù)據(jù)中心中更具可擴(kuò)展性。

它將標(biāo)準(zhǔn)的一些擴(kuò)展編碼為OAuth?1.0a(如xAuth),現(xiàn)在廣泛使用。

大多數(shù)的應(yīng)用都如上所示,基本上都是通過客戶端對API進(jìn)行請求(瀏覽器、Web程序、本機(jī)應(yīng)用程序)等。當(dāng)你的項目到了一定得范圍和大小之后,就有可能去使用Nginx,這個時候,也必須考慮站點(diǎn)的安全性,因為不能讓你的核心業(yè)務(wù)信任外界任何的調(diào)用.當(dāng)然還有的時候,我們的擁有自己的一套API,為自己服務(wù)進(jìn)行使用,我們不想讓別人來調(diào)用我們的,這個時候也可以進(jìn)行使用。

這里引用下圣杰的圖,圣杰是我知道為數(shù)不多的,知識和Code都很強(qiáng)的大佬,曾經(jīng)有緣聊過兩句。

1、用到了哪些知識點(diǎn)

正如上邊的結(jié)構(gòu)腦圖中顯示的,大概就是這么多,可能你會感覺很多,開始你簡單看一下,有些概念咱們在講?JWT?授權(quán)的時候,都說過見過,甚至親身用過,比如:JWT(以及其中的iss、sub、expires等等),Claim,?Authentication,access_token,還有所謂的API?Resource資源。

  • OAuth 2.0 簡介???

  • OpenID 和 OAuth 的區(qū)別???

  • 客戶端授權(quán)模式(Client Credentials)??

  • 密碼授權(quán)模式(Resource Owner Password Credentials)?

  • 授權(quán)碼授權(quán)模式(Authorization Code Flow,MVC調(diào)用)?

  • 簡化授權(quán)模式-OpenID(Implicit Flow,JS/Vue 客戶端調(diào)用)?

  • 混合模式-OpenID & OAuth(Hybrid Flow,角色+策略授權(quán))?

  • 集成 ASP.NET Core Identity and EntityFramework Core? ?

  • 單點(diǎn)登錄? ?

  • 刷新登錄 RefreshToken? ?

  • 外部登錄(比如QQ、Google、Github等)?

2、部分結(jié)構(gòu)/流程圖

?

(Authorization Code)

?

(使用 OpenID Connect 的身份驗證流)

3、必看文檔

我一直堅信,只要把官方文檔啃透了,肯定能學(xué)會,至少會七成,好多人都沒有養(yǎng)成這個習(xí)慣,就直接看Demo了,希望大家還是先看看文檔。

IdentityServer4:https://identityserver4.readthedocs.io/en/latest/

OAuth2.0:https://oauth.net/2/

OpenID?Connect:https://openid.net/connect/

1、https://docs.azure.cn/zh-cn/active-directory/develop/authentication-scenarios

2、https://github.com/IdentityServer/IdentityServer4.Samples

3、IdentityServer4 for OpenID Connect 和 OAuth 2.0

4、identity server 4

?以后會上傳本系列 Id4 倉庫...

原文地址:https://www.cnblogs.com/laozhang-is-phi/p/10483922.html

.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的从壹开始 [ Id4 ] 之一║ 授权服务器 IdentityServer4 开篇讲计划书的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。