Konfigurera din App Service eller Azure Functions för att använda Azure AD-inloggning
Den här artikeln visar hur du konfigurerar autentisering för Azure App Service eller Azure Functions så att din app loggar in användare med Microsofts identitetsplattform (Azure AD) som autentiseringsprovider.
Funktionen App Service autentisering kan automatiskt skapa en appregistrering med Microsofts identitetsplattform. Du kan också använda en registrering som du eller en katalogadministratör skapar separat.
Anteckning
Alternativet för att skapa en ny registrering är inte tillgängligt för myndighetsmoln. Definiera i stället en registrering separat.
Alternativ 1: Skapa en ny appregistrering automatiskt
Det här alternativet är utformat för att göra det enkelt att aktivera autentisering och kräver bara några klickningar.
Logga in på Azure Portal och gå till din app.
Välj Autentisering på menyn till vänster. Klicka på Lägg till identitetsprovider.
Välj Microsoft i listrutan identitetsprovider. Alternativet för att skapa en ny registrering är valt som standard. Du kan ändra namnet på registreringen eller kontotyperna som stöds.
En klienthemlighet skapas och lagras som en platslåst programinställning med namnet
MICROSOFT_PROVIDER_AUTHENTICATION_SECRET. Du kan uppdatera den inställningen senare så att Key Vault använda referenser om du vill hantera hemligheten i Azure Key Vault.Om det här är den första identitetsprovidern som har konfigurerats för programmet uppmanas du också att ange App Service för autentisering. Annars kan du gå vidare till nästa steg.
De här alternativen avgör hur ditt program svarar på oauterade begäranden, och standardinställningarna omdirigerar alla begäranden för att logga in med den nya providern. Du kan ändra det här beteendet nu eller justera inställningarna senare från huvudskärmen för autentisering genom att välja Redigera bredvid Autentiseringsinställningar. Mer information om de här alternativen finns i Autentiseringsflöde.
(Valfritt) Klicka på Nästa: Behörigheter och lägg till de omfång som krävs av programmet. Dessa läggs till i appregistreringen, men du kan också ändra dem senare.
Klicka på Lägg till.
Nu är du redo att använda Microsofts identitetsplattform för autentisering i din app. Providern visas på skärmen Autentisering. Därifrån kan du redigera eller ta bort den här providerkonfigurationen.
Ett exempel på hur du konfigurerar Azure AD-inloggning för en webbapp som har åtkomst Azure Storage och Microsoft Graph finns i den här självstudien.
Alternativ 2: Använd en befintlig registrering som skapats separat
Du kan också manuellt registrera ditt program för Microsofts identitetsplattform, anpassa registreringen och konfigurera App Service-autentisering med registreringsinformationen. Detta är användbart om du till exempel vill använda en appregistrering från en annan Azure AD-klientorganisation än den som programmet finns i.
Skapa en appregistrering i Azure AD för din App Service app
Först skapar du din appregistrering. När du gör det samlar du in följande information som du behöver senare när du konfigurerar autentiseringen i App Service appen:
- Klient-ID
- Klientorganisations-ID
- Klienthemlighet (valfritt)
- Program-ID-URI
Registrera appen genom att utföra följande steg:
Logga in på Azure Portal, sök efter och välj App Services och välj sedan din app. Anteckna appens URL. Du använder den för att konfigurera Azure Active Directory appregistrering.
I portalmenyn väljer du Azure Active Directory och går sedan till fliken Appregistreringar och väljer Ny registrering.
På sidan Registrera ett program anger du ett Namn för din appregistrering.
I Omdirigerings-URI väljer du Webb och skriver
<app-url>/.auth/login/aad/callback. Till exempelhttps://contoso.azurewebsites.net/.auth/login/aad/callback.Välj Register (Registrera).
När appregistreringen har skapats kopierar du Program-ID (klient) och Katalog-ID (klient) för senare användning.
Välj Autentisering. Under Implicit beviljande och hybridflöden aktiverar du ID-token så att OpenID Anslut användare loggar in från App Service. Välj Spara.
(Valfritt) Välj Varumärkesmärk. I Webbadress till startsida anger du URL:en för App Service appen och väljer Spara.
Välj Exponera ett API och klicka på Ange bredvid "Program-ID URI". Det här värdet identifierar unikt programmet när det används som en resurs, vilket gör att token kan begäras som beviljar åtkomst. Det används som ett prefix för omfång som du skapar.
För en app för en enskild klientorganisation kan du använda standardvärdet, som är i formuläret
api://<application-client-id>. Du kan också ange en mer läsbar URI somhttps://contoso.com/apibaseras på en av de verifierade domänerna för din klientorganisation. För en app för flera innehavare måste du ange en anpassad URI. Mer information om godkända format för app-ID-URI:er finns i metodtipsen för appregistreringar.Värdet sparas automatiskt.
Välj Lägg till omfång.
- I Lägg till ett omfång är program-ID:ts URI det värde som du konfigurerade i föregående steg. Välj Spara och fortsätt.
- I Omfångsnamn anger du user_impersonation.
- I textrutorna anger du namnet på medgivandeomfånget och beskrivningen som du vill att användarna ska se på medgivandesidan. Ange till exempel < Access-programnamnet >.
- Välj Lägg till omfång.
(Valfritt) Om du vill skapa en klienthemlighet väljer du Certifikat & hemligheter > Klienthemligheter Ny > klienthemlighet. Ange en beskrivning och förfallotid och välj Lägg till. Kopiera värdet för klienthemligheten som visas på sidan. Det visas inte igen.
(Valfritt) Om du vill lägga till flera svars-URL:er väljer du Autentisering.
Aktivera Azure Active Directory i din App Service app
Logga in på Azure Portal och gå till din app.
Välj Autentisering på menyn till vänster. Klicka på Lägg till identitetsprovider.
Välj Microsoft i listrutan identitetsprovider.
För Appregistreringstyp kan du välja att välja en befintlig appregistrering i den här katalogen som automatiskt samlar in nödvändig appinformation. Om registreringen kommer från en annan klient eller om du inte har behörighet att visa registreringsobjektet väljer du Ange information om en befintlig appregistrering. För det här alternativet måste du fylla i följande konfigurationsinformation:
Fält Beskrivning Program-ID (klient) Använd appregistreringens program-ID (klient). Client Secret (Klienthemlighet) Använd den klienthemlighet som du genererade i appregistreringen. Med en klienthemlighet används hybridflöde och App Service returnerar åtkomst- och uppdateringstoken. När klienthemligheten inte har angetts används implicit flöde och endast en ID-token returneras. Dessa token skickas av providern och lagras i EasyAuth-tokenarkivet. Utfärdar-URL Använd och ersätt med autentiseringsslutpunkten för din molnmiljö <authentication-endpoint>/<tenant-id>/v2.0(t.ex. " " " för global Azure) och ersätt med <authentication-endpoint> https://login.microsoftonline.com <tenant-id> katalog-ID:t (klient) där appregistreringen skapades. Det här värdet används för att omdirigera användare till rätt Azure AD-klientorganisation, samt för att ladda ned lämpliga metadata för att till exempel fastställa lämpliga tokensigneringsnycklar och anspråksvärdet från tokenutfärdaren. För program som använder Azure AD v1 och för Azure Functions appar utelämnar du/v2.0i URL:en.Tillåtna tokenmålmål Om det här är en moln- eller serverapp och du vill tillåta autentiseringstoken från en webbapp lägger du till webbappens program-ID-URI här. Det konfigurerade klient-ID:t anses alltid implicit vara en tillåten målgrupp. Klienthemligheten lagras som en platslåst programinställning med namnet
MICROSOFT_PROVIDER_AUTHENTICATION_SECRET. Du kan uppdatera den inställningen senare så att Key Vault använda referenserna om du vill hantera hemligheten i Azure Key Vault.Om det här är den första identitetsprovidern som har konfigurerats för programmet uppmanas du också att ange App Service för autentisering. Annars kan du gå vidare till nästa steg.
De här alternativen avgör hur ditt program svarar på oauterade begäranden, och standardinställningarna omdirigerar alla begäranden för att logga in med den nya providern. Du kan ändra det här beteendet nu eller justera inställningarna senare från huvudskärmen för autentisering genom att välja Redigera bredvid Autentiseringsinställningar. Mer information om de här alternativen finns i Autentiseringsflöde.
Klicka på Lägg till.
Nu är du redo att använda Microsofts identitetsplattform för autentisering i din app. Providern visas på skärmen Autentisering. Därifrån kan du redigera eller ta bort den här providerkonfigurationen.
Konfigurera klientappar för att få åtkomst till App Service
I föregående avsnitt registrerade du din App Service Azure-funktion för att autentisera användare. I det här avsnittet beskrivs hur du registrerar inbyggda klient- eller daemonappar så att de kan begära åtkomst till API:er som exponeras av din App Service för användare eller sig själva. Du behöver inte slutföra stegen i det här avsnittet om du bara vill autentisera användare.
Ursprungligt klientprogram
Du kan registrera interna klienter för att begära åtkomst App Service appens API:er för en inloggad användares räkning.
I Azure Portalväljer du Active Directory > Appregistreringar > Ny registrering.
På sidan Registrera ett program anger du ett Namn för din appregistrering.
I Omdirigerings-URI väljer du Offentlig klient (mobile & desktop) och anger URL:en
<app-url>/.auth/login/aad/callback. Till exempelhttps://contoso.azurewebsites.net/.auth/login/aad/callback.Anteckning
För ett Microsoft Store-program använder du paket-SID som URI i stället.
Välj Skapa.
När appregistreringen har skapats kopierar du värdet för Program-ID (klient).
Välj API-behörigheter > Lägg till en behörighet Mina > API:er.
Välj den appregistrering som du skapade tidigare för din App Service app. Om du inte ser appregistreringen kontrollerar du att du har lagt till omfånget user_impersonation i Skapa en appregistrering i Azure AD för din App Service app.
Under Delegerade behörigheter väljer user_impersonation och sedan Lägg till behörigheter.
Du har nu konfigurerat ett inbyggt klientprogram som kan begära åtkomst App Service din app för en användares räkning.
Daemon-klientprogram (tjänst-till-tjänst-anrop)
Ditt program kan hämta en token för att anropa ett webb-API som finns i din App Service eller funktionsapp för sig själv (inte för en användares räkning). Det här scenariot är användbart för icke-interaktiva daemonprogram som utför uppgifter utan en inloggad användare. Den använder standardautentiseringsuppgifterna för OAuth 2.0-klienten.
- I Azure Portalväljer du Active Directory > Appregistreringar > Ny registrering.
- På sidan Registrera ett program anger du ett Namn för din daemon-appregistrering.
- För ett daemonprogram behöver du inte en omdirigerings-URI så att du kan hålla den tom.
- Välj Skapa.
- När appregistreringen har skapats kopierar du värdet för Program-ID (klient).
- Välj Certifikat & nya > klienthemligheter Lägg > till. Kopiera värdet för klienthemligheten som visas på sidan. Det visas inte igen.
Du kan nu begära en åtkomsttoken med hjälp av klient-ID och klienthemlighet genom att ange parametern till resource program-ID-URI för målappen. Den resulterande åtkomsttoken kan sedan visas för målappen med OAuth 2.0-standardauktoriseringsrubrikenoch App Service-autentisering/auktorisering validerar och använder token som vanligt för att nu indikera att anroparen (ett program i det här fallet inte en användare) autentiseras.
För närvarande gör detta att alla klientprogram i din Azure AD-klientorganisation kan begära en åtkomsttoken och autentisera till målappen. Om du även vill framtvinga auktorisering för att endast tillåta vissa klientprogram måste du utföra en del ytterligare konfiguration.
- Definiera en approll i manifestet för appregistreringen som representerar App Service eller funktionsapp som du vill skydda.
- I appregistreringen som representerar klienten som behöver auktoriseras väljer du API-behörigheter Lägg > till en behörighet Mina > API:er.
- Välj den appregistrering som du skapade tidigare. Om du inte ser appregistreringen kontrollerar du att du har lagt till en approll.
- Under Programbehörigheter väljer du den approll som du skapade tidigare och väljer sedan Lägg till behörigheter.
- Se till att klicka på Bevilja administratörsmedgivande för att auktorisera klientprogrammet att begära behörigheten.
- Precis som i föregående scenario (innan några roller lades till) kan du nu begära en åtkomsttoken för samma mål och åtkomsttoken innehåller ett anspråk som innehåller de approller som har auktoriserats för
resourcerolesklientprogrammet. - I målappkoden App Service eller funktionsappen kan du nu kontrollera att de förväntade rollerna finns i token (detta utförs inte av App Service autentisering/auktorisering). Mer information finns i Komma åt användaranspråk.
Nu har du konfigurerat ett daemonklientprogram som kan komma åt din App Service med hjälp av en egen identitet.
Bästa praxis
Oavsett vilken konfiguration du använder för att konfigurera autentisering kan du skydda klientorganisationen och programmen på följande sätt:
- Ge varje App Service egna behörigheter och medgivande.
- Konfigurera varje App Service app med sin egen registrering.
- Undvik behörighetsdelning mellan miljöer genom att använda separata appregistreringar för separata distributionsfack. När du testar ny kod kan den här övningen hjälpa till att förhindra att problem påverkar produktionsappen.