服務匯流排驗證與授權

有兩種方式可以驗證和授權 Azure 服務匯流排資源的存取權:

  • Microsoft Entra ID
  • 共用存取簽章 (SAS)。

本文詳述使用這兩種安全性機制。

Microsoft Entra ID

Microsoft Entra 與服務匯流排整合可將角色型存取控制 (RBAC) 提供給服務匯流排資源。 您可以使用 Azure RBAC 將權限授與安全性主體,該安全性主體可以是使用者、群組、應用程式服務主體或受控識別。 Microsoft Entra 會驗證安全性主體,並傳回 OAuth 2.0 權杖。 此權杖可以用來授權對服務匯流排資源 (佇列、主題等) 的存取要求。

如需使用 Microsoft Entra ID 進行驗證的詳細資訊,請參閱下列文章:

注意

服務匯流排 REST API 支援使用 Microsoft Entra ID 進行 OAuth 驗證。

重要

使用由 Microsoft Entra ID 傳回的 OAuth 2.0 權杖來授權使用者或應用程式,可透過共用存取簽章 (SAS) 提供卓越的安全性與易用性。 透過 Microsoft Entra ID 即不需要冒著潛在安全性弱點的風險,將權杖儲存在程式碼中。 建議您盡可能將 Microsoft Entra ID 與 Azure 服務匯流排應用程式搭配使用。

您可以停用服務匯流排命名空間的本機或 SAS 金鑰驗證,只允許透過 Microsoft Entra 驗證。 如需逐步指示,請參閱停用本機驗證

共用存取簽章

SAS 驗證可讓您授與使用者具特定權限的服務匯流排資源存取權。 服務匯流排中的 SAS 驗證牽涉到在服務匯流排資源上設定具有相關權限的密碼編譯金鑰。 接著用戶端可以藉由提出 SAS 權杖 (其中包含正在存取的資源 URI 及利用設定金鑰簽署的到期日) 存取該資源。

您可以在服務匯流排命名空間上設定 SAS 的金鑰。 金鑰會套用至該命名空間中的所有訊息實體。 您也可以在服務匯流排佇列和主題上設定金鑰。 若要使用 SAS,您可以在命名空間、佇列或主題上設定共用存取授權規則。 此規則由下列元素組成:

  • KeyName:能識別規則。
  • PrimaryKey:用來簽署/驗證 SAS 權杖的密碼編譯金鑰。
  • SecondaryKey:用來簽署/驗證 SAS 權杖的密碼編譯金鑰。
  • Rights:代表所授與之接聽傳送管理權限的集合。

在命名空間層級設定的授權規則可以授與命名空間中所有實體的存取權給具備使用對應金鑰簽署之權杖的用戶端。 您可以在服務匯流排命名空間、佇列或主題上設定最多 12 條這類的授權規則。 每個命名空間於最初佈建時,設定的共用存取授權規則預設有全部權限。

若要存取實體,用戶端需要有使用特定共用存取授權規則產生的 SAS 權杖。 SAS 權杖乃是使用資源字串的 HMAC-SHA256 所產生,該字串由宣告存取的資源 URI 以及具備與授權規則相關聯之密碼編譯金鑰的過期所組成。

服務匯流排的 SAS 驗證支援包含在 Azure .NET SDK 2.0 版或更新版本中。 SAS 支援共用存取授權規則。 所有接受連接字串做為參數的 API 包括 SAS 連接字串的支援。

下一步

如需使用 Microsoft Entra ID 進行驗證的詳細資訊,請參閱下列文章:

如需有關使用 SAS 進行驗證的詳細資訊,請參閱以下文章: