Beveiliging service-principals in Microsoft Entra ID
Een Microsoft Entra-service-principal is de lokale weergave van een toepassingsobject in een tenant of map. Dit is de identiteit van het toepassingsexemplaren. Service-principals definiëren toegang tot toepassingen en resources die de toepassing opent. Er wordt een service-principal gemaakt in elke tenant waar de toepassing wordt gebruikt en verwijst naar het globaal unieke toepassingsobject. De tenant beveiligt de aanmelding van de service-principal en toegang tot resources.
Meer informatie: Toepassings- en service-principalobjecten in Microsoft Entra-id
Relaties tussen tenant-service-principals
Een toepassing met één tenant heeft één service-principal in de eigen tenant. Voor een webtoepassing of API met meerdere tenants is een service-principal vereist in elke tenant. Er wordt een service-principal gemaakt wanneer een gebruiker van die tenant toestemming verleent voor het gebruik van de toepassing of API. Met deze toestemming maakt u een een-op-veel-relatie tussen de toepassing met meerdere tenants en de bijbehorende service-principals.
Een toepassing met meerdere tenants bevindt zich in een tenant en heeft exemplaren in andere tenants. De meeste SaaS-toepassingen (software-as-a-service) zijn geschikt voor multitenancy. Gebruik service-principals om ervoor te zorgen dat de benodigde beveiligingspostuur voor de toepassing en de gebruikers ervan in scenario's met één en meerdere tenants wordt gegarandeerd.
ApplicationID en ObjectID
Een toepassingsexemplaren hebben twee eigenschappen: de ApplicationID (of ClientID) en de ObjectID.
Notitie
De termentoepassing en service-principal worden door elkaar gebruikt bij het verwijzen naar een toepassing in verificatietaken. Ze zijn echter twee representaties van toepassingen in Microsoft Entra ID.
De ApplicationID vertegenwoordigt de globale toepassing en is hetzelfde voor toepassingsexemplaren, in tenants. De ObjectID is een unieke waarde voor een toepassingsobject. Net als bij gebruikers, groepen en andere resources helpt de ObjectID bij het identificeren van een toepassingsexemplaren in Microsoft Entra-id.
Een toepassing en het bijbehorende service-principal-object maken
U kunt een toepassing en het bijbehorende service-principal-object (ObjectID) in een tenant maken met behulp van:
- Azure PowerShell
- Microsoft Graph PowerShell
- Azure-opdrachtregelinterface (Azure CLI)
- Microsoft Graph API
- Azure Portal
- Andere hulpprogramma's
Verificatie van service-principal
Er zijn twee mechanismen voor verificatie bij het gebruik van service-principals: clientcertificaten en clientgeheimen.
Omdat certificaten veiliger zijn, wordt u aangeraden deze, indien mogelijk, te gebruiken. In tegenstelling tot clientgeheimen kunnen clientcertificaten niet per ongeluk worden ingesloten in code. Gebruik Indien mogelijk Azure Key Vault voor certificaat- en geheimenbeheer om assets te versleutelen met sleutels die worden beveiligd door hardwarebeveiligingsmodules:
- Verificatiesleutels
- Opslagaccountsleutels
- Gegevensversleutelingssleutels
- .pfx-bestanden
- Wachtwoords
Zie voor meer informatie over Azure Key Vault en hoe u deze kunt gebruiken voor certificaat- en geheimbeheer:
Uitdagingen en oplossingen
Wanneer u service-principals gebruikt, gebruikt u de volgende tabel om uitdagingen en oplossingen te vinden.
Uitdaging | Oplossing |
---|---|
Toegangsbeoordelingen voor service-principals die zijn toegewezen aan bevoorrechte rollen | Deze functionaliteit is beschikbaar als preview-versie |
Toegangsbeoordelingen voor service-principals | Handmatige controle van de toegangsbeheerlijst voor resources met behulp van Azure Portal |
Over-machtigingen voor service-principals | Wanneer u automation-serviceaccounts of service-principals maakt, verleent u machtigingen voor de taak. Evalueer service-principals om bevoegdheden te verminderen. |
Wijzigingen in referenties of verificatiemethoden voor de service-principal identificeren | - Zie de werkmap gevoelige bewerkingen - Zie het blogbericht van de Tech Community, Microsoft Entra-werkmap om u te helpen solorigate-risico's te beoordelen |
Accounts zoeken met behulp van service-principals
Als u accounts wilt vinden, voert u de volgende opdrachten uit met behulp van service-principals met Azure CLI of PowerShell.
- Azure CLI -
az ad sp list
- PowerShell -
Get-MgServicePrincipal -All:$true
Zie Get-MgServicePrincipal voor meer informatie
De beveiliging van service-principals beoordelen
Als u de beveiliging wilt evalueren, evalueert u bevoegdheden en referentieopslag. Gebruik de volgende tabel om problemen te beperken:
Uitdaging | Oplossing |
---|---|
Detecteer de gebruiker die toestemming heeft gegeven voor een app met meerdere tenants en detecteer illegale toestemming voor een app met meerdere tenants | - Voer de volgende PowerShell uit om apps met meerdere tenants te vinden Get-MgServicePrincipal -All:$true | ? {$_.Tags -eq "WindowsAzureActiveDirectoryIntegratedApp"} - Gebruikerstoestemming uitschakelen - Gebruikerstoestemming van geverifieerde uitgevers toestaan voor geselecteerde machtigingen (aanbevolen) - Deze configureren in de gebruikerscontext - Hun tokens gebruiken om de service-principal te activeren |
Gebruik van een in code vastgelegd gedeeld geheim in een script met behulp van een service-principal | Een certificaat gebruiken |
Bijhouden wie het certificaat of het geheim gebruikt | De aanmeldingen van de service-principal bewaken met behulp van de aanmeldingslogboeken van Microsoft Entra |
Kan aanmelding met service-principal niet beheren met voorwaardelijke toegang | De aanmeldingen bewaken met behulp van de aanmeldingslogboeken van Microsoft Entra |
Inzender is de standaardrol op basis van op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) | De behoeften evalueren en de minst mogelijke machtigingen toepassen |
Meer informatie: Wat is voorwaardelijke toegang?
Overstappen van een gebruikersaccount naar een service-principal
Als u een Azure-gebruikersaccount als service-principal gebruikt, evalueert u of u kunt overstappen op een beheerde identiteit of een service-principal. Als u geen beheerde identiteit kunt gebruiken, verleent u een service-principal voldoende machtigingen en een bereik om de vereiste taken uit te voeren. U kunt een service-principal maken door een Toepassing te registreren of met PowerShell.
Wanneer u Microsoft Graph gebruikt, controleert u de API-documentatie. Zorg ervoor dat het machtigingstype voor de toepassing wordt ondersteund.
Zie ServicePrincipal maken
Meer informatie:
- Beheerde identiteiten gebruiken voor App Service en Azure Functions
- Een Microsoft Entra-toepassing en service-principal maken die toegang heeft tot resources
- Azure PowerShell gebruiken om een service-principal te maken met een certificaat
Volgende stappen
Meer informatie over service-principals:
- Een Microsoft Entra-toepassing en service-principal maken die toegang heeft tot resources
- Aanmeldingslogboeken in Microsoft Entra ID
Beveiligde serviceaccounts:
- Cloudserviceaccounts beveiligen
- Beheerde identiteiten beveiligen in Microsoft Entra-id
- Microsoft Entra-serviceaccounts beheren
- On-premises serviceaccounts beveiligen
Voorwaardelijke toegang:
Gebruik Voorwaardelijke toegang om service-principals van niet-vertrouwde locaties te blokkeren.
Een beleid voor voorwaardelijke toegang op basis van een locatie maken