AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

聊聊主流消息隊列的認證和鑒權!

來源: 責編: 時間:2024-05-29 08:58:32 144觀看
導讀大家好,我是君哥。我們在使用消息隊列時,經常關注的是消息隊列收發消息的功能。但好多時候需要對客戶端有一定的限制,比如只有持有令牌的客戶端才能訪問集權,不允許 Producer 發送消息到某一個 Topic,或者某一個 Topic 只

OnG28資訊網——每日最新資訊28at.com

大家好,我是君哥。OnG28資訊網——每日最新資訊28at.com

我們在使用消息隊列時,經常關注的是消息隊列收發消息的功能。但好多時候需要對客戶端有一定的限制,比如只有持有令牌的客戶端才能訪問集權,不允許 Producer 發送消息到某一個 Topic,或者某一個 Topic 只能給固定 Consumer 消費。OnG28資訊網——每日最新資訊28at.com

為了能對客戶端有一定限制,需要對消息隊列進行認證和鑒權,今天我們就來聊一聊主流消息隊列是怎么做認證和鑒權的。OnG28資訊網——每日最新資訊28at.com

1.認證

認證是指通過一定手段,對訪問用戶身份進行校驗,只有校驗通過的用戶,才允許訪問。OnG28資訊網——每日最新資訊28at.com

默認情況下,主流消息隊列是不開啟認證的,這也意味著只要網絡能通,客戶端就可以訪問 Broker 集群,可以說集群處于“裸奔”的狀態,有很大的風險。OnG28資訊網——每日最新資訊28at.com

消息隊列的認證,是指對客戶端進行身份確認,只有認證通過的客戶端才可以訪問 Broker 集群資源。OnG28資訊網——每日最新資訊28at.com

常見的認證的方式有很多,主流消息隊列一般會定義一個認證框架來制定認證規則,然后通過實現這個框架來定義具體認證方式。OnG28資訊網——每日最新資訊28at.com

(1)SSL/TLS

SSL(Secure Sockets Layer)是為網絡通信提供安全及數據完整性的一種安全協議,消息隊列基于 SSL 的認證是指 Broker 和客戶端的認證,可以是單向認證,也可以是雙向認證。OnG28資訊網——每日最新資訊28at.com

消息隊列為了提升吞吐量,降低延遲,一般都是基于 TCP/IP 協議構建的,SSL 協議位于應用層和傳輸層之間。OnG28資訊網——每日最新資訊28at.com

OnG28資訊網——每日最新資訊28at.com

使用 SSL 進行通信前,客戶端和 Broker 都需要引入各自的證書,并且引入對應編程語言的 SSL 庫。通信時,客戶端攜帶對應的證書和公鑰信息,與 Broker 建立連接,Broker 則對客戶端進行認證,認證成功后,客戶端才能進行下一步操作。OnG28資訊網——每日最新資訊28at.com

Kafka 在早期的 0.9 版本引入了 SSL。OnG28資訊網——每日最新資訊28at.com

SSL3.0 版本后改名成 TLS,TLS 是 SSL 的升級版本。Pulsar 和 RabbitMQ 這 2 個消息隊列支持 TLS。OnG28資訊網——每日最新資訊28at.com

(2)SASL

SASL 全稱是 Simple Authentication and Security Laye,是一種標準化的 C/S 身份認證協議,客戶端和服務器基于這個協議交換身份信息,驗證成功后才可以建立連接。OnG28資訊網——每日最新資訊28at.com

SASL 其實是一中認證框架,基于這個框架我們可以實現多種認證機制,比如用戶名密碼、Kerberos、NTLM、OAuth等。OnG28資訊網——每日最新資訊28at.com

Kafka 0.9.0.0 版本開始支持 SASL,并且基于 SASL 實現了多種認證插件。如下圖:OnG28資訊網——每日最新資訊28at.com

OnG28資訊網——每日最新資訊28at.com

  • GSSAPI 是用來支持 Kerberos 協議的,如果公司已經做過 Kerberos 認證,那使用 GSSAPI 會非常方便。
  • PLAIN 是一種使用用戶名密碼的認證機制,可以跟 SSL 搭配使用,更加適合小公司的 Kafka 集群使用。PLAIN 有一個很大的缺點就是增加或刪除用戶,需要重啟 Broker 集群才能生效,因為認證用戶保存在靜態文件中,Broker 集群不能動態加載。
  • SCRAM 將認證用戶保存在 ZooKeeper,解決了 PLAIN 增加或刪除用戶需要重啟集群的問題。
  • OAUTHBEARER 是 Kafka 在 2.0 版本引入的,主要是為了實現 OAuth2 認證機制。
  • Delegation Token 是 SASL 機制的補充,它是基于 Token 的一種認證機制,它的特點是非常輕量級,用戶獲取到一次 Token 之后,后面的請求過程中可以繼續使用這個 Token(除了 Token 更新),無須再次獲取。

(3)AK/SK

RocketMQ 基于 AK/SK 實現認證方式,通過對稱加密來驗證客戶端身份,保證認證密碼不會以明文在網絡上傳輸,提升認證安全。OnG28資訊網——每日最新資訊28at.com

客戶端發送請求時,使用加密算法對請求參數進行加密,然后生成數字簽名,在請求中發送用戶名和簽名信息。Broker 收到請求后,首先查詢用戶名是否在本地庫(不存在則認證失敗),如果存在,則用相同的算法對請求進行加密和簽名,然后比較簽名結果跟客戶端請求中的簽名信息是否一致。OnG28資訊網——每日最新資訊28at.com

(4)自定義框架

RabbitMQ 和 Pulsar 都提供了自定義、可插拔的身份認證框架,然后基于框架的接口來實現各種認證插件,在配置文件中指定要使用的認證插件。OnG28資訊網——每日最新資訊28at.com

Pulsar 內置的認證插件包括 JWT、OAuth2.0、Athenz、Kerberos 等。OnG28資訊網——每日最新資訊28at.com

RabbitMQ 實現的認證插件包括 AMQPLAIN 和 PLAIN。OnG28資訊網——每日最新資訊28at.com

總結:認證框架的選擇很多,Kafka 選擇的 SASL 機制更加完善,功能更加強大,實現起來也更加復雜。而自定義的機制則實現更加簡單,同時也能滿足消息隊列的認證需求。OnG28資訊網——每日最新資訊28at.com

下面對主流消息隊列使用的認證方式總結如下:OnG28資訊網——每日最新資訊28at.com

消息隊列
OnG28資訊網——每日最新資訊28at.com

認證方式
OnG28資訊網——每日最新資訊28at.com

KafkaOnG28資訊網——每日最新資訊28at.com

SASL:GSSAPI、PLAIN、SCRAM、OAUTHBEARER、Delegation Token
OnG28資訊網——每日最新資訊28at.com

RocketMQ
OnG28資訊網——每日最新資訊28at.com

AK/SK
OnG28資訊網——每日最新資訊28at.com

RabbitMQ
OnG28資訊網——每日最新資訊28at.com

AMQPLAIN、PLAIN
OnG28資訊網——每日最新資訊28at.com

Pulsar
OnG28資訊網——每日最新資訊28at.com

JWT、OAuth2.0、Athenz、Kerberos
OnG28資訊網——每日最新資訊28at.com

2.鑒權

客戶端通過認證后,就跟 Broker 建立了連接,但是并不是每個客戶端都可以操作所有的集群資源,比如銀行里面的不同業務數據不能給所有客戶端訪問。這就需要對客戶端做資源訪問限制。OnG28資訊網——每日最新資訊28at.com

授權是指對客戶端賦予一定的權限,比如允許客戶端從某一個 Topic 拉取消息。OnG28資訊網——每日最新資訊28at.com

消息隊列對于資源的操作分為兩種,一種是運維相關操作,比如創建 Topic、創建用戶等,權限一般分配給運維人員。另一種是數據相關操作,包括生產消費消息,權限一般分配給業務系統客戶端。OnG28資訊網——每日最新資訊28at.com

要實現資源控制,一般分成兩種方式,下面詳細介紹一下。OnG28資訊網——每日最新資訊28at.com

(1)鏈路分開

如果分開兩條鏈路來操作集群資源,一條鏈路由運維人員來通過 HTTP 來操作集群資源,另一條鏈路由業務系統客戶端通過 TCP 來收發消息,這樣實現權限控制就非常容易,成本很低。OnG28資訊網——每日最新資訊28at.com

OnG28資訊網——每日最新資訊28at.com

主流消息隊列 Pulsar 和 RabbitMQ 就是這種方式實現的。OnG28資訊網——每日最新資訊28at.com

這種方式也有一個問題,就是集群中需要開啟兩個 Server 來服務兩個鏈路。OnG28資訊網——每日最新資訊28at.com

(2)一條鏈路

跟兩條鏈路相對應的是,運維操作和業務客戶端操作都通過一條鏈路來實現。OnG28資訊網——每日最新資訊28at.com

OnG28資訊網——每日最新資訊28at.com

一條鏈路的方式集群不用啟動兩個 Server,但是需要根據用戶來分配權限,需要在代碼層面實現集群的資源控制,實現難度較大。主流消息隊列中的 Kafka 和 RocketMQ 就是用的這種方式。OnG28資訊網——每日最新資訊28at.com

(3)訪問控制

無論是兩條鏈路還是一條鏈路,都無法細粒度地控制集群資源。比如運維操作要限制某個用戶只能添加 Topic 而不能刪除 Topic,業務系統客戶端只被允許從某一個 Topic 發送和消費消息。OnG28資訊網——每日最新資訊28at.com

想要細粒度的控制集群資源,就需要引入鑒權模型,常見的鑒權模型如下:OnG28資訊網——每日最新資訊28at.com

  • ACL:Access Control List,也就是訪問控制列表,特點是直接把用戶和權限關聯起來。
  • RBAC:Role Based Access Control,基于角色的權限控制,特點是引入了角色的概念,先將資源權限分配給角色,再把角色分配給用戶。
  • ABAC:Attribute Based Access Control,基于屬性的權限控制,是一種動態授權策略,他把用戶要訪問的資源跟資源的屬性、環境因素結合起來,比如對一個資源的訪問限制到時間級別。
  • PBAC:Policy Based Access Control,基于策略的權限控制,可以基于任務或事件等其他不同的場景靈活配置訪問權限。

(4)ACL

主流的消息隊列都是基于 ACL 來實現鑒權的。要實現 ACL(Access Control List) ,首先需要定義好集群中有哪些資源或哪些操作需要做鑒權。OnG28資訊網——每日最新資訊28at.com

主流消息隊列中,Kafka 的資源或操作定義非常細致,資源包括:Topic、消費者組、Broker 集群等,操作則包括:讀、寫、創建、刪除、修改、訂閱等。Kafka 對資源的操作定義成不同接口(比如創建 Topic),通過接口來做鑒權控制。見官網 KIP-11  下面鏈接。OnG28資訊網——每日最新資訊28at.com

https://cwiki.apache.org/confluence/display/KAFKA/KIP-11+-+Authorization+InterfaceOnG28資訊網——每日最新資訊28at.com

圖片OnG28資訊網——每日最新資訊28at.com

Kafka 實現了可插拔的授權機制,該機制把所有 ACL 項保存在 ZooKeeper,Zookeeper 創建 /kafka-acl 節點進行保存。Kafka 提供了 kafka-acls 腳本,可以動態修改 ACL 配置項,并且可以立即生效。在 server.properties 中加入下面配置,就可以開啟 ACL 鑒權:OnG28資訊網——每日最新資訊28at.com

authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer

其中 SimpleAclAuthorizer 是 Kafka 自帶的鑒權實現類,這里也可以配置自定義的鑒權實現類。OnG28資訊網——每日最新資訊28at.com

RabbitMQ 的架構相對簡單,定義的資源主要包括:Exchange、Queue 等,操作則包括讀、寫、配置。因為 RabbitMQ 的集群配置是通過 HTTP API 操作,所以并沒有提供接口維度的權限控制。OnG28資訊網——每日最新資訊28at.com

Pulsar 的鑒權包括生產、消費、Lookup、Function、Source(從數據源讀取數據)、Sink(數據存入下游)、Packages(保存用戶代碼包)。鑒權信息保存在 Zookeeper 的 /admin/policies/[namespace] 目錄下。Pulsar 也支持可插拔的授權框架,默認實現類是 PulsarAuthorizationProvider。OnG28資訊網——每日最新資訊28at.com

RocketMQ 中的 ACL 提供了 Topic 資源級別的用戶訪問控制。用戶在使用 RocketMQ 權限控制時,可以在 Client 客戶端通過 RPCHook 注入 AccessKey 和 SecretKey 簽名,同時將對應的權限控制屬性(包括 Topic 訪問權限、IP 白名單和 AccessKey 和 SecretKey 簽名等)設置在 distribution/conf/plain_acl.yml 的配置文件中。OnG28資訊網——每日最新資訊28at.com

RocketMQ 對 Topic 資源訪問權限控制定義了四種,下面表格來自官網 ,OnG28資訊網——每日最新資訊28at.com

https://rocketmq.apache.org/zh/docs/4.x/bestPractice/04access/OnG28資訊網——每日最新資訊28at.com

權限
OnG28資訊網——每日最新資訊28at.com

含義
OnG28資訊網——每日最新資訊28at.com

DENY
OnG28資訊網——每日最新資訊28at.com

拒絕
OnG28資訊網——每日最新資訊28at.com

ANY
OnG28資訊網——每日最新資訊28at.com

PUB 或者 SUB 權限
OnG28資訊網——每日最新資訊28at.com

PUB
OnG28資訊網——每日最新資訊28at.com

發送權限
OnG28資訊網——每日最新資訊28at.com

SUB
OnG28資訊網——每日最新資訊28at.com

訂閱權限
OnG28資訊網——每日最新資訊28at.com

權限定義的關鍵屬性參考 distribution/conf/plain_acl.yml 配置文件。OnG28資訊網——每日最新資訊28at.com

RocketMQ 的用戶分為普通用戶和管理員用戶,跟普通用戶相比,管理員用戶具有更新或創建主題、更新 Broker 配置、刪除主題、更新或創建訂閱組信息、刪除訂閱組信息等權限。OnG28資訊網——每日最新資訊28at.com

(5)超級用戶

消息隊列的超級用戶能夠訪問集群中所有的資源,對集群運維非常方便。比如分配出去的用戶密碼被惡意修改了,集群無法訪問,這時超級用戶可以把密碼再改回來。超級用戶可以讓運維人員方便地執行緊急性、臨時性地操作。OnG28資訊網——每日最新資訊28at.com

超級用戶一般固定在配置文件中,客戶端對集群進行訪問控制的時候,集群對用戶是否是超級用戶進行判斷。OnG28資訊網——每日最新資訊28at.com

Kafka 和 Pulsar 都有超級用戶的機制,RabbitMQ 則沒有超級用戶。OnG28資訊網——每日最新資訊28at.com

3.總結

默認情況下,主流消息隊列都是不開啟認證和鑒權的。但在復雜的業務架構中,為了保證隊列中數據安全性,必須開啟認證和鑒權。消息隊列的認證機制有很多,鑒權則主要是通過 ACL 來實現。希望本文能對你理解消息隊列的認證和鑒權有所幫助。OnG28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-91375-0.html聊聊主流消息隊列的認證和鑒權!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 消息隊列的六種經典使用場景和 Kafka 架構設計原理詳細解析

下一篇: SpringBoot多租戶三種架構實現方案詳解

標簽:
  • 熱門焦點
  • 俄羅斯:將審查iPhone等外國公司設備 保數據安全

    iPhone和特斯拉都屬于在各自領域領頭羊的品牌,推出的產品也也都是數一數二的,但對于一些國家而言,它們的產品可靠性和安全性還是在限制范圍內。近日,俄羅斯聯邦通信、信息技術
  • 7月安卓手機性能榜:紅魔8S Pro再奪榜首

    7月份的手機市場風平浪靜,除了紅魔和努比亞帶來了兩款搭載驍龍8Gen2領先版處理器的新機之外,別的也想不到有什么新品了,這也正常,通常6月7月都是手機廠商修整的時間,進入8月份之
  • JVM優化:實戰OutOfMemoryError異常

    一、Java堆溢出堆內存中主要存放對象、數組等,只要不斷地創建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當這些對象所占空間超過
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 自律,給不了Keep自由!

    來源 | 互聯網品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺Keep正式登陸港交所,努力
  • 新電商三兄弟,“抖快紅”成團!

    來源:價值研究所作 者:Hernanderz 隨著內容電商的概念興起,抖音、快手、小紅書組成的“新電商三兄弟”成為業內一股不可忽視的勢力,給阿里、京東、拼多多帶去了巨大壓
  • 華為HarmonyOS 4升級計劃公布:首批34款機型今日開啟公測

    8月4日消息,今天下午華為正式發布了HarmonyOS 4系統,在更流暢的前提下,還帶來了不少新功能,UI設計也有變化,會讓手機煥然一新。華為宣布,首批機型將會在
  • OPPO K11采用全方位護眼屏:三大護眼能力減輕視覺疲勞

    日前OPPO官方宣布,全新的OPPO K11將于7月25日正式發布,將主打旗艦影像,和同檔位競品相比,其最大的賣點就是將配備索尼IMX890主攝,堪稱是2000檔位影像表
  • DRAM存儲器10月價格下跌,NAND閃存本月價格與上月持平

    10月30日,據韓國媒體消息,自今年年初以來一直在上漲的 DRAM 存儲器的交易價格僅在本月就下跌了近 10%,此次是全年首次降價,而NAND 閃存本月價格與上月持平。市
Top