Aktivera autentisering och auktorisering i Azure Container Apps med Microsoft Entra-ID
Den här artikeln visar hur du konfigurerar autentisering för Azure Container Apps så att appen loggar in användare med Microsofts identitetsplattform som autentiseringsprovider.
Funktionen Autentisering av containerappar kan automatiskt skapa en appregistrering med Microsofts identitetsplattform. Du kan också använda en registrering som du eller en katalogadministratör skapar 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 få steg.
Logga in på Azure Portal och gå till din app.
Välj Autentisering i menyn till vänster. Välj 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 de kontotyper som stöds.
En klienthemlighet skapas och lagras som en hemlighet i containerappen.
Om du konfigurerar den första identitetsprovidern för det här programmet uppmanas du att ange autentiseringsinställningar för Container Apps. Annars går du vidare till nästa steg.
De här alternativen avgör hur ditt program svarar på oautentiserade begäranden och standardvalen omdirigerar alla begäranden för att logga in med den nya providern. Du kan anpassa 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) Välj Nästa: Behörigheter och lägg till eventuella omfång som krävs av programmet. Omfången läggs till i appregistreringen, men du kan också ändra dem senare.
Markera Lägga 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.
Alternativ 2: Använd en befintlig registrering som skapats separat
Du kan också registrera ditt program manuellt för Microsofts identitetsplattform, anpassa registreringen och konfigurera Container Apps-autentisering med registreringsinformationen. Den här metoden är användbar när du vill använda en appregistrering från en annan Microsoft Entra-klient än den där ditt program har definierats.
Skapa en appregistrering i Microsoft Entra-ID för din containerapp
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 containerappen:
- Client ID
- Klientorganisations-ID
- Klienthemlighet (valfritt)
- Sökande-ID URI
Utför följande steg för att registrera appen:
- Logga in på Azure-portalen.
- Sök efter och välj Container Apps och välj sedan din app. På sidan Översikt noterar du appens program-URL. Du använder den för att konfigurera din Microsoft Entra-appregistrering.
- Välj Start för att återgå till portalens huvudmeny. Sök efter och markera Microsoft Entra ID.
- På sidan Översikt väljer du Lägg till och sedan Appregistrering.
På sidan Registrera ett program anger du ett namn för din appregistrering.
I Omdirigerings-URI väljer du Webb och anger följande. Ersätt
\<APP_URL\>
med den program-URL som du antecknade tidigare.<APP_URL>/.auth/login/aad/callback
.Exempel:
https://<CONTAINER_APP_NAME>.<ENVIRONMENT_UNIQUE_ID>.<REGION_NAME>.azurecontainerapps.io/.auth/login/aad/callback
.I Implicit beviljande och hybridflöden aktiverar du ID-token för att tillåta OpenID Connect-användarinloggningar från Container Apps.
Välj Registrera.
- Bläddra till den nya appregistreringen.
- På sidan Översikt kopierar du program-ID :t (klient- och katalog-ID:t ) för senare.
- (Valfritt) Om du inte lade till omdirigerings-URI:n i appregistreringen tidigare kan du göra det nu.
I Hanterad väljer du Autentisering.
På sidan Autentisering går du till Plattformskonfigurationer och väljer Lägg till en plattform.
I Konfigurera plattformar väljer du Webb.
Ange följande i Omdirigerings-URI:er i Konfigurera webben. Ersätt
\<APP_URL\>
med den program-URL som du antecknade tidigare.<APP_URL>/.auth/login/aad/callback
.Exempel:
https://<CONTAINER_APP_NAME>.<HOSTNAME>.<LOCATION>.azurecontainerapps.io/.auth/login/aad/callback
.Välj Konfigurera.
- (Valfritt) I Hantera väljer du Varumärkesanpassning och egenskaper. I Webbadressen till startsidan anger du URL:en för containerappen och väljer Spara.
- I Hantera väljer du Exponera ett API.
Välj Lägg till bredvid Program-ID URI.
Program-ID-URI:n identifierar ditt program unikt när det används som en resurs, vilket gör att begärda token kan bevilja åtkomst. Värdet används också som ett prefix för omfång som du skapar.
För en app med en enda 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/api
baseras på en av de verifierade domänerna för din klientorganisation. För en app med flera klientorganisationer måste du ange en anpassad URI. Mer information om godkända format för app-ID-URI:er finns i referensen för metodtips för appregistreringar.Värdet sparas automatiskt.
Välj Lägg till en omfattning.
I Lägg till ett omfång är program-ID-URI det värde som du angav i ett tidigare steg.
Välj Spara och fortsätt.
I Omfångsnamn anger du user_impersonation.
Ange visningsnamnet för administratörsmedgivande och beskrivningen av administratörsmedgivande som du vill att administratörer ska se på sidan medgivande. Ett exempel på visningsnamn för medgivande är Access application-name>.<
Välj Lägg till definitionsområde.
- I Hantera väljer du Certifikat och hemligheter.
- På sidan Certifikat och hemligheter väljer du Klienthemligheter.
- Välj Ny klienthemlighet.
- Ange en Beskrivning och välj när hemligheten upphör att gälla.
- Markera Lägga till.
- Kopiera det klienthemlighetsvärde som visas på sidan eftersom webbplatsen inte visar det för dig igen.
Aktivera Microsoft Entra-ID i din containerapp
Logga in på Azure Portal och gå till din app.
Välj Autentisering i menyn till vänster. Välj 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 klientorganisation 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:
Varning
Undvik att använda implicit beviljandeflöde när det är möjligt. I de flesta scenarier är säkrare alternativ tillgängliga och rekommenderas. Vissa konfigurationer av det här flödet kräver en mycket hög grad av förtroende för programmet och medför risker som inte finns i andra flöden. Du bör bara använda det här flödet när andra säkrare flöden inte är livskraftiga. Mer information finns i säkerhetsproblemen med implicit beviljandeflöde.
Fält beskrivning App-ID (klient-ID) Använd program-ID:t (klient) för appregistreringen. Klienthemlighet Använd klienthemligheten som du genererade i appregistreringen. Klienthemligheter använder hybridflöde och appen returnerar åtkomst- och uppdateringstoken. När klienthemligheten inte har angetts används implicit flöde till och endast en ID-token returneras. Providern skickar token och lagras i EasyAuth-tokenarkivet. Utfärdar-URL Använd <authentication-endpoint>/<TENANT-ID>/v2.0
och ersätt< authentication-endpoint> med autentiseringsslutpunkten för din molnmiljö (till exempel "https://login.microsoftonline.com" för global Azure), och ersätter <även KLIENT-ID med katalog-ID>:t (klientorganisation) där appregistreringen skapades. Det här värdet används för att omdirigera användare till rätt Microsoft Entra-klientorganisation och för att ladda ned lämpliga metadata för att fastställa lämpliga tokensigneringsnycklar och token utfärdarens anspråksvärde, till exempel. För program som använder Azure AD v1 utelämnar/v2.0
du url:en.Tillåtna token-målgrupper Det konfigurerade program-ID:t (klient) anses alltid implicit vara en tillåten målgrupp. Om det här värdet refererar till en moln- eller serverapp och du vill acceptera autentiseringstoken från en klientcontainerapp (autentiseringstoken kan hämtas i X-MS-TOKEN-AAD-ID-TOKEN
huvudet) lägger du till program-ID :t (klient) för klientappen här.Klienthemligheten lagras som hemligheter i containerappen.
Om det här är den första identitetsprovidern som konfigurerats för programmet uppmanas du också att ange autentiseringsinställningar för Container Apps. Annars går du vidare till nästa steg.
De här alternativen avgör hur ditt program svarar på oautentiserade begäranden, och standardvalen omdirigerar alla begäranden för att logga in med den nya providern. Du kan ändra anpassa 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.
Markera Lägga 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 åtkomst till din containerapp
I föregående avsnitt registrerade du containerappen för att autentisera användare. I det här avsnittet registrerar du interna klient- eller daemon-appar. De kan sedan begära åtkomst till API:er som exponeras av din containerapp för användare eller sig själva. Att slutföra stegen i det här avsnittet krävs inte om du bara vill autentisera användare.
Internt klientprogram
Du kan registrera interna klienter för att begära åtkomst till containerappens API:er för en inloggad användare.
I Azure Portal väljer du Microsoft Entra-ID>Lägg till> Appregistreringar.
På sidan Registrera ett program anger du ett namn för din appregistrering.
I Omdirigerings-URI väljer du Offentlig klient (mobil och skrivbord) och skriver URL:en
<app-url>/.auth/login/aad/callback
. Exempel:https://<hostname>.azurecontainerapps.io/.auth/login/aad/callback
Välj Skapa.
När appregistreringen har skapats kopierar du värdet för program-ID (klient-ID).
Välj API-behörigheter>Lägg till en behörighet>Mina API:er.
Välj den appregistrering som du skapade tidigare för containerappen. Om du inte ser appregistreringen kontrollerar du att du har lagt till user_impersonation-omfånget i Skapa en appregistrering i Microsoft Entra-ID för containerappen.
Under Delegerade behörigheter väljer du user_impersonation och sedan Lägg till behörigheter.
I det här avsnittet konfigurerade du ett internt klientprogram som kan begära åtkomst till din containerapp 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 containerappen för sig självt (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 OAuth 2.0-klientens standardautentiseringsuppgifter .
- I Azure Portal väljer du Microsoft Entra-ID>Lägg till> Appregistreringar.
- På sidan Registrera ett program anger du ett Namn för din daemon-appregistrering.
- För ett daemonprogram behöver du ingen 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-ID).
- Välj Certifikat och hemligheter>Ny klienthemlighet>Lägg till. Kopiera det klienthemlighetsvärde som visas på sidan. Den visas inte igen.
Nu kan du begära en åtkomsttoken med hjälp av klient-ID och klienthemlighet genom att ange parametern resource
till program-ID-URI :n för målappen. Den resulterande åtkomsttoken kan sedan visas för målappen med hjälp av standardhuvudet för OAuth 2.0-auktorisering och autentisering/auktorisering för containerappar verifierar och använder token som vanligt för att indikera att anroparen (ett program i det här fallet inte en användare) autentiseras.
Med den här processen kan alla klientprogram i din Microsoft Entra-klientorganisation begära en åtkomsttoken och autentisera till målappen. Om du också vill framtvinga auktorisering för att endast tillåta vissa klientprogram måste du justera konfigurationen.
- Definiera en approll i manifestet för appregistreringen som representerar den containerapp som du vill skydda.
- På appregistreringen som representerar klienten som måste 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 lägger till en approll.
- Under Programbehörigheter väljer du den approll som du skapade tidigare och väljer sedan Lägg till behörigheter.
- Välj Bevilja administratörsmedgivande för att auktorisera klientprogrammet för att begära behörigheten.
- På samma sätt som i föregående scenario (innan några roller lades till) kan du nu begära en åtkomsttoken för samma mål
resource
och åtkomsttoken innehåller ettroles
anspråk som innehåller de approller som har auktoriserats för klientprogrammet. - Verifiera att förväntade roller nu finns i token i containerappens målkod. Autentiseringsskiktet Container Apps utför inte verifieringsstegen. Mer information finns i Åtkomst till användaranspråk.
I det här avsnittet konfigurerade du ett daemon-klientprogram som kan komma åt din containerapp med hjälp av sin egen identitet.
Arbeta med autentiserade användare
Använd följande guider för information om hur du arbetar med autentiserade användare.