共用方式為


使用 Microsoft Entra 進行 Azure Managed Redis (預覽版) 的快取驗證

Azure Managed Redis (預覽版) 提供兩種方法驗證您的快取執行個體:存取金鑰和 Microsoft Entra。

雖然存取金鑰驗證很簡單,但其隨附一組安全性與密碼管理方面的挑戰。 相較之下,在本文中,您會了解如何使用 Microsoft Entra 權杖進行快取驗證。

藉由與 Microsoft Entra 整合,Azure Managed Redis 提供免密碼的驗證機制。 設定和 Azure Managed Redis 連線的 Entra ID 會被指派與使用存取金鑰相同的權限。

在本文中,您將了解如何使用服務主體或受控識別連線到 Redis 執行個體。

先決條件與限制

重要

使用 Microsoft Entra 權杖建立連線後,用戶端應用程式必須在過期之前定期重新整理 Microsoft Entra 權杖。 然後,應用程式必須將 AUTH 命令傳送至 Redis 伺服器以避免中斷連線。 如需詳細資訊,請參閱設定 Redis 用戶端以使用 Microsoft Entra

在快取上啟用 Microsoft Entra 驗證

  1. 在 Azure 入口網站中,選取您想要設定 Microsoft Entra 權杖型驗證的 Azure Managed Redis 執行個體。

  2. 在 [資源] 功能表上,選取 [驗證]

  3. 在工作窗格上,選取 [Microsoft Entra 驗證] 索引標籤。

  4. 選取 [啟用 Microsoft Entra 驗證],然後選擇 [使用者或服務主體] 或 [受控識別] 按鈕。 當您選取時,會自動為您輸入的使用者指派與使用存取金鑰時相同的權限。 您也可以輸入受控識別或服務主體以連線到 AMR 執行個體。

    此螢幕擷取畫面顯示在資源功能表中選取了驗證,並勾選了 [啟用 Microsoft Entra 驗證] 的核取方塊。

如需如何搭配 Azure CLI 使用 Microsoft Entra 的詳細資訊,請參閱身分識別的參考頁面

停用快取上的存取金鑰驗證

使用 Microsoft Entra 是連接快取的安全方式。 建議您使用 Microsoft Entra 並停用存取金鑰。

當您停用 Redis 執行個體的存取金鑰驗證時,所有現有用戶端連線都將終止,無論它們使用的是存取金鑰或是 Microsoft Entra 驗證。 請遵循建議的 Redis 用戶端最佳做法以實作適當的重試機制,以便重新連線 Microsoft Entra 型連線 (如果有的話)。

停用存取金鑰之前:

  • 必須啟用 Microsoft Entra 驗證。

  • 對於異地複寫的快取,您必須:

    1. 取消連結快取。
    2. 停用存取金鑰。
    3. 重新連結快取。

如果您有使用存取金鑰的快取,而且想要停用存取金鑰,請遵循下列程式:

  1. 在 Azure 入口網站 中,選取您想要停用存取密鑰的 Azure 受控 Redis 實例。

  2. 在 [資源] 功能表上,選取 [驗證]

  3. 在工作窗格上,選取 [存取金鑰]

  4. 設定 要停用的存取金鑰驗證

    此螢幕擷取畫面顯示工作窗格中的存取金鑰,其中含有 [停用存取金鑰驗證] 核取方塊。

  5. 選取 [是],以確認您要更新您的設定。

重要

當快取的 [停用存取金鑰驗證] 設定變更時,所有使用存取金鑰或 Microsoft Entra 的現有用戶端連線都會終止。 請遵循最佳做法來實作適當的重試機制,以便重新連線 Microsoft Entra 型連線。 如需詳細資訊,請參閱連線復原

設定 Redis 用戶端以使用 Microsoft Entra

由於大多數 Azure Managed Redis 用戶端都假定使用密碼和存取金鑰進行驗證,因此您可能需要更新用戶端工作流程以支援使用 Microsoft Entra 進行驗證。 在本節中,你將了解如何設定用戶端應用程式以使用 Microsoft Entra 權杖連線到 Azure Managed Redis。

Microsoft Entra 用戶端工作流程

  1. 透過使用 Microsoft 驗證程式庫 (MSAL),設定您的用戶端應用程式以取得範圍 (https://redis.azure.com/.defaultacca5fbb-b7e4-4009-81f1-37e38fd66d78/.default) 的 Microsoft Entra 權杖。

  2. 更新您的 Redis 連線邏輯,以使用下列 UserPassword

    • User = 受控識別或服務主體的物件識別碼
    • Password = 您使用 MSAL 所取得的 Microsoft Entra 權杖
  3. 透過使用以下項目,以確定您的用戶端會在 Microsoft Entra 權杖到期之前自動執行 Redis AUTH 命令

    • User = 受控識別或服務主體的物件識別碼
    • Password = 定期重新整理的 Microsoft Entra 權杖

用戶端程式庫支援

Microsoft.Azure.StackExchangeRedis 程式庫是 StackExchange.Redis 的延伸模組,讓您能夠使用 Microsoft Entra 驗證從 Redis 用戶端應用程式到 Azure Managed Redis 的連線。 此延伸模組會管理驗證權杖,包括在權杖到期前主動重新整理權杖,以維持 Redis 連線持續好幾天。

這個程式碼範例示範如何利用 Microsoft Entra 使用 Microsoft.Azure.StackExchangeRedis NuGet 套件連線到 Azure Managed Redis 執行個體。

下表包含程式碼範例的連結。 它們示範如何使用 Microsoft Entra 權杖連線到 Azure Managed Redis 執行個體。 各種用戶端程式庫都包含在多種語言中。

用戶端程式庫 語言 連結至範例程式碼
StackExchange.Redis .NET StackExchange.Redis 程式碼範例
redis-py Python redis-py 程式碼範例
Jedis Java Jedis 程式碼範例
Lettuce Java Lettuce 程式碼範例
Redisson Java Redisson 程式碼範例
ioredis Node.js ioredis 程式碼範例
node-redis Node.js node-redis 程式碼範例

Microsoft Entra 驗證的最佳做法

  • 設定私人連結或防火牆規則以保護您的快取免受拒絕服務的攻擊。
  • 確定您的用戶端應用程式至少會在權杖到期前三分鐘傳送新的 Microsoft Entra 權杖,以避免連線中斷。
  • 當您定期呼叫 Redis 伺服器 AUTH 命令時,請考慮加入抖動,使 AUTH 命令錯開。 這樣,您的 Redis 伺服器就不會同時收到太多的 AUTH 命令。