Ensidesprogram
Varning
Det här innehållet gäller för den äldre Azure AD v1.0-slutpunkten. Använd Microsofts identitetsplattform för nya projekt.
Ensidesprogram (SPA) är vanligtvis strukturerade som ett JavaScript-presentationslager (klientdel) som körs i webbläsaren och en serverdel för webb-API:et som körs på en server och implementerar programmets affärslogik. Mer information om implicit auktoriseringstilldelning och hur du bestämmer om det är rätt för ditt programscenario finns i Förstå flödet för implicit OAuth2-beviljande i Azure Active Directory.
När användaren loggar in i det här scenariot använder JavaScript-klientdelen Active Directory Authentication Library för JavaScript (ADAL.JS) och implicit auktoriseringsbeviljande för att hämta en ID-token (id_token) från Azure AD. Token cachelagras och klienten kopplar den till begäran som ägartoken när den gör anrop till webb-API:ets serverdel, som skyddas med OWIN-mellanprogrammet.
Diagram
Protokollflöde
- Användaren navigerar till webbappen.
- Programmet returnerar JavaScript-klientdelen (presentationsskiktet) till webbläsaren.
- Användaren initierar inloggningen, till exempel genom att klicka på en inloggningslänk. Webbläsaren skickar en GET till Azure AD-auktoriseringsslutpunkten för att begära en ID-token. Den här begäran innehåller program-ID och svars-URL i frågeparametrarna.
- Azure AD verifierar svars-URL:en mot den registrerade svars-URL:en som konfigurerades i Azure Portal.
- Användaren loggar in på inloggningssidan.
- Om autentiseringen lyckas skapar Azure AD en ID-token och returnerar den som ett URL-fragment (#) till programmets svars-URL. För ett produktionsprogram ska svars-URL:en vara HTTPS. Den returnerade token innehåller anspråk om användaren och Azure AD som krävs av programmet för att verifiera token.
- JavaScript-klientkoden som körs i webbläsaren extraherar token från svaret som ska användas för att skydda anrop till programmets webb-API-serverdel.
- Webbläsaren anropar programmets webb-API-serverdel med ID-token i auktoriseringshuvudet. Azure AD-autentiseringstjänsten utfärdar en ID-token som kan användas som ägartoken om resursen är samma som klient-ID:t (i det här fallet är detta sant eftersom webb-API:et är appens egen serverdel).
Kodexempel
Se kodexemplen för enkelsidiga programscenarier. Se till att komma tillbaka ofta eftersom nya exempel läggs till ofta.
Appregistrering
- Enskild klientorganisation – Om du skapar ett program bara för din organisation måste det registreras i företagets katalog med hjälp av Azure Portal.
- Flera klientorganisationer – Om du skapar ett program som kan användas av användare utanför organisationen måste det vara registrerat i företagets katalog, men det måste också vara registrerat i varje organisations katalog som ska använda programmet. Om du vill göra ditt program tillgängligt i deras katalog kan du inkludera en registreringsprocess för dina kunder som gör det möjligt för dem att godkänna ditt program. När de registrerar sig för ditt program visas en dialogruta som visar de behörigheter som programmet kräver och sedan alternativet att godkänna. Beroende på vilka behörigheter som krävs kan en administratör i den andra organisationen behöva ge sitt medgivande. När användaren eller administratören ger sitt medgivande registreras programmet i deras katalog.
När du har registrerat programmet måste det konfigureras att använda implicit beviljandeprotokoll för OAuth 2.0. Som standard är det här protokollet inaktiverat för program. Om du vill aktivera OAuth2 implicit beviljandeprotokoll för ditt program redigerar du dess programmanifest från Azure Portal och anger värdet "oauth2AllowImplicitFlow" till true. Mer information finns i Programmanifest.
Förfallodatum för token
Användning av ADAL.js hjälper dig med:
- Uppdatera en token som har upphört att gälla
- Begära en åtkomsttoken för att anropa en webb-API-resurs
Efter en lyckad autentisering skriver Azure AD en cookie i användarens webbläsare för att upprätta en session. Observera att sessionen finns mellan användaren och Azure AD (inte mellan användaren och webbappen). När en token upphör att gälla använder ADAL.js den här sessionen för att tyst hämta en annan token. ADAL.js använder en dold iFrame för att skicka och ta emot begäran med hjälp av OAuth implicit beviljandeprotokoll. ADAL.js kan också använda samma mekanism för att tyst hämta åtkomsttoken för andra webb-API-resurser som programmet anropar så länge dessa resurser stöder resursdelning för korsande ursprung (CORS), registreras i användarens katalog och alla nödvändiga medgivanden gavs av användaren under inloggningen.
Nästa steg
- Läs mer om andra programtyper och scenarier
- Lär dig mer om grunderna för Azure AD-autentisering