Utveckling av Microsoft Entra-appar

Slutförd

Nu när du har en bättre förståelse för de grundläggande principerna och fördelarna med Microsoft Entra-ID måste du bestämma hur du kan använda dess funktioner för att implementera autentisering och auktorisering för ditt program. Du inser att för att skydda dina kunders data måste du se till att implementeringen integreras med PostgreSQL-mekanismer för åtkomstkontroll. Du bestämde dig för att börja med att identifiera de uppgifter som ingår i utveckling, etablering och hantering av Microsoft Entra-program. Du vill också ta reda på hur du kan hantera behovet av att ge åtkomst till ditt program till flera kunder.

För att implementera Microsoft Entra ID-baserade program måste du utföra flera programrelaterade hanteringsuppgifter, inklusive registrering, konfiguration av behörigheter och hantering av dess hemligheter.

Vad är programregistrering?

När en användare arbetar i en Microsoft Entra-miljö autentiserar den till ett program i två steg:

  1. Först verifierar Microsoft Entra-ID användarens identitet. Vid lyckad autentisering utfärdar Microsoft Entra-ID token som innehåller information som återspeglar den lyckade autentiseringen.
  2. Användaren skickar token till programmet. Programmet verifierar användarens säkerhetstoken för att säkerställa att autentiseringen lyckades.

För att kunna utföra en sådan validering måste programmet kunna kommunicera säkert med Microsoft Entra-ID. Detta kräver i sin tur att själva programmet fungerar som ett Microsoft Entra-säkerhetsobjekt. För att göra det möjligt måste du se till att programmet representeras i någon form i samma Microsoft Entra-klientorganisation som innehåller kontot för den autentiserande användaren.

Det finns två representationer av ett program i Microsoft Entra-ID:

  • Ett programobjekt som definierar programmets egenskaper.
  • Ett huvudnamn för tjänsten, som tillhandahåller autentiserings- och auktoriseringsfunktioner och refererar till programobjektet.

Du kan skapa programobjekt direkt i Azure-portalen från bladet Appregistreringar . För dina egna anpassade program skapar sådan registrering automatiskt motsvarande tjänsthuvudnamn. Därefter kan du hantera tjänstens huvudnamn i Azure-portalen från bladet Företagsprogram .

Under programregistreringen har du möjlighet att ange programmets omdirigeringsuniforma resursidentifierare (URI). Värdet anger den plats där auktoriseringsservern omdirigerar användaren efter att appen har auktoriserats. Auktoriseringsservern skickar koden eller token till omdirigerings-URI:n, så det är viktigt att du registrerar rätt plats som en del av appregistreringsprocessen.

Kommentar

Omdirigerings-URI:n måste börja med https, såvida den inte refererar till localhost. I så fall kan du använda http://localhost. Det är också skiftlägeskänsligt.

Vad är programbehörigheter?

Program som integreras med Microsoft Entra-ID följer en auktoriseringsmodell som gör att du på ett detaljerat sätt kan styra dess behörigheter till andra Microsoft Entra-integrerade program och resurser. Microsoft Entra ID förlitar sig på OAuth 2.0-auktoriseringsmodellen för att implementera dessa behörigheter. I OAuth 2.0 ordnas behörigheter i uppsättningar, som ofta kallas omfång.

Som utvecklare begär du de behörigheter som programmet behöver genom att ange en behörighetssträng som en del av konfigurationen. Genom att till exempel ange behörighetssträngen till "https://graph.microsoft.com/Calendars.Read", anger du att programmet måste kunna läsa användarnas kalendrar i Microsoft Graph. Programmet måste beviljas dessa behörigheter genom ett medgivande, som måste beviljas av antingen en Microsoft Entra-användare eller en Microsoft Entra-administratör, beroende på omfattningen av dessa behörigheter.

Microsoft Entra ID har stöd för två typer av behörigheter:

  • Delegerade behörigheter används av interaktiva appar med en inloggad användare. Därför agerar appen för en inloggad användares räkning när den kommer åt målresursen.
  • Programbehörigheter används av appar som körs utan att förlita sig på en inloggad användare, till exempel bakgrundstjänster. Dessa appar kräver administrativt medgivande.

Vad är programhemligheter?

Det finns två typer av autentisering för tjänstens huvudnamn:

  • Lösenordsbaserad autentisering, som förlitar sig på programhemligheter som du kan generera direkt i Azure-portalen. När du genererar en hemlighet anger du dess livslängd.
  • Certifikatbaserad autentisering, som förlitar sig på certifikat som du laddar upp till Microsoft Entra-ID.

Kommentar

Om ditt program kommer att hanteras av en Azure-beräkningsresurs, till exempel en virtuell Azure-dator (VM), Azure App Service-webbapp eller ett AKS-kluster, i stället för att använda tjänstens huvudnamn, bör du överväga att använda hanterade identiteter för din programidentitet. Detta eliminerar behovet av att hantera lösenord eller certifikat för autentisering.

Vilka är olika typer av scenarier för programautentisering?

Autentiseringsflödet och motsvarande konfigurationsinformation beror på programtypen. De vanligaste kategorierna av programtyper är:

  • Webbläsarbaserade appar. Det här är webbappar där token hämtas av en JavaScript- eller TypeScript-app som körs i webbläsaren. Dessa program använder ofta ett ramverk som Angular, React eller Vue. MSAL.js är det enda Microsoft-autentiseringsbiblioteket som stöder SPA:er.
  • Offentliga klientprogram. Det här är appar som alltid förlitar sig på inloggade användare för att hämta token. Sådana appar omfattar skrivbords- och mobilappar som anropar webb-API:er för inloggade användare.
  • Konfidentiella klientprogram. Dessa hämtar token på egen hand. Appar i den här kategorin omfattar webbappar som anropar ett webb-API, webb-API:er som anropar ett annat webb-API, Linux-daemoner och Windows-tjänster.

De första två objekten ovan autentiserar en användare, medan den tredje endast autentiserar en app eller tjänst mellan användaren och en serverdelstjänst. I det här fallet vet serverdelstjänsten ingenting om slutanvändaren, men den vet vilken app som använder den. Tänk till exempel på en app som använder Azure Maps som en serverdelstjänst. Maps-tjänsten måste veta att ett auktoriserat program anropar det för korrekt fakturering, men det behöver inte veta något om slutanvändaren.

Vad är skillnaden mellan Microsoft Entra-program med en klientorganisation och flera klienter?

Som utvecklare kan du välja att konfigurera din app som antingen enskild klientorganisation eller multitenant under appregistreringen:

  • Appar med en klientorganisation är endast tillgängliga i den klientorganisation som de registrerades i och kallas för deras hemklientorganisation.
  • Appar med flera klienter är tillgängliga för användare i både deras hemklientorganisation och andra Microsoft Entra-klienter.

Om du använder Azure-portalen för appregistrering anger du appens innehavare genom att ange dess målgruppsegenskap till något av följande värden:

  • Endast konton i den här katalogen. Detta resulterar i konfigurationen för en enda klientorganisation. På så sätt kan du bevilja åtkomst till programmet till alla säkerhetsobjekt i klientorganisationen, inklusive gästkonton.
  • Konton i valfri Microsoft Entra-katalog. Detta resulterar i en konfiguration med flera klientorganisationer. På så sätt kan användare utanför organisationen registrera programmet i sina respektive Microsoft Entra-klienter.
  • Konton i alla Microsoft Entra-kataloger och personliga Microsoft-konton (till exempel Skype, Xbox Outlook.com). Detta resulterar också i en konfiguration med flera klientorganisationer, men det gör det möjligt för användare med personliga Microsoft-konton att använda appen.

Kommentar

Ett programobjekt finns bara i hemklientorganisationen, men när det gäller konfigurationen för flera klienter kan det refereras av flera tjänsthuvudnamn för olika Microsoft Entra-klienter.