使用 Azure Active Directory 來授權佇列的存取權

Azure 儲存體支援使用 Azure Active Directory (Azure AD) 來授權佇列資料的要求。 使用 Azure AD 時,您可以使用 azure 角色型存取控制 (azure RBAC) 來授與許可權給安全性主體,該安全性主體可能是使用者、群組或應用程式服務主體。 安全性主體會由 Azure AD 進行驗證,以傳回 OAuth 2.0 權杖。 然後,權杖可以用來授權對佇列服務的要求。

使用 Azure AD 對 Azure 儲存體的授權,可提供更高的安全性,並讓共用金鑰授權更容易使用。 Microsoft 建議您盡可能使用 Azure AD 的佇列應用程式授權,以確保具有最低必要許可權的存取權。

使用 Azure AD 的授權適用于所有公用區域和國家雲端中的所有一般用途儲存體帳戶。 只有使用 Azure Resource Manager 部署模型建立的儲存體帳戶支援 Azure AD 授權。

佇列的 Azure AD 總覽

當安全性主體 (使用者、群組或應用程式) 嘗試存取佇列資源時,要求必須獲得授權。 使用 Azure AD,對資源的存取是兩個步驟的程序。 首先,會驗證安全性主體的身分識別,並傳回 OAuth 2.0 權杖。 接下來,權杖會當做要求的一部分傳遞給佇列服務,並由服務用來授權存取指定的資源。

驗證步驟要求應用程式在執行時間要求 OAuth 2.0 存取權杖。 如果應用程式是在 azure 實體(例如 Azure VM、虛擬機器擴展集或 Azure Functions 應用程式)中執行,則可以使用 受控識別 來存取佇列。 若要瞭解如何授權受控識別所提出的要求,請參閱 使用適用于 Azure 資源的受控識別來授權佇列資料的存取權

授權步驟需要將一或多個 Azure 角色指派給安全性主體。 Azure 儲存體提供的 Azure 角色包含佇列資料的一般許可權集。 指派給安全性主體的角色會決定主體將擁有的許可權。 若要深入瞭解如何為佇列存取指派 Azure 角色,請參閱 指派 azure 角色以存取佇列資料

對 Azure 佇列服務提出要求的原生應用程式和 web 應用程式,也可以使用 Azure AD 來授權存取權。 若要瞭解如何要求存取權杖,並使用它來授權要求,請參閱使用 Azure 儲存體應用程式的 Azure AD 授權存取 Azure 儲存體

指派存取權限的 Azure 角色

Azure Active Directory (Azure AD) 透過azure RBAC (的 azure 角色型存取控制,來授與受保護資源的存取權限。 Azure 儲存體會定義一組 Azure 內建角色,其中包含用來存取佇列資料的一般許可權集。 您也可以定義自訂角色,以存取佇列資料。

當 azure 角色指派給 Azure AD 安全性主體時,azure 會為該安全性主體授與這些資源的存取權。 Azure AD 的安全性主體可能是使用者、群組、應用程式服務主體,或適用于 Azure 資源的受控識別

資源範圍

將 Azure RBAC 角色指派給安全性主體之前,請先決定安全性主體應具備的存取範圍。 最佳做法的要求是,最好只授與最小的可能範圍。 在更廣泛的範圍中定義的 Azure RBAC 角色會由其下的資源繼承。

從最小範圍開始,您可以在下列層級範圍存取 Azure 佇列資源:

  • 個別佇列。 在此範圍中,角色指派會套用至佇列中的訊息,以及佇列屬性和中繼資料。
  • 儲存體帳戶。 在此範圍中,角色指派會套用至所有佇列及其訊息。
  • 資源群組。 在此範圍中,角色指派會套用至資源群組中所有儲存體帳戶的所有佇列。
  • 訂閱。 在此範圍中,角色指派會套用至訂用帳戶中所有資源群組中所有儲存體帳戶的所有佇列。
  • 管理群組。 在此範圍中,角色指派會套用到管理群組中所有訂用帳戶內所有資源群組中所有儲存體帳戶的所有佇列。

如需 Azure RBAC 角色指派範圍的詳細資訊,請參閱 瞭解 AZURE rbac 的範圍

適用于佇列的 Azure 內建角色

Azure RBAC 提供數個內建角色,可讓您使用 Azure AD 和 OAuth 來授權佇列資料的存取權。 在 Azure 儲存體中提供資料資源許可權的一些角色範例包括:

若要瞭解如何將 Azure 內建角色指派給安全性主體,請參閱 指派 azure 角色以存取佇列資料。 若要瞭解如何列出 Azure RBAC 角色及其許可權,請參閱 列出 azure 角色定義

如需有關如何為 Azure 儲存體定義內建角色的詳細資訊,請參閱了解角色定義。 如需建立 Azure 自訂角色的詳細資訊,請參閱 azure 自訂角色

只有明確針對資料存取定義的角色允許安全性主體存取佇列資料。 內建角色(例如擁有者、參與者儲存體帳戶參與者)允許安全性主體管理儲存體帳戶,但不會透過 Azure AD 提供該帳戶內佇列資料的存取權。 但是,如果角色包含Microsoft 儲存體/storageAccounts/listKeys/action之後,指派該角色的使用者就可以透過具有帳戶存取金鑰的共用金鑰授權來存取儲存體帳戶中的資料。 如需詳細資訊,請參閱 選擇如何授權存取 Azure 入口網站中的 blob 資料

如需有關適用於資料服務和管理服務的 Azure 儲存體 Azure 內建角色的詳細資訊,請參閱 Azure RBAC 的 Azure 內建角色中的儲存體一節。 此外,如需在 Azure 中提供權限的不同類型角色詳細資訊,請參閱傳統訂用帳戶管理員角色、Azure 角色和 Azure AD 角色

重要

Azure 角色指派最多可能需要30分鐘的時間才會傳播。

資料作業的存取權限

如需呼叫特定佇列服務作業所需許可權的詳細資訊,請參閱 呼叫資料作業的許可權

使用 Azure AD 帳戶存取資料

您可以使用使用者的 Azure AD 帳戶或使用帳戶存取金鑰 (共用金鑰授權) ,來授權透過 Azure 入口網站、PowerShell 或 Azure CLI 存取佇列資料。

從 Azure 入口網站存取資料

Azure 入口網站可以使用您的 Azure AD 帳戶或帳戶存取金鑰來存取 Azure 儲存體帳戶中的佇列資料。 Azure 入口網站所使用的授權配置取決於指派給您的 Azure 角色。

當您嘗試存取佇列資料時,Azure 入口網站會先檢查您是否已將 Azure 角色指派給Microsoft。儲存體/storageAccounts/listkeys/action。 如果您已獲指派具有此動作的角色,則 Azure 入口網站會使用帳戶金鑰來透過共用金鑰授權來存取佇列資料。 如果您未獲指派具有此動作的角色,則 Azure 入口網站會嘗試使用您的 Azure AD 帳戶來存取資料。

若要使用您的 Azure AD 帳戶從 Azure 入口網站存取佇列資料,您需要存取佇列資料的許可權,而且您也需要許可權,才能流覽 Azure 入口網站中的儲存體帳戶資源。 Azure 儲存體提供的內建角色會授與佇列資源的存取權,但不會將許可權授與儲存體帳戶資源。 基於這個理由,入口網站的存取也需要指派 Azure Resource Manager 角色 (例如讀者角色),並將範圍設定在儲存體帳戶層級或更高層級。 讀者角色會授與最受限制的權限,但也可以接受另一個 Azure Resource Manager 角色來授與儲存體帳戶管理資源的存取權。 若要深入瞭解如何將許可權指派給使用者,以使用 Azure AD 帳戶在 Azure 入口網站中進行資料存取,請參閱指派 azure 角色以存取佇列資料指派 azure 角色以存取佇列資料

Azure 入口網站指出當您流覽至佇列時,所使用的授權配置。 如需有關入口網站中資料存取的詳細資訊,請參閱 選擇如何授權存取 Azure 入口網站中的佇列資料 ,以及 選擇如何授權存取 Azure 入口網站中的佇列資料

從 PowerShell 或 Azure CLI 的資料存取

Azure CLI 和 PowerShell 支援使用 Azure AD 認證登入。 登入之後,您的會話就會在這些認證下執行。 若要深入瞭解,請參閱下列其中一篇文章:

下一步