Objekt för program och tjänstens huvudnamn i Azure Active Directory

Den här artikeln beskriver programregistrering, programobjekt och tjänstens huvudnamn i Azure Active Directory (Azure AD): 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 Azure AD måste ett program registreras med en Azure AD klientorganisation. När du registrerar ditt program med Azure AD skapar du en identitetskonfiguration för ditt program som gör att det kan integreras med Azure AD. När du registrerar en app i Azure-Portal väljer du om det är en enda klientorganisation eller flera klientorganisationer och kan också 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 (appen eller klient-ID:t). I portalen kan du sedan 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 i portalen 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:er är det ett separat steg att skapa objektet för tjänstens huvudnamn.

Programobjekt

Ett Azure AD-program definieras av dess enda programobjekt, som finns i den Azure AD klientorganisation där programmet registrerades (kallas programmets "hem"-klient). 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 klient 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:

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

Du kan använda sidan App-registraties i Azure-Portal för att lista och hantera programobjekten i din hemklientorganisation.

App-registraties blad

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

Objekt för tjänstens huvudnamn

För att få åtkomst till resurser som skyddas av en Azure AD klientorganisation måste entiteten som kräver åtkomst representeras av ett säkerhetsobjekt. Det här kravet gäller för både användare (användarens huvudnamn) och program (tjänstens huvudnamn). Säkerhetsobjektet definierar åtkomstprincipen och behörigheterna för användaren/programmet i Azure AD klientorganisation. 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 – 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 klient 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 (vid registrering eller medgivande) skapas ett objekt för tjänstens huvudnamn. När du registrerar ett program med hjälp av Azure-Portal 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änsthuvudnamn 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 Azure AD 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änsthuvudnamn representerar en äldre app, som är en app som skapades innan appregistreringar introducerades eller en app som skapats via äldre upplevelser. Ett äldre tjänsthuvudnamn 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 Azure-Portal 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.

Bladet Företagsappar

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 för användning i en specifik klientorganisation. Programobjektet fungerar som mallen som vanliga och standardinställda egenskaper härleds för användning när motsvarande objekt för tjänstens huvudnamn skapas.

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 huvudnamn för tjänsten måste skapas i varje klient där programmet används, vilket gör det möjligt att upprätta en identitet för inloggning och/eller åtkomst till resurser som skyddas av klientorganisationen. Ett program för enskild klient har bara ett tjänsthuvudnamn (i dess startklientorganisation), som skapas och godkänns vid programregistrering. Ett program för flera klientorganisationer har också ett tjänsthuvudnamn som skapats i varje klientorganisation där en användare från den klientorganisationen har samtyckt till dess användning.

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 hemklient (klientorganisationen där det registrerades). Det innebär att om du tar bort ett programobjekt tas även objektets huvudnamn för hemklienttjänsten bort. Om du återställer programobjektet via användargränssnittet för appregistreringar återställs dock inte dess motsvarande tjänsthuvudnamn. 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 kallas HR-app. Det finns tre Azure AD klienter i det här exempelscenariot:

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

Relation mellan appobjekt och tjänstens huvudnamnsobjekt

I det här exempelscenariot:

Steg Beskrivning
1 Processen att skapa program- och tjänstens huvudnamnsobjekt i programmets hemklientorganisation.
2 När Contoso- och Fabrikam-administratörer ger sitt fullständiga medgivande skapas ett objekt för tjänstens huvudnamn i företagets Azure AD 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 från 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: