Autentisering och auktorisering för Azure Static Web Apps

Azure Static Web Apps ger en smidig autentiseringsupplevelse. Som standard har du åtkomst till en serie förkonfigurerade providers eller alternativet att registrera en anpassad provider.

  • Alla användare kan autentisera med en aktiverad provider.
  • När du har loggat in tillhör användarna anonymous authenticated rollerna och som standard.
  • Behöriga användare får åtkomst till begränsade vägar genom regler som definieras i staticwebapp.config.json-filen.
  • Användare tilldelas anpassade roller med hjälp av det inbyggda systemet för inbjudningar.
  • Användare kan tilldelas programmatiskt anpassade roller vid inloggning med en API-funktion.
  • Alla autentiseringsproviders är aktiverade som standard.
  • Förkonfigurerade providers omfattar:
    • Azure Active Directory
    • GitHub
    • Twitter

Ämnena för autentisering och auktorisering överlappar avsevärt routningsbegreppen, som beskrivs i programkonfigurationsguiden.

Roller

Varje användare som har åtkomst till en statisk webbapp tillhör en eller flera roller. Det finns två inbyggda roller som användare kan tillhöra:

  • anonym: Alla användare tillhör automatiskt den anonyma rollen.
  • autentiserad: Alla användare som är inloggade tillhör den autentiserade rollen.

Utöver de inbyggda rollerna kan du tilldela anpassade roller till användare och referera till dem i filenstaticwebapp.config.json.

Rollhantering

Lägga till en användare i en roll

Om du vill lägga till en användare till en roll skapar du inbjudningar som gör att du kan associera användare till specifika roller. Roller definieras och underhålls i filenstaticwebapp.config.json.

Skapa en inbjudan

Inbjudningar är specifika för enskilda auktoriseringsleverantörer, så överväg behoven i din app när du väljer vilka leverantörer som ska stödjas. Vissa leverantörer exponerar en användares e-postadress, medan andra bara anger webbplatsens användarnamn.

Auktoriseringsprovider Exponerar en användares
Azure Active Directory e-postadress
GitHub användarnamn
Twitter användarnamn
  1. Gå till Static Web Apps resurs i Azure Portal.
  2. Under Inställningar klickar du på Rollhantering.
  3. Klicka på knappen Bjud in.
  4. Välj en auktoriseringsprovider i listan med alternativ.
  5. Lägg antingen till mottagarens användarnamn eller e-postadress i rutan Inbjudningsinformation.
    • För GitHub och Twitter anger du användarnamnet. För alla andra anger du mottagarens e-postadress.
  6. Välj domänen för den statiska platsen i listrutan Domän.
    • Den domän som du väljer är den domän som visas i inbjudan. Om du har en anpassad domän som är associerad med webbplatsen vill du förmodligen välja den anpassade domänen.
  7. Lägg till en kommaavgränsad lista med rollnamn i rutan Roll.
  8. Ange det maximala antalet timmar som du vill att inbjudan ska förbli giltig.
    • Den högsta möjliga gränsen är 168 timmar, vilket är 7 dagar.
  9. Klicka på knappen Generate (Generera).
  10. Kopiera länken från rutan Bjud in länk.
  11. Skicka inbjudningslänken via e-post till den person som du beviljar åtkomst till din app.

När användaren klickar på länken i inbjudan uppmanas de att logga in med sitt motsvarande konto. När användaren har loggat in associeras den med de valda rollerna.

Varning

Kontrollera att dina vägregler inte står i konflikt med dina valda autentiseringsproviders. Om en leverantör blockeras med en vägregel kan användarna inte acceptera inbjudningar.

Uppdatera rolltilldelningar

  1. Gå till Static Web Apps resurs i Azure Portal.
  2. Under Inställningar klickar du på Rollhantering.
  3. Klicka på användaren i listan.
  4. Redigera listan över roller i rutan Roll.
  5. Klicka på knappen Uppdatera.

Ta bort användare

  1. Gå till Static Web Apps resurs i Azure Portal.
  2. Under Inställningar klickar du på Rollhantering.
  3. Leta upp användaren i listan.
  4. Markera kryssrutan på användarens rad.
  5. Klicka på knappen Ta bort.

Tänk på följande när du tar bort en användare:

  1. Om du tar bort en användare ogiltigförklaras deras behörigheter.
  2. Spridning över hela världen kan ta några minuter.
  3. Om användaren läggs till i appen igen userId ändras.

Ta bort personlig identifieringsinformation

När du beviljar medgivande till ett program som slutanvändare har programmet åtkomst till din e-postadress eller ditt användarnamn beroende på identitetsprovidern. När den här informationen har angetts avgör programmets ägare hur personligt identifierande information ska hanteras.

Slutanvändare måste kontakta administratörer för enskilda webbappar för att återkalla den här informationen från sina system.

Om du vill ta bort personligt identifierande information från Azure Static Web Apps plattformen och förhindra plattformen från att tillhandahålla den här informationen om framtida begäranden skickar du en begäran med hjälp av URL:en:

https://identity.azurestaticapps.net/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

För att förhindra att plattformen tillhandahåller den här informationen om framtida begäranden till enskilda appar skickar du en begäran till följande URL:

https://<WEB_APP_DOMAIN_NAME>/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

Observera att om du använder Azure Active Directory använder aad du som värde för <AUTHENTICATION_PROVIDER_NAME> platshållaren.

Systemmapp

Azure Static Web Apps använder /.auth systemmappen för att ge åtkomst till auktoriseringsrelaterade API:er. I stället för att exponera någon av vägarna under mappen direkt för slutanvändarna bör du överväga att /.auth skapa routningsregler för att skapa egna URL:er.

Inloggning

Använd följande tabell för att hitta den providerspecifika vägen.

Auktoriseringsprovider Inloggningsväg
Azure Active Directory /.auth/login/aad
GitHub /.auth/login/github
Twitter /.auth/login/twitter

Om du till exempel vill logga in GitHub kan du inkludera en länk som liknar följande kodfragment:

<a href="/.auth/login/github">Login</a>

Om du väljer att stödja fler än en leverantör måste du exponera en providerspecifik länk för varje på din webbplats.

Du kan använda en vägregel för att mappa en standardprovider till en användarvänlig väg som /login.

{
  "route": "/login",
  "redirect": "/.auth/login/github"
}

Omdirigering efter inloggning

Om du vill att en användare ska återgå till en specifik sida efter inloggningen anger du en fullständig kvalificerad URL i post_login_redirect_uri frågesträngsparametern.

Ett exempel:

<a href="/.auth/login/github?post_login_redirect_uri=https://zealous-water.azurestaticapps.net/success">Login</a>

Utloggning

Vägen /.auth/logout loggar ut användare från webbplatsen. Du kan lägga till en länk till webbplatsnavigeringen så att användaren kan logga ut enligt följande exempel.

<a href="/.auth/logout">Log out</a>

Du kan använda en vägregel för att mappa en användarvänlig väg som /logout.

{
  "route": "/logout",
  "redirect": "/.auth/logout"
}

Omdirigering efter utloggning

Om du vill att en användare ska återgå till en specifik sida efter utloggningen anger du en URL i post_logout_redirect_uri frågesträngsparametern.

Blockera en auktoriseringsprovider

Du kanske vill begränsa appen från att använda en auktoriseringsprovider. Din app kanske till exempel bara vill standardisera på leverantörer som exponerar e-postadresser.

Om du vill blockera en leverantör kan du skapa vägregler för att returnera 404 för begäranden till den blockerade providerspecifika vägen. Om du till exempel vill begränsa Twitter som provider lägger du till följande vägregel.

{
  "route": "/.auth/login/twitter",
  "statusCode": 404
}

Begränsningar

I artikeln Kvoter finns allmänna begränsningar och begränsningar.

Nästa steg

1 Väntar på extern certifiering.