使用 Microsoft Entra ID 驗證應用程式以存取事件中樞資源

Microsoft Azure 針對以 Microsoft Entra ID 為基礎的資源和應用程式提供了整合式的存取控制管理功能。 使用 Microsoft Entra ID 搭配 Azure 事件中樞的主要優點是您不再需要將認證儲存在程式碼中。 您可以改為從 Microsoft 身分識別平台要求 OAuth 2.0 存取權杖。 要求權杖的資源名稱是 https://eventhubs.azure.net/,且對所有雲端/租用戶都是相同的 (若為 Kafka 用戶端,要求權杖的資源為 https://<namespace>.servicebus.windows.net)。 Microsoft Entra 會驗證執行應用程式的安全性主體 (使用者、群組或服務主體)。 如果驗證成功,Microsoft Entra ID 會將存取權杖傳回給應用程式,然後應用程式就可以使用存取權杖來授權存取 Azure 事件中樞資源的要求。

將角色指派給 Microsoft Entra 安全性主體時,Azure 會將那些資源的存取權授與該安全性主體。 存取範圍可設定為訂用帳戶層級、資源群組、事件中樞命名空間或其下的任何資源。 Microsoft Entra 安全性可以指派角色給使用者、群組或應用程式服務主體,或是適用於 Azure 資源的受控識別

注意

角色定義是一個權限集合。 Azure 角色型存取控制 (Azure RBAC) 會控制如何透過角色指派來強制執行這些權限。 角色指派由三項元素所組成:安全性主體、角色定義和範圍。 如需詳細資訊,請參閱了解不同角色

Azure 事件中樞的內建角色

Azure 提供下列 Azure 內建角色,以使用 Microsoft Entra ID 和 OAuth 來授權對事件中樞資料的存取:

如需了解結構描述登錄的內建角色,請參閱結構描述登錄角色

重要

我們的預覽版本支援將事件中樞資料存取權限新增至擁有者或參與者角色。 不過,已不再接受擁有者和參與者角色的資料存取權限。 如果您使用擁有者或參與者角色,請切換到使用 Azure 事件中樞資料擁有者角色。

從應用程式進行驗證

使用 Microsoft Entra ID 搭配事件中樞的主要優點是您的認證不再需要儲存在程式碼中。 您可以改為向 Microsoft 身分識別平台要求 OAuth 2.0 存取權杖。 Microsoft Entra 會驗證執行應用程式的安全性主體 (使用者、群組或服務主體)。 如果驗證成功,Microsoft Entra ID 會將存取權杖傳回給應用程式,然後應用程式就可以使用存取權杖來授權存取 Azure 事件中樞的要求。

下列各節說明如何設定原生應用程式或 Web 應用程式,以使用 Microsoft 身分識別平台 2.0 進行驗證。 如需 Microsoft 身分識別平台 2.0 的詳細資訊,請參閱 Microsoft 身分識別平台 (v2.0) 概觀

如需 OAuth 2.0 程式碼授與流程的概觀,請參閱使用 OAuth 2.0 程式碼授與流程,授權存取 Microsoft Entra Web 應用程式

使用 Microsoft Entra 租用戶註冊您的應用程式

使用 Microsoft Entra ID 授權事件中樞資源的第一個步驟是,從 Azure 入口網站使用 Microsoft Entra 租用戶註冊您的用戶端應用程式。 若要使用代表您嘗試存取事件中樞資源應用程式的 Microsoft Entra ID 註冊應用程式,請遵循快速入門:向 Microsoft 身分識別平台註冊應用程式中所示的步驟。

當您註冊用戶端應用程式時,會向 AD 提供應用程式的相關資訊。 Microsoft Entra ID 接著會提供您可以用來將應用程式與 Microsoft Entra 執行階段產生關聯的用戶端識別碼 (也稱為應用程式識別碼)。 若要深入了解用戶端識別碼,請參閱 Microsoft Entra ID 中的應用程式和服務主體物件

注意

如果您將應用程式註冊為原生應用程式,就能為重新導向 URI 指定任何有效的 URI。 針對原生應用程式,此值不需是實際的 URL。 針對 Web 應用程式,重新導向 URI 必須是有效的 URI,因為其會指定要提供權杖的 URL。

註冊您的應用程式之後,您會在 [設定] 下看到應用程式 (用戶端) 識別碼

Screenshot showing the app registration page with application ID highlighted.

建立用戶端密碼

應用程式需要用戶端密碼,才能在要求權杖時證明其身分識別。 請遵循新增用戶端密碼中的步驟,在 Microsoft Entra ID 中建立應用程式的用戶端密碼。

使用 Azure 入口網站指派 Azure 角色

在所需範圍內 (事件中樞命名空間、資源群組、訂用帳戶),將其中一個事件中樞角色指派給應用程式的服務主體。 如需詳細步驟,請參閱使用 Azure 入口網站指派 Azure 角色

定義角色及其範圍之後,您可以使用此 GitHub 位置中的範例來測試此行為。 若要深入了解如何使用 Azure RBAC 和 Azure 入口網站來管理對 Azure 資源的存取,請參閱此文章

用於取得權杖的用戶端程式庫

註冊應用程式,並授與它在 Azure 事件中樞中傳送/接收資料的權限之後,您可以將程式碼新增至應用程式,以驗證安全性主體並取得 OAuth 2.0 權杖。 若要驗證和取得權杖,您可以使用其中一個 Microsoft 身分識別平台驗證程式庫,或支援 OpenID 或 Connect 1.0 的其他開放原始碼程式庫。 然後,您的應用程式就可以使用該存取權杖來授權對 Azure 事件中樞的要求。

如需支援取得權杖的案例,請參閱適用於 .NET 的 Microsoft 驗證程式庫 (MSAL) GitHub 存放庫的案例一節。

範例

下一步

請參閱下列相關文章: