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

Den här artikeln beskriver programregistrering, programobjekt och tjänsthuvudnamn i Azure Active Directory (Azure AD): vad de är, hur de används och hur de är relaterade till varandra. Ett exempelscenario med flera klienter visas också för att illustrera relationen mellan ett programobjekt och motsvarande objekt för tjänstens huvudnamn.

Programregistrering

Om du vill delegera identitets- och åtkomsthanteringsfunktioner till Azure AD måste ett program vara registrerat 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 (endast tillgänglig i din klient) eller flera klienter (tillgänglig i andra klienter) och kan även ange en omdirigerings-URI (där åtkomsttoken skickas). Stegvisa instruktioner 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 (appens eller klientens ID). I portalen kan du sedan lägga till hemligheter eller certifikat och omfång för att få din app att fungera, anpassa anpassningen av din app 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 ett enda programobjekt, som finns i Den Azure AD-klientorganisation där programmet registrerades (kallas programmets "startklient"). 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. Precis 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, resurser som programmet kan behöva komma åt och de åtgärder som programmet kan vidta.

Du kan använda bladet Appregistreringar i Azure Portal för att visa och hantera programobjekten i din hemklientorganisation.

Appregistreringar 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äkerhetsobjekt definierar åtkomstprincipen och behörigheterna för användaren/programmet i Azure AD-klientorganisationen. Detta möjliggör grundläggande funktioner, till exempel autentisering av användare/program under inloggning 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 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 som appen kan komma åt.

    När ett program ges 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 Azure Portal skapas ett huvudnamn för tjänsten automatiskt. Du kan också skapa objekt för tjänstens huvudnamn i en klientorganisation med 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. Hanterade identiteter eliminerar behovet av att utvecklare hanterar 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 huvudnamn för tjänsten representerar en äldre app, som är en app som skapats 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 egenskaperna för ett tjänsthuvudnamnsobjekt.

Du kan använda bladet Företagsprogram i Azure Portal för att lista och hantera tjänstens huvudnamn i en klientorganisation. Du kan se behörigheter för tjänstens huvudnamn, användarbehö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 1:1-relation med programprogrammet och
  • En 1:många-relation med motsvarande objekt för tjänstens huvudnamn.

Ett huvudnamn för tjänsten 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 klienten. 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 innehavare 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

Eventuella ändringar som du gör i programobjektet visas också i tjänstens huvudnamnsobjekt endast i programmets hemklientorganisation (den klientorganisation där det registrerades). Det innebär att om du tar bort ett programobjekt tas även dess hemklienttjänstobjekt bort. Men om du återställer programobjektet återställs inte dess motsvarande huvudnamn för tjänsten. För program med flera klientorganisationer återspeglas inte ändringar i programobjektet i några konsumentklienters tjänsthuvudnamnsobjekt förrän åtkomsten tas bort via programobjektet Åtkomstpanelen beviljas igen.

Exempel

Följande diagram illustrerar relationen mellan ett programprogramobjekt och motsvarande objekt för tjänstens huvudnamn i kontexten för ett exempelprogram för flera innehavare som kallas HR-app. Det finns tre Azure AD-klienter i det här exempelscenariot:

  • Adatum – Den klientorganisation som används av det företag som utvecklade HR-appen
  • Contoso – Den klientorganisation som används av Contoso-organisationen, som är konsument av HR-appen
  • Fabrikam – Den klientorganisation som används av Fabrikam-organisationen, som också använder HR-appen

Relation mellan appobjekt och tjänstens huvudnamnsobjekt

I det här exempelscenariot:

Steg Beskrivning
1 Är processen att skapa program- och tjänstens huvudnamnsobjekt i programmets hemklientorganisation.
2 När Contoso- och Fabrikam-administratörerna har gett sitt 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 användarnas medgivande för individuell användning.
3 Konsumentklienterna för HR-programmet (Contoso och Fabrikam) har sina egna 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änns av respektive administratör.

Nästa steg

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