Verificatie met service-principals in Microsoft Entra-id

Voltooid

De medewerkers van uw bedrijf gebruiken verschillende on-premises toepassingen voor de dagelijkse activiteiten van het bedrijf. Onlangs heeft het bedrijf een bedrijfsbrede beveiligingsaudit voltooid. Uit de audit kwam een ontwerpfout in verschillende toepassingen naar voren. De audit heeft gebruikersnamen en wachtwoorden gevonden die zijn opgeslagen in de broncode van de toepassing of de bijbehorende configuratiebestanden.

In het rapport werden de volgende beveiligingsproblemen met het opslaan van gebruikersnamen en wachtwoorden in code of in configuratiebestanden aangeduid:

  • Wachtwoorden die zijn opgeslagen in tekst zonder opmaak, zijn toegankelijk voor iedereen.
  • Aangetaste gebruikersreferenties bedreigen de netwerkbeveiliging van de onderneming.
  • Via gecompromitteerde gebruikersreferenties is toegang tot gevoelige resources mogelijk, zoals verkoop- en marketinggegevens.
  • De huidige benadering voor referentieopslag maakt onnodige overhead. Toepassingen moeten worden bijgewerkt en opnieuw worden geïmplementeerd wanneer referenties verlopen.
  • De huidige oplossing voor referentieopslag beperkt de toepassing tot on-premises. Hierdoor kan de toepassing niet worden geschaald naar cloudgebruik zonder aanzienlijke wijzigingen.

Als ontwikkelaar bent u gevraagd deze problemen op te lossen. In het auditrapport wordt het gebruik van Azure-service-principals voorgesteld om de beveiliging van de toepassing te verbeteren.

In deze les bekijkt u de Azure-service-principals nauwkeuriger. U krijgt meer informatie over het achterliggende concept en ontdekt hoe u Azure-service-principals implementeert om toegang te krijgen tot Azure-resources.

Wat zijn Azure-service-principals?

U kunt een Azure-service-principal beschouwen als een proxyaccount of identiteit die uw app of service vertegenwoordigt. Microsoft Entra ID beheert dit account. U verleent de service-principal toegang tot de Azure-resources die u nodig hebt. Gebruik de service-principal in plaats van het insluiten van referenties of het maken van een dummy-account voor uw app.

Service-principals bestaan op tenantniveau in Azure. Service-principals worden gebruikt om toegang te verlenen tot resources in die tenant.

In Azure Portal kunt u een Microsoft Entra-toepassing maken die uw app vertegenwoordigt. U kunt dit toepassingsobject vervolgens koppelen aan een service-principal.

U hoeft maar één service-principal te koppelen als alle resources zich in dezelfde tenant bevinden. Als voor uw app toegang tot Azure-resources in een andere tenant is vereist, hebt u een service-principal voor elke tenant nodig.

Diagram showing the relationship between service principals and tenants.

U kunt uw service-principal maken met een van de volgende opties:

  • Via de portal
  • Met PowerShell
  • Via CLI-opdrachten
  • Met API-aanroepen

Microsoft Identity Platform gebruiken in uw toepassingen

Het Microsoft Identity Platform vereenvoudigt de manier waarop uw toepassing wordt geverifieerd met Microsoft Entra ID. Het biedt een uniforme manier om uw apps te verifiëren. Wanneer een toepassing is geverifieerd met Microsoft Entra ID, ontvangt deze een uniek token. De toepassing gebruikt dit token telkens wanneer er een aanroep naar een API wordt uitgevoerd of een aanroep om toegang te krijgen tot een service. Als u een toepassing bouwt, gebruikt u Microsoft Authentication Library (MSAL) om ondersteuning voor eenmalige aanmelding te bieden.

U kunt op verschillende manieren een toepassing voor Microsoft Identity Platform inrichten. Hier gebruiken we de portal om een toepassing te registreren in Azure.

  1. Meld u aan bij Azure Portal en selecteer Microsoft Entra-id.

  2. Selecteer App-registraties.

  3. Selecteer in de linkerbovenhoek nieuwe registratie.

    Screenshot showing how to add an application to Azure AD.

  4. Voer een weergavenaam in voor de app.

  5. Geef een van de ondersteunde accounttypen op. U kunt kiezen uit:

    • Accounts binnen de Microsoft Entra-tenant van uw bedrijf.
    • Accounts in de Microsoft Entra-tenant van een bedrijf.
    • Accounts van organisaties en persoonlijke accounts, zoals Microsoft of Xbox.
  6. (Optioneel) Kies een omleidings-URI-parameter . De twee beschikbare typen zijn Web en Openbare client. Een omleidings-URI heeft de vorm van een webkoppeling (HTTPS). De koppeling hoeft niet geldig te zijn, tenzij u een openbare client selecteert.

Wanneer u klaar bent met de stappen, wordt de toepassing geregistreerd bij Microsoft Entra-id. De toepassing wordt ook gekoppeld aan een service-principal.

Toepassingsrollen toewijzen

Aan Microsoft Entra-toepassingen moeten rollen zijn toegewezen om met andere services te kunnen werken. Azure gebruikt op rollen gebaseerd toegangsbeheer (RBAC) voor nauwkeurig beheer van toegang tot Azure-resources en hoe deze resources worden gebruikt. De rollen van een toepassing bepalen de machtigingen en het bereik.

RBAC-machtigingen worden overgenomen van het niveau van het ingestelde bereik. Als u bijvoorbeeld de lezersrol aan een resourcegroep toewijst, worden leesmachtigingen toegewezen aan alle resources in die groep.

Gebruik Azure Portal om de vereiste rollen voor uw app toe te wijzen voor toegang tot de sleutelkluis:

  1. Selecteer uw sleutelkluis in de portal.
  2. Selecteer Toegangsbeheer (IAM) aan de linkerkant.
  3. Selecteer Roltoewijzing toevoegen.
  4. Kies de gewenste rol.
  5. Accepteer op het tabblad Leden de standaardoptie Toegang toewijzen aan : Gebruiker, groep of service-principal.
  6. Selecteer + Leden selecteren.
  7. Zoek en selecteer uw toepassing.
  8. Selecteer Controleren + toewijzen.

Sleutels en machtigingen beheren

Als u toegang wilt krijgen tot Azure-resources via service-principals, hebt u twee parameters nodig:

  • Map-id (tenant): unieke id die de Microsoft Entra-tenant identificeert.
  • Toepassings-id (client): unieke id die uw Microsoft Entra-toepassing identificeert.

Screenshot showing how to add a client secret.

De toepassing heeft referenties nodig om aanvragen te verifiëren. Met de referenties kan de toepassing zichzelf identificeren. U kunt kiezen uit twee soorten referenties:

  • Certificaat: U genereert een certificaat lokaal en uploadt vervolgens het .cer-, PEM- of .CRT-bestand . Een certificaat wordt vaak een openbare sleutel genoemd.
  • Clientgeheim: deze complexe geheime tekenreeks wordt gegenereerd in Azure. Een clientgeheim wordt ook wel een toepassingswachtwoord genoemd.

Of u nu een clientgeheim of een certificaat wilt gebruiken, u moet definiëren wanneer de referentie verloopt. De verloopdatum verschilt per organisatie, maar het is handig om een of twee jaar te kiezen.

Notitie

Omdat certificaten kunnen verlopen, stelt u het clientgeheim in op verlopen voor de beste beveiliging. Het beheer van deze referenties is een nadeel van een app die toegang krijgt tot Azure-resources via een service-principal.

Wanneer u service-principals gebruikt

We hebben nu de handmatige processen verkend om Microsoft Entra-toepassingen te maken, service-principals te koppelen en toegang te verlenen tot resources. U gebruikt deze handmatige processen in slechts twee scenario's:

  • Uw toepassing of service wordt on-premises uitgevoerd.
  • De resources of toepassingen waarvoor u toegang nodig hebt, bieden geen ondersteuning voor beheerde identiteiten.

De veiligste en handigste manier om verificatie in Azure uit te voeren, is het gebruik van beheerde identiteiten.

Test uw kennis

1.

Welke drie items moet een aangepaste app verifiëren met een Microsoft Entra-toepassing?

2.

Welke service wordt aangeroepen wanneer een token door uw toepassing wordt doorgegeven aan Azure?