Översikt över program- och tjänstobjekt i Microsoft Entra ID

Den här artikeln beskriver programregistrering, programobjekt och tjänstens huvudnamn i Microsoft Entra-ID, vad de är, hur de används och hur de är relaterade till varandra. Ett exempelscenario för flera klientorganisationer visas också för att illustrera relationen mellan ett programs programobjekt och motsvarande objekt för tjänstens huvudnamn.

Programregistrering

Om du vill delegera identitets- och åtkomsthanteringsfunktioner till Microsoft Entra ID måste ett program registreras med en Microsoft Entra-klientorganisation. När du registrerar ditt program med Microsoft Entra-ID skapar du en identitetskonfiguration för ditt program som gör att det kan integreras med Microsoft Entra-ID. När du registrerar en app väljer du om det är en enda klientorganisation eller flera klientorganisationer och kan välja att ange en omdirigerings-URI. Stegvisa anvisningar om hur du registrerar en app finns i snabbstarten för appregistrering.

När du har slutfört appregistreringen har du en globalt unik instans av appen (programobjektet) som finns i din hemklient eller katalog. Du har också ett globalt unikt ID för din app (app-/klient-ID). Du kan lägga till hemligheter eller certifikat och omfång för att få din app att fungera, anpassa appens varumärkesanpassning i inloggningsdialogrutan med mera.

Om du registrerar ett program skapas automatiskt ett programobjekt och ett objekt för tjänstens huvudnamn i din hemklientorganisation. Om du registrerar/skapar ett program med hjälp av Microsoft Graph-API:erna är det ett separat steg att skapa objektet för tjänstens huvudnamn.

Programobjekt

Ett Microsoft Entra-program definieras av dess enda programobjekt, som finns i Microsoft Entra-klientorganisationen där programmet registrerades (kallas programmets "hem"-klientorganisation). Ett programobjekt används som en mall eller skiss för att skapa ett eller flera objekt för tjänstens huvudnamn. Ett huvudnamn för tjänsten skapas i varje klientorganisation där programmet används. På samma sätt som en klass i objektorienterad programmering har programobjektet vissa statiska egenskaper som tillämpas på alla skapade tjänsthuvudnamn (eller programinstanser).

Programobjektet beskriver tre aspekter av ett program:

  • Så här kan tjänsten utfärda token för att få åtkomst till programmet
  • De resurser som programmet kan behöva komma åt
  • De åtgärder som programmet kan vidta

Du kan använda sidan Appregistreringar i administrationscentret för Microsoft Entra för att lista och hantera programobjekten i din hemklientorganisation.

App registrations blade

Entiteten Microsoft Graph-program definierar schemat för ett programobjekts egenskaper.

Objekt för tjänstens huvudnamn

För att få åtkomst till resurser som skyddas av en Microsoft Entra-klientorganisation måste entiteten som kräver åtkomst representeras av ett säkerhetsobjekt. Det här kravet gäller både för användare (användarens huvudnamn) och program (tjänstens huvudnamn). Säkerhetsobjektet definierar åtkomstprincipen och behörigheterna för användaren/programmet i Microsoft Entra-klientorganisationen. Detta möjliggör grundläggande funktioner som autentisering av användaren/programmet under inloggningen och auktorisering under resursåtkomst.

Det finns tre typer av tjänstens huvudnamn:

  • Program – Den här typen av tjänstens huvudnamn är den lokala representationen, eller programinstansen, av ett globalt programobjekt i en enda klientorganisation eller katalog. I det här fallet är tjänstens huvudnamn en konkret instans som skapats från programobjektet och ärver vissa egenskaper från det programobjektet. Ett huvudnamn för tjänsten skapas i varje klientorganisation där programmet används och refererar till det globalt unika appobjektet. Objektet för tjänstens huvudnamn definierar vad appen faktiskt kan göra i den specifika klientorganisationen, vem som kan komma åt appen och vilka resurser appen kan komma åt.

    När ett program får behörighet att komma åt resurser i en klientorganisation (efter registrering eller medgivande) skapas ett objekt för tjänstens huvudnamn. När du registrerar ett program skapas tjänstens huvudnamn automatiskt. Du kan också skapa objekt för tjänstens huvudnamn i en klientorganisation med hjälp av Azure PowerShell, Azure CLI, Microsoft Graph och andra verktyg.

  • Hanterad identitet – Den här typen av tjänstens huvudnamn används för att representera en hanterad identitet. Med hanterade identiteter behöver inte utvecklare hantera autentiseringsuppgifter. Hanterade identiteter tillhandahåller en identitet som program kan använda när de ansluter till resurser som stöder Microsoft Entra-autentisering. När en hanterad identitet är aktiverad skapas ett huvudnamn för tjänsten som representerar den hanterade identiteten i din klientorganisation. Tjänstens huvudnamn som representerar hanterade identiteter kan beviljas åtkomst och behörigheter, men kan inte uppdateras eller ändras direkt.

  • Äldre – Den här typen av tjänstens huvudnamn representerar en äldre app, som är en app som skapades innan appregistreringar introducerades eller en app som skapats via äldre upplevelser. Ett äldre huvudnamn för tjänsten kan ha autentiseringsuppgifter, namn på tjänstens huvudnamn, svars-URL:er och andra egenskaper som en behörig användare kan redigera, men som inte har någon associerad appregistrering. Tjänstens huvudnamn kan bara användas i klientorganisationen där det skapades.

Entiteten Microsoft Graph ServicePrincipal definierar schemat för ett objekts egenskaper för tjänstens huvudnamn.

Du kan använda sidan Företagsprogram i administrationscentret för Microsoft Entra för att lista och hantera tjänstens huvudnamn i en klientorganisation. Du kan se tjänstens huvudnamns behörigheter, användarmedgivande behörigheter, vilka användare som har gjort det medgivandet, inloggningsinformation med mera.

Enterprise apps blade

Relation mellan programobjekt och tjänstens huvudnamn

Programobjektet är den globala representationen av ditt program för användning i alla klienter, och tjänstens huvudnamn är den lokala representationen som ska användas i en specifik klientorganisation. Programobjektet fungerar som den mall från vilken vanliga och standardegenskaper härleds för användning vid skapande av motsvarande objekt för tjänstens huvudnamn.

Ett programobjekt har:

  • En en-till-en-relation med programprogrammet och
  • En en-till-många-relation med motsvarande objekt för tjänstens huvudnamn

Ett tjänsthuvudnamn måste skapas i varje klientorganisation där programmet används, så att det kan upprätta en identitet för inloggning och/eller åtkomst till resurser som skyddas av klientorganisationen. Ett program med en enda klientorganisation har bara ett huvudnamn för tjänsten (i sin hemklient), som skapats och godkänts för användning under programregistreringen. Ett program för flera klientorganisationer har också ett huvudnamn för tjänsten som skapats i varje klientorganisation där en användare från den klientorganisationen har samtyckt till dess användning.

Lista tjänsthuvudnamn som är associerade med en app

Du hittar tjänstens huvudnamn som är associerade med ett programobjekt.

I administrationscentret för Microsoft Entra går du till översikten över programregistrering. Välj Hanterat program i lokal katalog.

Screen shot that shows the Managed application in local directory option in the overview.

Konsekvenser av att ändra och ta bort program

Alla ändringar som du gör i programobjektet återspeglas också i objektet för tjänstens huvudnamn endast i programmets hemklientorganisation (klientorganisationen där det registrerades). Det innebär att om du tar bort ett programobjekt tas även huvudobjektet för hemklienttjänsten bort. Om du återställer programobjektet via användargränssnittet för appregistreringar återställs dock inte dess motsvarande huvudnamn för tjänsten. Mer information om borttagning och återställning av program och deras objekt för tjänstens huvudnamn finns i ta bort och återställa program och objekt för tjänstens huvudnamn.

Exempel

Följande diagram illustrerar relationen mellan ett programs programobjekt och motsvarande objekt för tjänstens huvudnamn i kontexten för ett exempelprogram med flera klientorganisationer som heter HR-app. Det finns tre Microsoft Entra-klienter i det här exempelscenariot:

  • Adatum – klientorganisationen som används av företaget som utvecklade HR-appen
  • Contoso – klientorganisationen som används av Contoso-organisationen, som är konsument av HR-appen
  • Fabrikam – den klientorganisation som används av Fabrikam-organisationen, som även använder HR-appen

Relationship between app object and service principal object

I det här exempelscenariot:

Steg Description
1 Processen att skapa program- och tjänstens huvudnamnsobjekt i programmets hemklientorganisation.
2 När Contoso- och Fabrikam-administratörerna ger sitt fullständiga medgivande skapas ett objekt för tjänstens huvudnamn i företagets Microsoft Entra-klientorganisation och tilldelas de behörigheter som administratören har beviljat. Observera också att HR-appen kan konfigureras/utformas för att tillåta medgivande av användare för individuell användning.
3 Klientorganisationer för HR-programmet (Contoso och Fabrikam) har var och en sitt eget objekt för tjänstens huvudnamn. Var och en representerar deras användning av en instans av programmet vid körning, som styrs av de behörigheter som godkänts av respektive administratör.

Nästa steg

Lär dig hur du skapar ett huvudnamn för tjänsten: