Connectiviteit met Azure-services en -databases beveiligen vanuit Azure-app Service
Uw App Service moet mogelijk verbinding maken met andere Azure-services, zoals een database, opslag of een andere app. In dit overzicht worden verschillende methoden aanbevolen om verbinding te maken en wanneer ze moeten worden gebruikt.
Vandaag de dag is de beslissing voor een connectiviteitsbenadering nauw gerelateerd aan geheimenbeheer. Het algemene patroon van het gebruik van verbindingsgeheimen in verbindingsreeks s, zoals gebruikersnaam en wachtwoord, geheime sleutel, enzovoort, wordt niet langer beschouwd als de veiligste benadering voor connectiviteit. Het risico is vandaag nog hoger omdat bedreigingsactoren regelmatig openbare GitHub-opslagplaatsen verkennen voor per ongeluk doorgevoerde verbindingsgeheimen. Voor cloudtoepassingen is het beste geheimenbeheer helemaal geen geheimen. Wanneer u migreert naar Azure-app Service, kan uw app beginnen met connectiviteit op basis van geheimen en kunt u met App Service geheimen veilig bewaren. Azure kan echter helpen bij het beveiligen van de back-endconnectiviteit van uw app via Microsoft Entra-verificatie, waardoor geheimen helemaal in uw app worden geëlimineerd.
Verbindingsmethode | Wanneer gebruiken |
---|---|
Verbinding maken met een app-identiteit | * U wilt referenties, sleutels of geheimen volledig uit uw toepassing verwijderen. * De downstream Azure-service ondersteunt Microsoft Entra-verificatie, zoals Microsoft Graph. * De downstreamresource hoeft de huidige aangemelde gebruiker niet te kennen of heeft geen gedetailleerde autorisatie van de huidige aangemelde gebruiker nodig. |
Verbinding maken namens de aangemelde gebruiker | * De app moet namens de aangemelde gebruiker toegang hebben tot een downstreamresource. * De downstream Azure-service ondersteunt Microsoft Entra-verificatie, zoals Microsoft Graph. * De downstreamresource moet gedetailleerde autorisatie uitvoeren van de huidige aangemelde gebruiker. |
Verbinding maken met behulp van geheimen | * Voor de downstreamresource zijn verbindingsgeheimen vereist. * Uw app maakt verbinding met niet-Azure-services, zoals een on-premises databaseserver. * De downstream Azure-service biedt nog geen ondersteuning voor Microsoft Entra-verificatie. |
Verbinding maken met een app-identiteit
Als uw app al één set referenties gebruikt voor toegang tot een downstream Azure-service, kunt u de verbinding snel converteren om een app-identiteit te gebruiken. Met een beheerde identiteit van Microsoft Entra ID heeft App Service toegang tot resources zonder geheimen en kunt u de toegang beheren via op rollen gebaseerd toegangsbeheer (RBAC). Een beheerde identiteit kan verbinding maken met elke Azure-resource die Ondersteuning biedt voor Microsoft Entra-verificatie en de verificatie vindt plaats met kortstondige tokens.
In de volgende afbeelding ziet u hoe een App Service verbinding maakt met andere Azure-services:
- A: Gebruikers bezoeken de Website van Azure App Service.
- B: Maak veilig verbinding tussen App Service en een andere Azure-service met behulp van een beheerde identiteit.
- C: Veilig verbinding maken vanuit App Service met Microsoft Graph met behulp van een beheerde identiteit.
Voorbeelden van het gebruik van toepassingsgeheimen om verbinding te maken met een database:
- Zelfstudie: Verbinding maken met Azure-databases vanuit App Service zonder geheimen met behulp van een beheerde identiteit
- Zelfstudie: verbinden met SQL Database vanuit .NET App Service zonder geheimen met een beheerde identiteit
- Zelfstudie: Verbinding maken met een PostgreSQL-database vanuit Java Tomcat App Service zonder geheimen met behulp van een beheerde identiteit
Verbinding maken namens de aangemelde gebruiker
Mogelijk moet uw app verbinding maken met een downstreamservice namens de aangemelde gebruiker. Met App Service kunt u eenvoudig gebruikers verifiëren met behulp van de meest voorkomende id-providers (zie Verificatie en autorisatie in Azure-app Service en Azure Functions). Als u de Microsoft-provider (Microsoft Entra-verificatie) gebruikt, kunt u de aangemelde gebruiker doorschakelen naar een downstreamservice. Voorbeeld:
- Voer een databasequery uit die vertrouwelijke gegevens retourneert die de aangemelde gebruiker mag lezen.
- Persoonlijke gegevens ophalen of acties ondernemen als aangemelde gebruiker in Microsoft Graph.
In de volgende afbeelding ziet u een toepassing die veilig toegang heeft tot een SQL-database namens de aangemelde gebruiker.
Enkele veelvoorkomende scenario's zijn:
- Verbinding maken met Microsoft Graph namens de gebruiker
- Verbinding maken met een SQL-database namens de gebruiker
- Verbinding maken met een andere App Service-app namens de gebruiker
- De aangemelde gebruiker door meerdere lagen van downstreamservices laten stromen
Verbinding maken met behulp van geheimen
Er zijn twee aanbevolen manieren om geheimen in uw app te gebruiken: het gebruik van geheimen die zijn opgeslagen in Azure Key Vault of geheimen in app-instellingen van App Service.
Geheimen uit Key Vault gebruiken
Azure Key Vault kan worden gebruikt om geheimen en sleutels veilig op te slaan, de toegang en het gebruik van geheimen te bewaken en het beheer van toepassingsgeheimen te vereenvoudigen. Als de downstreamservice geen ondersteuning biedt voor Microsoft Entra-verificatie of een verbindingsreeks of sleutel vereist, gebruikt u Key Vault om uw geheimen op te slaan en uw app te verbinden met Key Vault met een beheerde identiteit en de geheimen op te halen. Uw app heeft toegang tot sleutelkluisgeheimen als Key Vault-verwijzingen in de app-instellingen.
Voordelen van beheerde identiteiten die zijn geïntegreerd met Key Vault zijn onder andere:
- Toegang tot het sleutelkluisgeheim is beperkt tot de app.
- App-inzenders, zoals beheerders, hebben mogelijk volledige controle over de App Service-resources en hebben tegelijkertijd geen toegang tot de sleutelkluisgeheimen.
- Er is geen codewijziging vereist als uw toepassingscode al toegang heeft tot verbindingsgeheimen met app-instellingen.
- Key Vault biedt bewaking en controle van wie toegang heeft tot geheimen.
- Voor het rouleren van sleutelkluisgeheimen zijn geen wijzigingen in App Service vereist.
In de volgende afbeelding ziet u hoe App Service verbinding maakt met Key Vault met behulp van een beheerde identiteit en vervolgens toegang krijgt tot een Azure-service met behulp van geheimen die zijn opgeslagen in Key Vault:
Geheimen gebruiken in app-instellingen
Voor apps die verbinding maken met services met behulp van geheimen (zoals gebruikersnamen, wachtwoorden en API-sleutels), kan App Service deze veilig opslaan in app-instellingen. Deze geheimen worden toegevoegd aan uw toepassingscode als omgevingsvariabelen bij het opstarten van de app. App-instellingen worden altijd versleuteld wanneer ze worden opgeslagen (versleuteld-at-rest). Voor geavanceerder geheimenbeheer, zoals het rouleren van geheimen, toegangsbeleid en controlegeschiedenis, kunt u Key Vault gebruiken.
Voorbeelden van het gebruik van toepassingsgeheimen om verbinding te maken met een database:
- Zelfstudie: Een ASP.NET Core- en Azure SQL Database-app implementeren in Azure-app Service
- Zelfstudie: Een ASP.NET-app implementeren in Azure met Azure SQL Database
- Zelfstudie: Een PHP-, MySQL- en Redis-app implementeren in Azure-app Service
- Een Node.js + MongoDB-web-app implementeren in Azure
- Een Python-web-app (Django of Flask) implementeren met PostgreSQL in Azure
- Zelfstudie: Een Tomcat-web-app bouwen met Azure-app Service in Linux en MySQL
- Zelfstudie: Een Java Spring Boot-web-app bouwen met Azure-app Service in Linux en Azure Cosmos DB
Volgende stappen
Leer hoe u het volgende doet:
- Geheimen veilig opslaan in Azure Key Vault.
- Toegang tot resources met behulp van een beheerde identiteit.
- Geheimen opslaan met app-instellingen van App Service.
- Maak verbinding met Microsoft Graph als de gebruiker.
- Maak verbinding met een SQL-database als de gebruiker.
- Maak verbinding met een andere App Service-app als de gebruiker.
- Maak verbinding met een andere App Service-app en vervolgens een downstreamservice als de gebruiker.