從 Azure App Service 安全地連線到 Azure 服務和資料庫
您的應用程式服務可能會需要連線到其他 Azure 服務,例如資料庫、儲存體或其他應用程式。 此概觀建議不同的連線方法,以及使用連線的時間。
連線方式 | 使用時機 |
---|---|
使用應用程式身分識別進行連線 | * 您要在沒有已驗證的使用者存在或使用應用程式身分識別的情況下連線到資源。 * 您不需要管理認證、金鑰或秘密,或是甚至無法存取認證。 * 您可以使用受控識別來管理您的認證。 * 需要 Microsoft Entra 身分識別才能存取 Azure 資源。 例如,Microsoft Graph 或 Azure 管理 SDK 等服務。 |
以已驗證的使用者身分連線 | * 您要存取資源,並以登入的使用者身分執行一些動作。 |
使用秘密連線 | * 您必須將秘密傳遞至您的應用程式做為環境變數。 * 您要連線到非 Azure 服務,例如 GitHub、Twitter、Facebook 或 Google。 * 下游資源不支援 Microsoft Entra 驗證。 * 下游資源需要某種類型的連接字串或金鑰或秘密。 |
使用秘密連線
有兩種建議的方式可在您的應用程式中使用秘密:使用儲存在 Azure Key Vault 中的秘密,或使用 App Service 應用程式設定中的秘密。
使用應用程式設定中的祕密
某些應用程式會使用環境變數存取秘密。 傳統上,App Service 應用程式設定用來儲存連接字串、API 金鑰和其他環境變數。 這些秘密會在應用程式啟動時插入您的應用程式程式碼做為環境變數。 應用程式設定一律會在儲存時加密 (待用加密)。 如果您也需要存取原則和秘密的稽核歷程記錄,請考慮將其放在 Azure Key Vault 中,並在應用程式設定中使用 Key Vault 參考。
使用應用程式秘密連線到資料庫的範例:
- ASP.NET Core 搭配 SQL DB
- ASP.NET 搭配 SQL DB
- PHP with MySQL
- Node.js with MongoDB
- Python 搭配 Postgres
- Java 搭配 Spring Data
- Quarkus 搭配 Postgres
從 Key Vault 使用祕密
Azure Key Vault 可用來安全地儲存秘密和密鑰、監視秘密的存取和使用,以及簡化應用程式秘密的管理。 如果您應用程式的下游服務不支援 Microsoft Entra 驗證或需要連接字串或金鑰,請使用 Key Vault 來儲存秘密,並使用受控識別將您的應用程式連線到 Key Vault 並擷取秘密。
與金鑰保存庫整合的受控識別優點包括:
- 僅限應用程式存取金鑰保存庫。
- 應用程式參與者,例如系統管理員,可能能夠完全控制 App Service 資源,同時無法存取金鑰保存庫祕密。
- 如果您的應用程式程式碼已透過應用程式設定存取連線祕密,則不需要變更任何程式碼。
- Key Vault 可監視和稽核存取祕密的人員。
- 金鑰保存庫中的連線資訊輪替不需要變更 App Service。
下圖示範 App Service 使用受控識別連線到 Key Vault,然後使用儲存 i Key Vault 的秘密來存取 Azure 服務:
使用應用程式身分識別進行連線
在某些情況下,您的應用程式必須存取應用程式本身的身分識別 (而不是已登入使用者) 下、或是沒有已登入使用者存在的資料。 來自 Microsoft Entra ID 的受控識別可讓 App Service 透過角色型存取控制 (RBAC) 存取資源,而不需要應用程式認證。 受控識別可以連線到支援 Microsoft Entra 驗證的任何資源。 將受控識別指派給您的 Web 應用程式後,Azure 會負責建立和散發憑證。 您不需要擔心管理祕密或應用程式認證。
下圖示範下列連線至其他 Azure 服務的 App Service:
- A:使用者造訪 Azure 應用程式服務網站。
- B:使用受控識別安全地從 App Service 連線到另一個 Azure 服務。
- C:使用受控識別安全地從 App Service 連線到 Microsoft Graph。
以已驗證的使用者身分連線
在某些情況下,您的應用程式必須連線到資源,並執行一些只有登入使用者可以執行的動作。 將委派權限授與您的應用程式,以使用登入使用者的身分識別連線到資源。
下圖示範代表登入使用者安全地存取 SQL 資料庫的應用程式。
以下是一些常見的情節:
- 以使用者身分連線至 Microsoft Graph
- 以使用者身分連線到 SQL 資料庫
- 以使用者身分連線至另一個 App Service 應用程式
- 以使用者身分連線至另一個 App Service 應用程式,然後連線至下游服務
下一步
了解如何:
- 將祕密安全地儲存在 Azure Key Vault 中。
- 使用受控識別存取資源。
- 使用 App Service 應用程式設定來儲存秘密。
- 以使用者身分連線至 Microsoft Graph。
- 以使用者身分連線到 SQL 資料庫。
- 以使用者身分連線至另一個 App Service 應用程式。
- 以使用者身分連線至另一個 App Service 應用程式,然後連線至下游服務。