Een daemon-toepassing beveiligen
In dit artikel wordt beschreven hoe u daemon-toepassingen host in een vertrouwde en beveiligde omgeving in Microsoft Azure Maps.
Hier volgen enkele voorbeelden van daemon-toepassingen:
- Azure-webtaak
- Azure Function-app
- Windows-service
- Een actieve en betrouwbare achtergrondservice
Azure Maps-verificatiedetails weergeven
Ga als volgende te werk om de verificatiegegevens van uw Azure Maps-account weer te geven in Azure Portal:
Meld u aan bij het Azure-portaal.
Navigeer naar het menu van Azure Portal. Selecteer Alle resources en selecteer vervolgens uw Azure Maps-account.
Selecteer Verificatie onder Instellingen in het linkerdeelvenster.
Er worden drie waarden gemaakt wanneer het Azure Maps-account wordt gemaakt. Ze worden gebruikt ter ondersteuning van twee typen verificatie in Azure Maps:
- Microsoft Entra-verificatie: Het
Client ID
vertegenwoordigt het account dat moet worden gebruikt voor REST API-aanvragen. DeClient ID
waarde moet worden opgeslagen in de toepassingsconfiguratie en vervolgens moet deze worden opgehaald voordat u HTTP-aanvragen voor Azure Maps maakt die gebruikmaken van Microsoft Entra-verificatie. - Gedeelde sleutelverificatie: de
Primary Key
enSecondary Key
worden gebruikt als de abonnementssleutel voor verificatie met gedeelde sleutels. Verificatie met gedeelde sleutels is afhankelijk van het doorgeven van de sleutel die door het Azure Maps-account wordt gegenereerd met elke aanvraag naar Azure Maps. U wordt aangeraden uw sleutels regelmatig opnieuw te genereren. Om de huidige verbindingen tijdens de regeneratie te behouden, worden er twee sleutels opgegeven. De ene sleutel kan in gebruik zijn en de andere sleutel opnieuw genereren. Als u de sleutels opnieuw genereert, dient u elke toepassing bij te werken die toegang heeft tot dit account om de nieuwe sleutels te kunnen gebruiken. Zie Verificatie met Azure Maps voor meer informatie
Belangrijk
Voor productietoepassingen raden we u aan Om Microsoft Entra ID en op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) te implementeren. Zie Verificatie met Azure Maps voor een overzicht van Microsoft Entra-concepten.
Scenario: Gedeelde sleutelverificatie met Azure Key Vault
Toepassingen die gebruikmaken van verificatie met gedeelde sleutels, moeten de sleutels opslaan in een beveiligd archief. In dit scenario wordt beschreven hoe u uw toepassingssleutel veilig opslaat als een geheim in Azure Key Vault. In plaats van de gedeelde sleutel op te slaan in de toepassingsconfiguratie, kan de toepassing de gedeelde sleutel ophalen als een Azure Key Vault-geheim. Om het genereren van sleutels te vereenvoudigen, raden we aan dat toepassingen één sleutel tegelijk gebruiken. Toepassingen kunnen vervolgens de ongebruikte sleutel opnieuw genereren en de opnieuw gegenereerde sleutel implementeren in Azure Key Vault terwijl de huidige verbindingen met één sleutel behouden blijven. Raadpleeg de ontwikkelaarshandleiding voor Azure Key Vault voor meer informatie over het configureren van Azure Key Vault.
Belangrijk
Dit scenario heeft indirect toegang tot Microsoft Entra-id via Azure Key Vault. We raden u echter aan om Microsoft Entra-verificatie rechtstreeks te gebruiken. Het gebruik van Microsoft Entra ID voorkomt rechtstreeks de extra complexiteit en operationele vereisten voor het gebruik van gedeelde sleutelverificatie en het instellen van Key Vault.
In de volgende stappen wordt dit proces beschreven:
- Maak een Azure Key Vault.
- Maak een Microsoft Entra-service-principal door een app-registratie of beheerde identiteit te maken. De gemaakte principal is verantwoordelijk voor toegang tot Azure Key Vault.
- Wijs de service-principal toegang toe tot de machtiging Azure Key-geheimen
get
. Zie Toegangsbeleid voor Key Vault toewijzen met behulp van Azure Portal voor meer informatie over het instellen van machtigingen. - Wijs tijdelijk toegang toe aan geheimenmachtigingen
set
voor u als ontwikkelaar. - Stel de gedeelde sleutel in de Key Vault-geheimen in en verwijs naar de geheime id als configuratie voor de daemon-toepassing.
- Verwijder uw geheimenmachtiging
set
. - Als u het gedeelde sleutelgeheim wilt ophalen uit Azure Key Vault, implementeert u Microsoft Entra-verificatie in de daemon-toepassing.
- Maak een Azure Maps REST API-aanvraag met de gedeelde sleutel. Nu kan de daemon-toepassing de gedeelde sleutel ophalen uit de Sleutelkluis.
Tip
Als de app wordt gehost in de Azure-omgeving, raden we u aan een beheerde identiteit te gebruiken om de kosten en complexiteit van het beheren van een geheim voor verificatie te verminderen. Zie zelfstudie: Een beheerde identiteit gebruiken om Key Vault te verbinden met een Azure-web-app in .NET voor meer informatie over het instellen van een beheerde identiteit.
Scenario: op rollen gebaseerd toegangsbeheer van Microsoft Entra
Nadat een Azure Maps-account is gemaakt, bevindt de Waarde van Azure Maps Client ID
zich op de pagina met verificatiedetails van de Azure-portal. Deze waarde vertegenwoordigt het account dat moet worden gebruikt voor REST API-aanvragen. Deze waarde moet worden opgeslagen in de toepassingsconfiguratie en worden opgehaald voordat u HTTP-aanvragen maakt. Het doel van het scenario is om de daemon-toepassing in staat te stellen zich te verifiëren bij Microsoft Entra ID en REST API's van Azure Maps aan te roepen.
Tip
Als u voordelen van beheerde identiteitsonderdelen wilt inschakelen, raden we u aan om te hosten op virtuele Azure-machines, virtuele-machineschaalsets of App Services.
Een daemon hosten in Azure-resources
Wanneer u azure-resources uitvoert, kunt u door Azure beheerde identiteiten configureren om lage kosten en minimale inspanningen voor referentiebeheer mogelijk te maken.
Zie Overzicht van beheerde identiteiten om toepassingstoegang tot een beheerde identiteit in te schakelen.
Enkele voordelen van beheerde identiteiten zijn:
- Door het Azure-systeem beheerde X509-certificaatverificatie voor cryptografie van openbare sleutels.
- Microsoft Entra-beveiliging met X509-certificaten in plaats van clientgeheimen.
- Azure beheert en vernieuwt alle certificaten die zijn gekoppeld aan de managed identity-resource.
- Operationeel beheer van referenties is vereenvoudigd omdat beheerde identiteit de noodzaak voor een beveiligde geheime opslagservice, zoals Azure Key Vault, verwijdert.
Een daemon hosten in niet-Azure-resources
Beheerde identiteiten zijn alleen beschikbaar wanneer ze worden uitgevoerd in een Azure-omgeving. Daarom moet u een service-principal configureren via een Microsoft Entra-toepassingsregistratie voor de daemon-toepassing.
Nieuwe toepassingsregistratie maken
Als u de registratie van uw toepassing al hebt gemaakt, gaat u naar Gedelegeerde API-machtigingen toewijzen.
Ga als volgt te werk om een nieuwe toepassingsregistratie te maken:
Meld u aan bij het Azure-portaal.
Selecteer Microsoft Entra ID.
Selecteer App-registraties onder Beheren in het linkerdeelvenster.
Selecteer het tabblad + Nieuwe registratie .
Voer een naam in en selecteer vervolgens een type ondersteuningsaccount.
Selecteer Registreren.
Gedelegeerde API-machtigingen toewijzen
Gedelegeerde API-machtigingen toewijzen aan Azure Maps:
Als u dit nog niet hebt gedaan, meldt u zich aan bij Azure Portal.
Selecteer Microsoft Entra ID.
Selecteer App-registraties onder Beheren in het linkerdeelvenster.
Selecteer uw toepassing.
Selecteer API-machtigingen onder Beheren in het linkerdeelvenster.
Selecteer Een machtiging toevoegen.
Selecteer de API's die door mijn organisatie worden gebruikt .
Voer Azure Maps in het zoekvak in.
Selecteer Azure Maps.
Schakel het selectievakje Toegang tot Azure Maps in.
Selecteer Machtigingen toevoegen.
Een clientgeheim maken of certificaat configureren
Als u verificatie op basis van een server of toepassing in uw toepassing wilt implementeren, kunt u een van de volgende twee opties kiezen:
- Upload een certificaat met een openbare sleutel.
- Een clientgeheim maken.
Een certificaat met een openbare sleutel uploaden
Een openbaar sleutelcertificaat uploaden:
Selecteer onder Beheren in het linkerdeelvenster Certificaten en geheimen.
Selecteer Certificaat uploaden.
Selecteer rechts van het tekstvak het bestandspictogram.
Selecteer een .crt-, .cer- of PEM-bestand en selecteer vervolgens Toevoegen.
Een clientgeheim maken
Een clientgeheim maken:
Selecteer onder Beheren in het linkerdeelvenster Certificaten en geheimen.
Selecteer + Nieuw clientgeheim.
Voer een beschrijving voor het clientgeheim in.
Selecteer Toevoegen.
Kopieer het geheim en sla het veilig op in een service zoals Azure Key Vault. Gebruik ook het geheim in het aanvraagtoken met de sectie Beheerde identiteit van dit artikel.
Belangrijk
Raadpleeg de Ontwikkelaarshandleiding voor Azure Key Vault om het certificaat of geheim veilig op te slaan. U gebruikt dit geheim om tokens op te halen uit Microsoft Entra-id.
Op rollen gebaseerde toegang verlenen aan gebruikers aan Azure Maps
U kunt op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) verlenen door een Microsoft Entra-groep of beveiligingsprincipaal toe te wijzen aan een of meer Azure Maps-roldefinities.
Zie Ingebouwde Azure Maps-roldefinities weergeven om de beschikbare Azure-roldefinities voor Azure Maps weer te geven.
Zie Microsoft Entra-groepen om de Azure Maps-app en resourcetoegang van een grote hoeveelheid gebruikers efficiënt te beheren.
Belangrijk
Als gebruikers zich mogen verifiëren bij een toepassing, moeten de gebruikers eerst worden gemaakt in Microsoft Entra-id. Zie Gebruikers toevoegen of verwijderen met behulp van Microsoft Entra ID voor meer informatie.
Zie Microsoft Entra-id voor meer informatie over het effectief beheren van een grote map voor gebruikers.
Waarschuwing
Ingebouwde azure Maps-roldefinities bieden een zeer grote autorisatietoegang tot veel Azure Maps REST API's. Zie Een aangepaste roldefinitie maken en de door het systeem toegewezen identiteit toewijzen aan de aangepaste roldefinitie om de toegang tot API's tot een minimum te beperken. Hierdoor heeft de toepassing de minste bevoegdheid nodig om toegang te krijgen tot Azure Maps.
Een token met beheerde identiteit aanvragen
Nadat een beheerde identiteit is geconfigureerd voor de hostingresource, kunt u Azure SDK of REST API gebruiken om een token voor Azure Maps te verkrijgen. Zie Een toegangstoken verkrijgen voor meer informatie over het verkrijgen van een toegangstoken.
Token aanvragen met toepassingsregistratie
Nadat u uw app hebt geregistreerd en gekoppeld aan Azure Maps, moet u een toegangstoken aanvragen.
Het toegangstoken verkrijgen:
Als u dit nog niet hebt gedaan, meldt u zich aan bij Azure Portal.
Selecteer Microsoft Entra ID.
Selecteer App-registraties onder Beheren in het linkerdeelvenster.
Selecteer uw toepassing.
U ziet nu de pagina Overzicht. Kopieer de toepassings-id (client) en de map-id (tenant).
In dit artikel wordt de bruno-toepassing gebruikt om de tokenaanvraag te maken, maar u kunt een andere API-ontwikkelomgeving gebruiken.
Open de bruno-app, selecteer NIEUWE AANVRAAG om de aanvraag te maken.
Stel in het venster NEW REQUEST het type in op HTTP. Voer een naam in voor de aanvraag, zoals POST-tokenaanvraag.
Selecteer de GET HTTP-methode in de vervolgkeuzelijst URL en voer vervolgens de volgende URL in:
https://login.microsoftonline.com/{Tenant-ID}/oauth2/v2.0/token?response_type=token&grant_type=client_credentials&client_id={Client-ID}&client_secret={Client-Secret}&scope=https://atlas.microsoft.com/.default
Notitie
Vervangen:
{Tenant-ID}
met de map-id (tenant){Client-ID}
met de toepassings-id (client){Client-Secret}
met uw clientgeheim.
Selecteer de knop Uitvoeren
U ziet nu het volgende JSON-antwoord:
{
"token_type": "Bearer",
"expires_in": 86399,
"ext_expires_in": 86399,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFq..."
}
Volgende stappen
Voor meer gedetailleerde voorbeelden:
Zoek de metrische gegevens over API-gebruik voor uw Azure Maps-account:
Bekijk voorbeelden die laten zien hoe u Microsoft Entra ID integreert met Azure Maps: