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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

技术分享|明源云天际集成开放平台接口中心基于IdentityServer4的鉴权机制

發(fā)布時間:2023/12/4 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 技术分享|明源云天际集成开放平台接口中心基于IdentityServer4的鉴权机制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


源寶導(dǎo)讀:企業(yè)數(shù)字化生態(tài)建設(shè)中為解決集成多樣性和資源統(tǒng)一管理的痛點引入企業(yè)級網(wǎng)關(guān),網(wǎng)關(guān)作為資源訪問的大門,身份認證鑒權(quán)是其業(yè)務(wù)的重中之重,本文將介紹企業(yè)級網(wǎng)關(guān)-天際集成開放平臺是如何通過IdentityServer4來做到身份認證和鑒權(quán)業(yè)務(wù)的。

天際集成開放平臺業(yè)務(wù)簡述

明源云天際集成開放平臺(以下簡稱“集成平臺”)是明源打造的一套高可用、高并發(fā)、高性能的企業(yè)網(wǎng)關(guān),是解決企業(yè)數(shù)字化生態(tài)打造中的資源連接多樣性和資源生態(tài)管理困難等痛點。企業(yè)周邊生態(tài)復(fù)雜多樣,各種業(yè)務(wù)系統(tǒng)層出不窮,給資源的統(tǒng)一管理和連接帶來了巨大的挑戰(zhàn)。

集成平臺采用分布式系統(tǒng)架構(gòu),來應(yīng)對挑戰(zhàn)。由接口中心、連接中心、事件中心、門戶、監(jiān)控中心、服務(wù)流ETL和方案中心等組成(如圖1所示),其中接口中心是系統(tǒng)的統(tǒng)一入口,負責(zé)資源的管理,所有的請求都由接口中心來轉(zhuǎn)發(fā)處理,其他中心負責(zé)其相關(guān)核心業(yè)務(wù)。

結(jié)合這次分享的主題,我將對接口中心基于IdentityServer4的鑒權(quán)機制進行詳細的分享,其他業(yè)務(wù)將在后續(xù)的文章中體現(xiàn),敬請期待。

(圖1)

IdentityServer4 徽標

IdentityServer4 介紹

IdentityServer4框架,是為ASP.NET CORE量身定制的實現(xiàn)了?OpenID Connect?和?OAuth 2.0?的認證授權(quán)中間件。

IdentityServer4 官方支持時間和商業(yè)許可

IdentityServer4 官方錯誤修復(fù)和安全更新的維護時間直到2022年11月。
IdentityServer4 使用?Apache2?許可的許可證,該許可證允許在其之上構(gòu)建商業(yè)產(chǎn)品。

一、概述

由于接口中心的特殊定位,使其還兼顧著網(wǎng)關(guān)相關(guān)的安全策略和統(tǒng)一業(yè)務(wù)處理。在接口中心的設(shè)計上選擇了.NET生態(tài)中一套非常成熟的網(wǎng)關(guān)設(shè)計方案 Ocelot + Consul + IdentityServer4,集成平臺基于自身業(yè)務(wù)的需要在Ocelot的運行管道中進行了相關(guān)中間件的擴展,如圖2所示。其中Api鑒權(quán)中心中間件的設(shè)計便是結(jié)合了IdentityServer4相關(guān)技術(shù)來進行打造的。

集成平臺為客戶連接一切可連接的資源,用戶在將資源進行上線管理時,擔(dān)憂的是安全問題、訪問權(quán)限問題。針對這兩點,首先我們提供了統(tǒng)一的網(wǎng)關(guān)入口,建議用戶將資源放在內(nèi)網(wǎng),隔絕外網(wǎng)直接訪問資源,然后針對需要獲取客戶資源的第三方用戶,提供網(wǎng)關(guān)的Token頒發(fā)地址,目前我們支持三種獲取Token的接口,分別為 JWT(Json web token)、OAuth2.0 Client、OAuth2.0 Sign。在平臺上客戶會給第三方添加應(yīng)用,為應(yīng)用分配AppKey和AppSecret,第三方用戶拿到AppKey和AppSecret來請求Token獲取令牌。在給第三方應(yīng)用頒發(fā)Token時,會將授權(quán)資源信息保存起來,供身份認證通過后,進行資源授權(quán)校驗,綜上所述,如圖3所示。

為了更好讓大家理解 IdentityServer4 下面將對它進行詳細的說明,并結(jié)合集成平臺的身份認證授權(quán)案列來進行闡述。

(圖2)

(圖3)

二、相關(guān)術(shù)語解釋

① User:用戶

② Client:客戶端

③ Resources:Identity Data(身份數(shù)據(jù))、Apis

④ Identity Server:認證授權(quán)服務(wù)器

⑤ Token:Access Token(訪問令牌)和 Identity Token(身份令牌)

⑥ JWT:Json web token 詳情請看JWT官網(wǎng)

三、OAuth2.0和OpenId Connect協(xié)議理解

由于OAuth2.0和OpenId Connect協(xié)議在網(wǎng)絡(luò)上,有很多技術(shù)文章進行解說了,大家可以自行百度了解,這里簡單說下這兩種協(xié)議的定義和相關(guān)點說明。 (一)OAuth 2.0用于授權(quán)

定義:OAuth(開放授權(quán))是一個開放標準,目前的版本是2.0。允許用戶授權(quán)第三方移動應(yīng)用訪問他們存儲在其他服務(wù)商上存儲的私密的資源(如照片,視頻,聯(lián)系人列表),而無需將用戶名和密碼提供給第三方應(yīng)用。OAuth允許用戶提供一個令牌而不是用戶名和密碼來訪問他們存放在特定服務(wù)商上的數(shù)據(jù)。每一個令牌授權(quán)一個特定的網(wǎng)站內(nèi)訪問特定的資源(例如僅僅是某一相冊中的視頻)。這樣,OAuth可以允許用戶授權(quán)第三方網(wǎng)站訪問他們存儲在另外服務(wù)提供者的某些特定信息,而非所有內(nèi)容。

1、OAuth2.0 定義了四種授權(quán)模式:

(1)Implicit:簡化模式;直接通過瀏覽器的鏈接跳轉(zhuǎn)申請令牌。

(A)客戶端攜帶client_id、redirect_uri,中間通過代理者訪問授權(quán)服務(wù)器,如果已經(jīng)登錄過會直接返回redirect_uri,沒有登錄過就跳轉(zhuǎn)到登錄頁面

(B)授權(quán)服務(wù)器對客戶端進行身份驗證(通過用戶代理,讓用戶輸入用戶名和密碼)

(C)授權(quán)通過,會重定向到redirect_uri并攜帶授權(quán)碼token作為uri參數(shù)

(D)客戶端攜帶授權(quán)碼訪問資源服務(wù)器

(E)驗證token通過,返回資源

(圖4)

(2)Client Credentials:客戶端憑證模式,是最簡單的授權(quán)模式,因為授權(quán)的流程僅發(fā)生在Client與Identity Server之間。該模式的適用場景為服務(wù)器與服務(wù)器之間的通信。比如對于一個房地產(chǎn)ERP系統(tǒng),將房產(chǎn)庫存和銷售分拆為兩個服務(wù)分別部署。銷售系統(tǒng)需要訪問庫存系統(tǒng)進行房間的跟蹤,庫存系統(tǒng)需要訪問銷售系統(tǒng)的銷售單號信息進行房間信息的定時刷新。而這兩個系統(tǒng)之間服務(wù)的授權(quán)就可以通過這種模式來實現(xiàn)。

(圖5)

(3)Resource Owner Password Credentials:密碼模式相較于客戶端憑證模式,多了一個參與者,就是User(資源所有者)。通過User的用戶名和密碼向Identity Server申請訪問令牌。這種模式下要求客戶端不得儲存密碼。但我們并不能確保客戶端是否儲存了密碼,所以該模式僅適用于受信任的客戶端。否則會發(fā)生密碼泄露的危險。該模式不推薦使用。

(圖6)

(4)Authorization Code:授權(quán)碼模式是一種混合模式,是目前功能最完整、流程最嚴密的授權(quán)模式。它主要分為兩大步驟:認證和授權(quán)。其流程為:

(A)用戶訪問客戶端,客戶端將用戶導(dǎo)向Identity Server。

(B)用戶填寫憑證信息向客戶端授權(quán),認證服務(wù)器根據(jù)客戶端指定的重定向URI,并返回一個【Authorization Code】給客戶端。

(C)客戶端根據(jù)【Authorization Code】向Identity Server申請【Access Token】

(圖7)

(二)OpenId Connect用于授權(quán)身份認證

定義:OpenID Connect 1.0 是基于OAuth 2.0協(xié)議之上的簡單身份層,它允許客戶端根據(jù)授權(quán)服務(wù)器的認證結(jié)果最終確認終端用戶的身份,以及獲取基本的用戶信息;它支持包括Web、移動、JavaScript在內(nèi)的所有客戶端類型去請求和接收終端用戶信息和身份認證會話信息;它是可擴展的協(xié)議,允許你使用某些可選功能,如身份數(shù)據(jù)加密、OpenID提供商發(fā)現(xiàn)、會話管理等。

(三)JWT 理解

我們使用的Token格式為JWT(Json web token)。其特殊的三段式結(jié)構(gòu)結(jié)合簽名的方式,使Token更加的安全和可讀(頭部和有效載荷都為Base64URl加碼)。而且這種類型的Token的特點非常適合Http無狀態(tài)的方式,讓分布式的系統(tǒng)通過Jwt來作為身份和認證的統(tǒng)一令牌,讓服務(wù)器無狀態(tài),無關(guān)聯(lián)影響。

四、集成平臺身份認證授權(quán)案例

在前言中提到我們在Ocelot網(wǎng)關(guān)的管道中擴展很多自己的業(yè)務(wù)管道,其中就包含了平臺的身份認證授權(quán)中間件,其實在Ocelot中是有內(nèi)置的中間件的,為什么我們要自己實現(xiàn)一套中間呢?首先我們作為企業(yè)網(wǎng)關(guān),除了要兼容標準的各種驗證方式,以及兼容替換其他第三方網(wǎng)關(guān)的認證方式,還要結(jié)合我們明源自己的軟件產(chǎn)品生態(tài),比如兼容云客、云空間的身份認證模式等等,由于Ocelot自身沒辦法滿足我們特殊定制的需要,所以自己實現(xiàn)了一套基于Ocelot管道的身份認證。

IdentityService4作為獨立的認證服務(wù),必須要知道哪些資源需要配置和保護,也必須知道哪些客戶端被允許訪問資源,我們在概述中提到了集成平臺的身份認證驗證過程圖3所示,首先在集成平臺的云控制臺添加資源,然后根據(jù)不同的訪問系統(tǒng)創(chuàng)建應(yīng)用信息并頒發(fā)AppKey和AppSecret。資源和應(yīng)用的對應(yīng)關(guān)系我們實例化在數(shù)據(jù)庫中,并把資源和應(yīng)用的綁定關(guān)系同步在Consul KV中,在調(diào)用的時候系統(tǒng)首先獲取到Token然后攜帶Token并來到集成平臺網(wǎng)關(guān),通過目前Api請求Token和認證方式,進行Token身份認證,認證通過后將通過Api的唯一標識從Consul KV中獲取對應(yīng)關(guān)系,進行授權(quán)認證。那數(shù)據(jù)庫中持久化的關(guān)系和Consul KV 中的數(shù)據(jù)怎么保證一致性呢?首先在集成平臺云端控制臺進行授權(quán)配置的時候采用事務(wù)的方式來保證數(shù)據(jù)庫和Consul中的數(shù)據(jù)一致性,并采用Consul 的KV變更監(jiān)控來防止直接修改信息導(dǎo)致的數(shù)據(jù)不一致性。下面是集成平臺網(wǎng)關(guān)相關(guān)配置的幾個點。

(1) 首先配置允許授權(quán)頒發(fā)Token令牌接口匿名訪問,集成平臺目前實現(xiàn)了三種驗證方式并提供了獲取令牌的接口。

(圖8)

如下圖,提供的OAuth2.0 客戶端的認證模式獲取Token接口,會在集成平臺的云控平臺為需要訪問資源的第三方,建立應(yīng)用并分配可訪問資源權(quán)限,第三方拿到應(yīng)用Appkey和AppSecret后進行登錄獲取Token。

(圖9)

如下圖:Json web token 頒發(fā)的核心代碼

(圖10)

(2)我們使用Ocelot作為網(wǎng)關(guān),并在Ocelot網(wǎng)關(guān)管道中進行業(yè)務(wù)改造,這里我們也是編排身份驗證中間件到管道中。

(圖11)

(圖12)

(圖14)

五、總結(jié)

IdentityServer4 實現(xiàn)了OAuth2.0的四種身份認證方案,大家可以結(jié)合自己的業(yè)務(wù)場景,來選擇適合系統(tǒng)業(yè)務(wù)的身份認證授權(quán)的方式,集成平臺為了兼容多種客戶的需求,目前實現(xiàn)了三種不同的驗證方式,OAuth2.0客戶端模式、JWT認證模式、OAuth2.0簽名模式。

在我看來,身份認證和授權(quán)的選擇,首先考慮自己的系統(tǒng)是無狀態(tài)還是需要維護登錄狀態(tài),然后結(jié)合業(yè)務(wù)的場景,考慮身份認證授權(quán)方案,最終將選型的方案,添加到管道中進行編排。

六、參考文章

官方

@Identityserver4網(wǎng)站:https://identityserver4.readthedocs.io/en/latest/index.html

@OpenID Connect 網(wǎng)站:https://openid.net/connect/

@OAuth 2.0 網(wǎng)站:https://oauth.net/2/

博客園

@作者 圣杰 文章:IdentityServer 4 知多少 :https://www.cnblogs.com/sheng-jie/p/9430920.html

@IdentityService4 百度腦圖?https://naotu.baidu.com/file/75b251257ce27cfa62e0ad7f47b75576?token=e2db617be22b6274

------ END ------

作者簡介

顧同學(xué):?研發(fā)工程師,目前負責(zé)集成平臺相關(guān)研發(fā)工作。

也許您還想看:

技術(shù)分享|單元測試推廣與實戰(zhàn)-在全新的DDD架構(gòu)上進行單元測試

技術(shù)分享|文件預(yù)覽方案在應(yīng)用市場的落地

更多明源云·天際開放平臺場景案例與開發(fā)小知識,可以關(guān)注明源云天際開發(fā)者社區(qū)公眾號:

【建模】在線編碼--SetProp/GetProp方法使用

明源云·天際硬核技術(shù)認可:獲華為鯤鵬技術(shù)認證書

天際·開發(fā)者社區(qū)“重裝發(fā)布”!

總結(jié)

以上是生活随笔為你收集整理的技术分享|明源云天际集成开放平台接口中心基于IdentityServer4的鉴权机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: a视频在线观看免费 | 国产一区二区三区四区五区在线 | 黄色免费视频观看 | 欧美久久影院 | 91操碰| 国产做爰xxxⅹ久久久精华液 | 精品人妻一区二区三区日产乱码 | 亚洲永久无码精品一区二区 | 青青草原国产在线观看 | 亚洲一区二区三区在线播放 | 国产精品videossex久久发布 | 农民人伦一区二区三区 | 91一区二区在线观看 | 黄色av影视 | 亚洲欧洲日韩综合 | 黑人巨大精品欧美一区二区蜜桃 | 999久久久精品视频 亚洲视频精品在线 | 国产精品传媒麻豆hd | 欧美美女黄色 | 在线观看深夜视频 | 欧美成人aa| 红桃视频网站 | 亚洲免费精品视频 | 国产一线在线观看 | 欧美夫妇交换xxx | 免费成人黄色网址 | 午夜爽视频 | 国产视频首页 | 免费在线成人av | 亚欧日韩 | 深夜精品福利 | 人妻丰满熟妇无码区免费 | 杨幂毛片 | 国产丰满美女做爰 | 国产一区二区四区 | 国产精品一区二区无线 | 国产制服91一区二区三区制服 | 性巴克成人免费网站 | 狠狠干中文字幕 | 秋霞毛片少妇激情免费 | 免费看黄色的视频 | 日韩欧美视频 | 亚洲射 | 亚洲爱爱网站 | 国产一区二区三区在线观看视频 | 国产主播在线播放 | 辟里啪啦国语版免费观看 | 森泽佳奈在线播放 | 天海翼av| 韩国毛片一区二区三区 | 在线播放一级片 | 99视频精品免费 | 久久高清| 久色精品视频 | xx99小雪 | wwwxxx黄色片| 欧美日韩一区二区区别是什么 | 精品天堂 | 人人干人人草 | 国产精品4p | 亚洲色图av在线 | 丁香啪啪综合成人亚洲 | 五月婷婷,六月丁香 | 亚洲久久色 | 欧美操穴 | 亚洲一区二区三区在线视频 | 色视屏| 日韩精品人妻一区二区中文字幕 | 成人黄色一级片 | 在线黄色大片 | 老熟女毛茸茸浓毛 | 天堂中文在线观看 | 一区二区三区视频免费在线观看 | 黄色一级片免费看 | 精品影视 | 伊人久久艹 | 97干在线 | 四虎成人在线视频 | 日韩污视频在线观看 | 波多野结衣亚洲一区二区 | 久久99精品久久久久久琪琪 | 一区二区三区韩国 | 亚洲香蕉 | 欧美激情视频一区二区三区在线播放 | 朝桐光一区二区 | 日韩小视频在线观看 | 天天综合永久 | 黄色av免费观看 | av中文字幕网 | 伊人毛片 | 中文字幕在线看高清电影 | 伊人88 | 国产做受高潮动漫 | 亚洲爆乳无码一区二区三区 | av撸撸在线| 日本精品人妻无码免费大全 | 欧美一区2区| 青青偷拍视频 | 午夜影院18 |