Verificatie en autorisatie voor Azure Static Web Apps

Azure Static Web Apps biedt een gestroomlijnde verificatie-ervaring. Standaard hebt u toegang tot een reeks vooraf geconfigureerde providers of de optie om een aangepaste provider te registreren.

  • Elke gebruiker kan worden geverifieerd met een ingeschakelde provider.
  • Nadat gebruikers zijn aangemeld, behoren ze standaard tot de anonymous authenticated rollen en .
  • Geautoriseerde gebruikers krijgen toegang tot beperkte routes op basis van regels die zijn gedefinieerd in het bestand staticwebapp.config.json.
  • Aan gebruikers worden aangepaste rollen toegewezen met behulp van het ingebouwde uitnodigingensysteem.
  • Gebruikers kunnen programmatisch aangepaste rollen toegewezen krijgen bij aanmelding door een API-functie.
  • Alle verificatieproviders zijn standaard ingeschakeld.
    • Als u een verificatieprovider wilt beperken, blokkeert u de toegang met een aangepaste routeregel.
  • Vooraf geconfigureerde providers zijn onder andere:
    • Azure Active Directory
    • GitHub
    • Twitter

De onderwerpen van verificatie en autorisatie overlappen aanzienlijk met routeringsconcepten, die worden beschreven in de handleiding voor toepassingsconfiguratie.

Rollen

Elke gebruiker die toegang heeft tot een statische web-app, behoort tot een of meer rollen. Er zijn twee ingebouwde rollen waar gebruikers bij kunnen horen:

  • anoniem: alle gebruikers behoren automatisch tot de anonieme rol.
  • geverifieerd: alle gebruikers die zijn aangemeld, behoren tot de geverifieerde rol.

Naast de ingebouwde rollen kunt u aangepaste rollen toewijzen aan gebruikers en hier in het bestandstaticwebapp.config.json naar verwijzen.

Rolbeheer

Een gebruiker toevoegen aan een rol

Als u een gebruiker aan een rol wilt toevoegen, genereert u uitnodigingen waarmee u gebruikers aan specifieke rollen kunt koppelen. Rollen worden gedefinieerd en onderhouden in het bestandstaticwebapp.config.json.

Een uitnodiging maken

Uitnodigingen zijn specifiek voor afzonderlijke autorisatieproviders, dus houd rekening met de behoeften van uw app wanneer u selecteert welke providers u wilt ondersteunen. Sommige providers geven het e-mailadres van een gebruiker weer, terwijl andere alleen de gebruikersnaam van de site verstrekken.

Autorisatieprovider Geeft de van een gebruiker weer
Azure Active Directory e-mailadres
GitHub gebruikersnaam
Twitter gebruikersnaam
  1. Navigeer naar Static Web Apps resource in Azure Portal.
  2. Klik Instellingen onder Instellingen op Role Management.
  3. Klik op de knop Uitnodigen.
  4. Selecteer een autorisatieprovider in de lijst met opties.
  5. Voeg de gebruikersnaam of het e-mailadres van de ontvanger toe in het vak Details van uitnodiging.
    • Voor GitHub en Twitter voert u de gebruikersnaam in. Voer voor alle andere gebruikers het e-mailadres van de ontvanger in.
  6. Selecteer het domein van uw statische site in de vervolgkeuzekeuze selecteren domein.
    • Het domein dat u selecteert, is het domein dat wordt weergegeven in de uitnodiging. Als u een aangepast domein aan uw site hebt gekoppeld, wilt u waarschijnlijk het aangepaste domein kiezen.
  7. Voeg een door komma's gescheiden lijst met rolnamen toe in het vak Rol.
  8. Voer het maximum aantal uren in dat de uitnodiging geldig moet blijven.
    • De maximaal mogelijke limiet is 168 uur, wat 7 dagen is.
  9. Klik op de knop Genereren.
  10. Kopieer de koppeling uit het vak Uitnodigingskoppeling.
  11. Stuur de uitnodigingskoppeling via e-mail naar de persoon die u toegang verleent tot uw app.

Wanneer de gebruiker op de koppeling in de uitnodiging klikt, wordt de gebruiker gevraagd zich aan te melden met het bijbehorende account. Zodra de gebruiker is aangemeld, wordt deze gekoppeld aan de geselecteerde rollen.

Waarschuwing

Zorg ervoor dat uw routeregels niet conflicteren met de geselecteerde verificatieproviders. Als u een provider blokkeert met een routeregel, kunnen gebruikers geen uitnodigingen accepteren.

Roltoewijzingen bijwerken

  1. Navigeer naar Static Web Apps resource in Azure Portal.
  2. Klik Instellingen onder Instellingen op Role Management.
  3. Klik op de gebruiker in de lijst.
  4. Bewerk de lijst met rollen in het vak Rol.
  5. Klik op de knop Bijwerken.

Gebruiker verwijderen

  1. Navigeer naar Static Web Apps resource in Azure Portal.
  2. Klik Instellingen onder Instellingen op Role Management.
  3. Zoek de gebruiker in de lijst.
  4. Vink het selectievakje in de rij van de gebruiker aan.
  5. Klik op de knop Verwijderen.

Houd rekening met de volgende items wanneer u een gebruiker verwijdert:

  1. Als u een gebruiker verwijdert, worden de machtigingen ongeldig.
  2. Wereldwijde door propagatie kan enkele minuten duren.
  3. Als de gebruiker weer aan de app wordt toegevoegd, verandert userId de.

Persoonlijke identificatiegegevens verwijderen

Wanneer u een toepassing als eindgebruiker toestemming verleent, heeft de toepassing toegang tot uw e-mailadres of uw gebruikersnaam, afhankelijk van de id-provider. Zodra deze informatie is verstrekt, bepaalt de eigenaar van de toepassing hoe persoonlijke identificatiegegevens moeten worden beheren.

Eindgebruikers moeten contact opnemen met beheerders van afzonderlijke web-apps om deze informatie van hun systemen in te trekken.

Als u persoonlijk identificeerbare informatie van het Azure Static Web Apps-platform wilt verwijderen en wilt voorkomen dat het platform deze informatie over toekomstige aanvragen verstrekt, dient u een aanvraag in via de URL:

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

Als u wilt voorkomen dat het platform deze informatie over toekomstige aanvragen aan afzonderlijke apps verstrekt, dient u een aanvraag in op de volgende URL:

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

Als u een tijdelijke aanduiding Azure Active Directory, gebruikt aad u als de waarde voor de tijdelijke <AUTHENTICATION_PROVIDER_NAME> aanduiding.

Systeemmap

Azure Static Web Apps gebruikt de /.auth systeemmap om toegang te bieden tot aan autorisatie gerelateerde API's. In plaats van een van de routes onder de map rechtstreeks aan eindgebruikers bloot te stellen, kunt u routeringsregels maken om /.auth gebruiksvriendelijke URL's te maken.

Aanmelden

Gebruik de volgende tabel om de providerspecifieke route te vinden.

Autorisatieprovider Aanmeldingsroute
Azure Active Directory /.auth/login/aad
GitHub /.auth/login/github
Twitter /.auth/login/twitter

Als u zich bijvoorbeeld wilt aanmelden met GitHub kunt u een koppeling opnemen zoals in het volgende fragment:

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

Als u ervoor hebt gekozen om meer dan één provider te ondersteunen, moet u voor elke provider een providerspecifieke koppeling op uw website maken.

U kunt een routeregel gebruiken om een standaardprovider toe te staan aan een route zoals /login.

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

Omleiding na aanmelding

Als u wilt dat een gebruiker na aanmelding terugkeert naar een specifieke pagina, geeft u een volledig gekwalificeerde URL op in post_login_redirect_uri de queryreeksparameter.

Bijvoorbeeld:

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

Afmelden

De /.auth/logout route registreert gebruikers bij de website. U kunt een koppeling naar uw sitenavigatie toevoegen zodat de gebruiker zich kan afmelden, zoals wordt weergegeven in het volgende voorbeeld.

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

U kunt een routeregel gebruiken om een route zoals /logout toe te wijsen.

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

Omleiding na af te wijzen

Als u wilt dat een gebruiker na de aanmelding terugkeert naar een specifieke pagina, geeft u een URL op in post_logout_redirect_uri de queryreeksparameter.

Een autorisatieprovider blokkeren

Mogelijk wilt u voorkomen dat uw app een autorisatieprovider gebruikt. Uw app wil bijvoorbeeld mogelijk alleen standaardiseren voor providers die e-mailadressen beschikbaar maken.

Als u een provider wilt blokkeren, kunt u routeregels maken om een 404 te retourneren voor aanvragen naar de route die specifiek is voor de geblokkeerde provider. Als u bijvoorbeeld Twitter als provider wilt beperken, voegt u de volgende routeregel toe.

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

Beperkingen

Zie het artikel Quota voor algemene beperkingen en beperkingen.

Volgende stappen

1 Externe certificering in behandeling.