共用方式為


使用 Microsoft Entra 搭配 Azure 受控 Redis 進行快取驗證 (預覽)

Azure 受控 Redis(預覽版)提供兩種方法來 向快取實例進行驗證 :存取密鑰和Microsoft Entra。

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

Azure 受控 Redis 提供無密碼驗證機制,方法是與 Microsoft Entra 整合。 設定為與 Azure 受控 Redis 連線的 Entra 識別碼,會指派與使用存取密鑰相同的許可權。

在本文中,您將瞭解如何使用服務主體或受控識別來連線到 Redis 實例。

先決條件與限制

重要

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

在快取上啟用 Microsoft Entra 驗證

  1. 在 Azure 入口網站 中,選取您要在其中設定 Microsoft Entra 令牌型驗證的 Azure 受控 Redis 實例。

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

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

  4. 選取 [ 啟用Microsoft項目驗證 ],然後選擇 [使用者或服務主體] 或 [受控識別] 按鈕。 當您選取時,您輸入的用戶會自動指派與使用存取密鑰時相同的許可權。 您也可以輸入受控識別或服務主體,以連線到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 受控 Redis 用戶端都假設密碼和存取密鑰用於驗證,因此您可能需要更新用戶端工作流程,以支援使用 Microsoft Entra 進行驗證。 在本節中,您將瞭解如何使用 Microsoft Entra 令牌,設定用戶端應用程式以連線到 Azure 受控 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 受控 Redis 的連線。 此延伸模組會管理驗證權杖,包括在權杖到期前主動重新整理權杖,以維持 Redis 連線持續好幾天。

此程式代碼範例 示範如何使用 Microsoft.Azure.StackExchangeRedis NuGet 套件,使用 Microsoft Entra 連線到 Azure 受控 Redis 實例。

下表包含程式碼範例的連結。 他們示範如何使用 Microsoft Entra 令牌連線到 Azure 受控 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 命令。