Verificatie en autorisatie implementeren in Azure Container Apps

Voltooid

Azure Container Apps biedt ingebouwde verificatie- en autorisatiefuncties om uw externe container-app met inkomend verkeer te beveiligen met minimale of geen code. Met de ingebouwde verificatiefunctie voor Container Apps kunt u tijd en moeite besparen door kant-en-klare verificatie met federatieve id-providers te bieden, zodat u zich kunt richten op de rest van uw toepassing.

  • Azure Container Apps biedt toegang tot verschillende ingebouwde verificatieproviders.
  • De ingebouwde verificatiefuncties vereisen geen specifieke taal, SDK, beveiligingsexpertise of zelfs code die u moet schrijven.

Deze functie mag alleen worden gebruikt met HTTPS. Zorg ervoor dat allowInsecure de toegangsbeheerobjectconfiguratie van uw container-app is uitgeschakeld. U kunt uw container-app configureren voor verificatie met of zonder de toegang tot uw site-inhoud en API's te beperken.

  • Als u app-toegang alleen wilt beperken tot geverifieerde gebruikers, stelt u de instelling Toegang beperken in op Verificatie vereisen.
  • Als u de toegang wilt verifiëren maar niet wilt beperken, stelt u de instelling Toegang beperken in op Niet-geverifieerde toegang toestaan.

Id-providers

Container Apps maakt gebruik van federatieve identiteit, waarbij een externe id-provider de gebruikersidentiteiten en verificatiestroom voor u beheert. De volgende id-providers zijn standaard beschikbaar:

Provider Aanmeldingseindpunt Instructies
Microsoft Identity-platform /.auth/login/aad Microsoft Identity-platform
Facebook /.auth/login/facebook Facebook
GitHub /.auth/login/github GitHub
Google /.auth/login/google Google
X /.auth/login/twitter X
Elke OpenID Connect-provider /.auth/login/<providerName> OpenID Connect

Wanneer u een van deze providers gebruikt, is het aanmeldingseindpunt beschikbaar voor gebruikersverificatie en verificatietokenvalidatie van de provider. U kunt uw gebruikers een willekeurig aantal van deze provideropties bieden.

Functiearchitectuur

Het middlewareonderdeel verificatie en autorisatie is een functie van het platform dat wordt uitgevoerd als sidecarcontainer op elke replica in uw toepassing. Wanneer deze functie is ingeschakeld, wordt elke binnenkomende HTTP-aanvraag door de beveiligingslaag doorgegeven voordat deze wordt verwerkt door uw toepassing.

Diagram met aanvragen die worden onderschept door een sidecarcontainer die communiceert met id-providers voordat verkeer naar de app-container wordt toegestaan.

De platform-middleware verwerkt verschillende dingen voor uw app:

  • Verifieert gebruikers en clients met de opgegeven id-providers
  • Beheert de geverifieerde sessie
  • Injecteert identiteitsgegevens in HTTP-aanvraagheaders

De verificatie- en autorisatiemodule wordt uitgevoerd in een afzonderlijke container, geïsoleerd van uw toepassingscode. Omdat de beveiligingscontainer niet in het proces wordt uitgevoerd, is er geen directe integratie met specifieke taalframeworks mogelijk. Relevante informatie die uw app nodig heeft, wordt echter verstrekt in aanvraagheaders.

Verificatiestroom

De verificatiestroom is voor alle providers hetzelfde, maar is afhankelijk van of u zich wilt aanmelden met de SDK van de provider:

  • Zonder provider-SDK (servergestuurde stroom of serverstroom): de toepassing delegeert federatieve aanmelding bij Container Apps. Delegering is meestal het geval bij browser-apps, die de aanmeldingspagina van de provider aan de gebruiker presenteert.

  • Met provider-SDK (clientgestuurde stroom of clientstroom): de toepassing meldt gebruikers handmatig aan bij de provider en verzendt vervolgens het verificatietoken naar Container Apps voor validatie. Deze benadering is gebruikelijk voor browserloze apps die de aanmeldingspagina van de provider niet aan de gebruiker presenteren. Een voorbeeld hiervan is een systeemeigen mobiele app waarmee gebruikers zich aanmelden met behulp van de SDK van de provider.