Toepassings- en service-principal-objecten in Azure Active Directory

In dit artikel worden toepassingsregistratie, toepassingsobjecten en service-principals in Azure Active Directory (Azure AD) beschreven: wat ze zijn, hoe ze worden gebruikt en hoe ze aan elkaar zijn gerelateerd. Er wordt ook een voorbeeldscenario met meerdere tenants weergegeven om de relatie tussen het toepassingsobject en de bijbehorende service-principal-objecten te illustreren.

Een toepassing registreren

Als u functies voor identiteits- en toegangsbeheer wilt delegeren aan Azure AD, moet een toepassing worden geregistreerd bij een Azure AD-tenant. Wanneer u uw toepassing registreert bij Azure AD, maakt u een identiteitsconfiguratie voor uw toepassing waarmee deze kan worden geïntegreerd met Azure AD. Wanneer u een app registreert in de Azure Portal, kiest u of deze met één tenant of meerdere tenants is en u kunt eventueel een URI voor omleiding instellen. Zie de quickstart voor app-registratie voor stapsgewijze instructies voor het registreren van een app.

Wanneer u de app-registratie hebt voltooid, hebt u een wereldwijd uniek exemplaar van de app (het toepassingsobject) dat zich in uw thuistenant of directory bevindt. U hebt ook een wereldwijd unieke id voor uw app (de app-/client-id). In de portal kunt u vervolgens geheimen of certificaten en bereiken toevoegen om uw app te laten werken, de huisstijl van uw app aanpassen in het aanmeldingsdialoogvenster en meer.

Als u een toepassing registreert in de portal, worden een toepassingsobject en een service-principal-object automatisch gemaakt in uw home tenant. Als u een toepassing registreert/maakt met de Microsoft Graph API's, is het maken van het service-principal-object een afzonderlijke stap.

Toepassingsobject

Een Azure AD-toepassing wordt gedefinieerd door het ene toepassingsobject, dat zich in de Azure AD tenant bevindt waar de toepassing is geregistreerd (ook wel de 'home' tenant van de toepassing genoemd). Een toepassingsobject wordt gebruikt als sjabloon of blauwdruk om een of meer objecten voor de service-principal te maken. Er wordt een service-principal gemaakt in elke tenant waarin de toepassing wordt gebruikt. Net als bij een klasse in op objecten georiënteerd programmeren heeft het toepassingsobject enkele statische eigenschappen die worden toegepast op alle gemaakte service-principals (of toepassingsexemplaren).

In het toepassingsobject worden drie aspecten van een toepassing beschreven:

  • Hoe de service tokens kan uitgeven voor toegang tot de toepassing
  • De bronnen waartoe de toepassing mogelijk toegang nodig heeft
  • De acties die de toepassing kan uitvoeren

U kunt de pagina App-registraties in het Azure Portal gebruiken om de toepassingsobjecten in uw home tenant weer te geven en te beheren.

Deelvenster App-registraties

De Entiteit van toepassing van Microsoft Graph definieert het schema voor de eigenschappen van een toepassingsobject.

Service-principalobject

Voor toegang tot bronnen die zijn beveiligd door een Azure AD-tenant, moet de entiteit waarvoor toegang is vereist, worden vertegenwoordigd door een beveiligingsprincipal. Deze actie geldt voor zowel gebruikers (principal van gebruiker) als voor toepassingen (service-principal). Met de beveiligingsprincipal worden het toegangsbeleid en machtigingen voor gebruikers en toepassingen in de Azure AD-tenant gedefinieerd. Dit maakt kernfuncties mogelijk, zoals verificatie van de gebruiker of toepassing tijdens het aanmelden en autorisatie tijdens toegang tot bronnen.

Er zijn drie typen service-principals:

  • Toepassing: het type service-principal is de lokale weergave of toepassingsinstantie van een globaal toepassingsobject in één tenant of map. In dit geval is een service-principal een concreet exemplaar dat is gemaakt van het toepassingsobject en neemt bepaalde eigenschappen van dat toepassingsobject over. Er wordt een service-principal gemaakt in elke tenant waarin de toepassing wordt gebruikt en verwijst naar het globaal unieke app-object. Het service-principal-object definieert wat de app daadwerkelijk kan doen in de specifieke tenant, wie toegang heeft tot de app en tot welke bronnen de app toegang heeft.

    Wanneer een toepassing toegang krijgt tot bronnen in een tenant (bij registratie of toestemming), wordt een service-principalobject gemaakt. Wanneer u een toepassing registreert met de Azure Portal, wordt automatisch een service-principal gemaakt. U kunt ook service-principalobjecten in een tenant maken met Azure PowerShell, Azure CLI, Microsoft Graph en andere hulpprogramma's.

  • Beheerde identiteit: dit type service-principal wordt gebruikt om een beheerde identiteit weer te geven. Beheerde identiteiten elimineren de noodzaak voor ontwikkelaars om referenties te beheren. Beheerde identiteiten bieden toepassingen een identiteit die kan worden gebruikt om verbinding te maken met bronnen die Azure AD-verificatie ondersteunen. Wanneer een beheerde identiteit is ingeschakeld, wordt er een service-principal gemaakt die de beheerde identiteit in uw tenant vertegenwoordigt. Service-principals die beheerde identiteiten vertegenwoordigen, kunnen toegang en machtigingen krijgen. Maar ze kunnen niet rechtstreeks worden bijgewerkt of gewijzigd.

  • Verouderd: dit type service-principal vertegenwoordigt een verouderde app. Dit is een app die is gemaakt voordat app-registraties zijn geïntroduceerd of een app die is gemaakt via verouderde ervaringen. Een verouderde service-principal kan referenties, namen van service-principals, antwoord-URL's en andere eigenschappen bevatten die een geautoriseerde gebruiker kan bewerken, maar geen gekoppelde app-registratie heeft. De service-principal kan alleen worden gebruikt in de tenant waar deze is gemaakt.

De ServicePrincipal-entiteit van Microsoft Graph definieert het schema voor de eigenschappen van een service-principalobject.

U kunt de pagina Bedrijfstoepassingen in de Azure Portal gebruiken om de service-principals in een tenant weer te geven en te beheren. U kunt de machtigingen van de service-principal, machtigingen voor gebruikerstoestemming zien, welke gebruikers die toestemming hebben gedaan, aanmeldingsgegevens en meer.

Blad bedrijfsapps

Relatie tussen toepassingsobjecten en service-principals

U kunt het toepassingsobject beschouwen als de globale representatie van uw toepassing voor gebruik in alle tenants en de service-principal als de lokale representatie voor gebruik in een specifieke tenant. Het toepassingsobject fungeert als de sjabloon waaruit gemeenschappelijke en standaardeigenschappen worden afgeleid voor gebruik bij het maken van de bijbehorende service-principal-objecten.

Een toepassingsobject heeft:

  • Een één-op-één-relatie met de softwaretoepassing en
  • Een één-op-veel-relatie met de bijbehorende service-principalobjecten

Er moet een service-principal worden gemaakt in elke tenant waar de toepassing wordt gebruikt, zodat deze een identiteit kan vaststellen voor aanmelding en/of toegang tot bronnen die door de tenant worden beveiligd. Een toepassing in één tenant heeft slechts één service-principal (in de starttenant) die is gemaakt en waarvoor toestemming is gegeven voor gebruik tijdens de toepassingsregistratie. Een toepassing met meerdere tenants heeft ook een service-principal gemaakt in elke tenant waarin een gebruiker van die tenant toestemming heeft gegeven voor het gebruik ervan.

Service-principals weergeven die zijn gekoppeld aan een app

U vindt de service-principals die zijn gekoppeld aan een toepassingsobject.

Ga in de Azure Portal naar het overzicht van de toepassingsregistratie. Selecteer Beheerde toepassing in de lokale map.

Schermafbeelding met de optie Beheerde toepassing in lokale map in het overzicht.

Gevolgen van het wijzigen en verwijderen van toepassingen

Wijzigingen die u aanbrengt in uw toepassingsobject, worden ook weergegeven in het service-principal-object in de home tenant van de toepassing (de tenant waar het is geregistreerd). Dit betekent dat het verwijderen van een toepassingsobject ook het service-principal-object voor de home tenant verwijdert. Als u dat toepassingsobject echter herstelt via de gebruikersinterface voor app-registraties, wordt de bijbehorende service-principal niet hersteld. Zie Toepassingen en service-principalobjecten verwijderen en herstellen voor meer informatie over het verwijderen en herstellen van toepassingen en de bijbehorende service-principalobjecten.

Voorbeeld

In het volgende diagram ziet u de relatie tussen het toepassingsobject van een toepassing en de bijbehorende service-principalobjecten in de context van een voorbeeldtoepassing met meerdere tenants met de naam HR-app. Er zijn drie Azure AD-tenants in dit voorbeeldscenario:

  • Adatum: de tenant die wordt gebruikt door het bedrijf dat de HR-app heeft ontwikkeld
  • Contoso: de tenant die wordt gebruikt door de Contoso-organisatie, een consument van de HR-app
  • Fabrikam: de tenant die wordt gebruikt door de Fabrikam-organisatie, die ook de HR-app gebruikt

Relatie tussen app-objecten en service-principalobjecten

In dit voorbeeldscenario:

Stap Beschrijving
1 Het proces voor het maken van de toepassings- en service-principalobjecten in de home tenant van de toepassing.
2 Wanneer Contoso- en Fabrikam-beheerders toestemming voltooien, wordt een service-principalobject gemaakt in de Azure AD tenant van hun bedrijf en worden de machtigingen toegewezen die de beheerder heeft verleend. Houd er ook rekening mee dat de HR-app kan worden geconfigureerd/ontworpen om toestemming door gebruikers toe te staan voor individueel gebruik.
3 De consumenten-tenants van de HR-toepassing (Contoso en Fabrikam) hebben elk hun eigen service-principalobject. Elk vertegenwoordigt het gebruik van een exemplaar van de toepassing tijdens uitvoertijd, dat wordt bepaald door de machtigingen die door de respectieve beheerder zijn toegestaan.

Volgende stappen

Meer informatie over het maken van een service-principal: