使用 Microsoft Entra ID 授與事件中樞資源的存取權
Azure 事件中樞支援使用 Microsoft Entra ID 來授權對事件中樞資源的要求。 透過 Microsoft Entra ID,您可以使用 Azure 角色型存取控制 (RBAC),將權限授與安全性主體 (可為使用者或應用程式服務主體)。 若要深入了解角色和角色指派,請參閱了解不同的角色。
概觀
當安全性主體 (使用者或應用程式) 嘗試存取事件中樞資源時,要求必須獲得授權。 使用 Microsoft Entra ID 時,存取資源的流程分為兩個步驟。
- 首先,安全性主體的身分識別已通過驗證,並傳回 OAuth 2.0 權杖。 要求權杖的資源名稱是
https://eventhubs.azure.net/
,所有雲端/租用戶的資源名稱都相同。 若為 Kafka 用戶端,要求權杖的資源是https://<namespace>.servicebus.windows.net
。 - 接下來,權杖會當做要求的一部分傳遞給事件中樞服務,以授權指定資源的存取權。
驗證步驟要求應用程式要求在執行階段包含 OAuth 2.0 存取權杖。 如果應用程式在 Azure 實體 (例如 Azure VM、虛擬機器擴展集或 Azure Functions 應用程式) 內執行,則可使用受控識別來存取資源。 若要了解如何驗證受控識別對事件中樞服務所提出的要求,請參閱使用適用於 Azure 資源的 Microsoft Entra ID 和受控識別來驗證對 Azure 事件中樞資源的存取權。
授權步驟需要將一或多個 Azure 角色指派給安全性主體。 Azure 事件中樞所提供的 Azure 角色會包含事件中樞資源的一組權限。 指派給安全性主體的角色會決定該主體所擁有的權限。 如需 Azure 角色的詳細資訊,請參閱 Azure 事件中樞的 Azure 內建角色。
對事件中樞提出要求的原生應用程式和 Web 應用程式,也可以使用 Microsoft Entra ID 來進行授權。 若要了解如何要求存取權杖,並使用存取權杖來授權事件中樞資源的要求,請參閱驗證使用 Microsoft Entra ID 之應用程式對 Azure 事件中樞的存取權。
指派 Azure 角色以取得存取權限
Microsoft Entra 會透過 Azure 角色型存取控制 (Azure RBAC) 來授與存取受保護資源的權限。 Azure 事件中樞會定義一組 Azure 內建角色,這組角色包含一組用來存取事件中樞資料的常用權限,而且您也可以定義自訂角色來存取資料。
將 Azure 角色指派給 Microsoft Entra 安全性主體時,Azure 會將那些資源的存取權授與該安全性主體。 存取範圍可設定為訂用帳戶層級、資源群組、事件中樞命名空間或其下的任何資源。 Microsoft Entra 安全性主體可以是使用者或應用程式服務主體,或是適用於 Azure 資源的受控識別。
Azure 事件中樞的 Azure 內建角色
Azure 提供下列 Azure 內建角色,以使用 Microsoft Entra ID 和 OAuth 來授權對事件中樞資料的存取:
角色 | 描述 |
---|---|
Azure 事件中樞資料擁有者 | 使用此角色以提供事件中樞資源的完整存取權。 |
Azure 事件中樞資料傳送者 | 使用此角色可提供事件中樞資源的傳送存取權。 |
Azure 事件中樞資料接收者 | 使用此角色可提供事件中樞資源的取用/接收存取權。 |
如需了解結構描述登錄的內建角色,請參閱結構描述登錄角色。
資源範圍
將 Azure 角色指派給安全性主體之前,請先決定安全性主體應該具備的存取範圍。 最佳做法指出,最好只授與最窄的可能範圍。
下列清單說明您可以將事件中樞資源的存取範圍設定在什麼層級 (從最小的範圍開始):
- 取用者群組:在此範圍中,角色指派僅適用於此實體。 目前,Azure 入口網站不支援將 Azure 角色指派給此層級的安全性主體。
- 事件中樞:角色指派適用於事件中樞及其取用者群組。
- 命名空間:角色指派的範圍為該命名空間下事件中樞的整個拓撲,以及相關聯的取用者群組。
- 資源群組:角色指派會套用至資源群組下的所有事件中樞資源。
- 訂用帳戶:角色指派會套用至訂用帳戶中所有資源群組的所有事件中樞資源。
注意
- 請記住,Azure 角色指派最多可能需要五分鐘的時間傳播。
- 此內容同時適用於事件中樞和 Apache Kafka 的事件中樞。 如需 Kafka 事件中樞支援的詳細資訊,請參閱適用於 Kafka 的事件中樞 - 安全性與驗證。
如需內建角色定義方式的詳細資訊,請參閱了解角色定義。 如需建立 Azure 自訂角色的相關資訊,請參閱 Azure 自訂角色。
範例
-
這些範例使用舊版的 Microsoft.Azure.EventHubs 程式庫,但您能輕鬆將其更新為使用最新的 Azure.Messaging.EventHubs 程式庫。 若要將範例從使用舊版程式庫改為使用新程式庫,請參閱從 Microsoft.Azure.EventHubs 移轉至 Azure.Messaging.EventHubs 的指南。
-
此範例已更新為使用最新的 Azure.Messaging.EventHubs 程式庫。
相關內容
- 了解如何將 Azure 內建角色指派給安全性主體,請參閱使用 Microsoft Entra ID 來驗證對事件中樞資源的存取權。
- 了解如何使用 Azure RBAC 來建立自訂角色。
- 了解如何搭配使用 Microsoft Entra ID 與 EH
請參閱下列相關文章: