Autenticare e autorizzare App Web statiche

Il servizio App Web statiche di Azure offre un'esperienza di autenticazione semplificata, in cui non è necessaria alcuna configurazione aggiuntiva per usare GitHub e Microsoft Entra ID per l'autenticazione.

Questo articolo illustra il comportamento predefinito, come configurare l'accesso e la disconnessione, come bloccare un provider di autenticazione e altro ancora.

È possibile registrare un provider personalizzato, che disabilita tutti i provider preconfigurati.

Avviso

A causa delle modifiche apportate ai criteri dell'API X (in precedenza Twitter), il supporto non è disponibile come parte dei provider preconfigurato per l'app. Se si vuole continuare a usare X (in precedenza Twitter) per l'autenticazione/autorizzazione con l'app, aggiornare la configurazione dell'app per registrare un provider personalizzato.

Prerequisiti

Tenere presente le impostazioni predefinite e le risorse seguenti per l'autenticazione e l'autorizzazione con App Web statiche di Azure.

Impostazioni predefinite:

  • Qualsiasi utente può eseguire l'autenticazione con un provider preconfigurato
    • GitHub
    • Microsoft Entra ID
    • Per limitare un provider di autenticazione, bloccare l'accesso con una regola di route personalizzata
  • Dopo l'accesso, gli utenti appartengono ai ruoli anonymous e authenticated. Per altre informazioni sui ruoli, vedere Gestire i ruoli

Risorse:

Configurare l'accesso

App Web statiche di Azure usa la cartella di sistema /.auth per fornire l'accesso alle API correlate all'autorizzazione. Anziché esporre una delle route nella cartella /.auth direttamente agli utenti finali, creare regole di routing per gli URL descrittivi.

Usare la tabella seguente per trovare la route specifica del provider.

Provider di autorizzazione Route di accesso
Microsoft Entra ID /.auth/login/aad
GitHub /.auth/login/github

Ad esempio, per accedere con GitHub è possibile usare un URL simile all'esempio seguente.

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

Se si sceglie di supportare più di un provider, usare un collegamento specifico del provider per ogni provider nel sito Web. Usare una regola di route per eseguire il mapping di un provider predefinito a una route intuitiva come /login.

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

Configurare il reindirizzamento post-accesso

È possibile riportare un utente a una pagina specifica dopo l'accesso fornendo un URL completo nel parametro post_login_redirect_uri della stringa di query.

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

You can also redirect unauthenticated users back to the referring page after they sign in. To add this redirect, create a response override rule that sets post_login_redirect_uri to .referrer, like in the following example.

{
  "responseOverrides": {
    "401": {
      "redirect": "/.auth/login/github?post_login_redirect_uri=.referrer",
      "statusCode": 302
    }
  }
}

Configurare la disconnessione

La route /.auth/logout disconnette gli utenti dal sito Web. È possibile aggiungere un collegamento all'esplorazione del sito per consentire all'utente di disconnettersi come illustrato nell'esempio seguente.

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

Usare una regola di route per eseguire il mapping di una route intuitiva come /logout.

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

Configurare il reindirizzamento post-disconnessione

Per riportare un utente a una pagina specifica dopo la disconnessione, specificare un URL nel parametro post_logout_redirect_uri della stringa di query.

Bloccare un provider di autenticazione

Per impostazione predefinita, tutti i provider di autenticazione sono abilitati, ma è possibile che si voglia impedire all'app di usare un provider. Ad esempio, l'app potrebbe voler usare solo provider che espongono indirizzi di posta elettronica.

Per bloccare un provider, creare una regola di route per restituire un codice di stato 404 per le richieste alla route specifica del provider bloccato. Ad esempio, per bloccare X (in precedenza Twitter) come provider, aggiungere la regola di route seguente.

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

Rimuovere i dati personali

Quando si concede il consenso a un'applicazione come utente finale, l'applicazione può accedere all'indirizzo di posta elettronica o al nome utente a seconda del provider di identità. Dopo aver fornito queste informazioni, il proprietario dell'applicazione può decidere come gestire i dati personali.

Gli utenti finali devono contattare gli amministratori delle singole app Web per revocare tali informazioni dai relativi sistemi.

Per rimuovere le informazioni personali dell'utente finale dalla piattaforma App Web statiche di Azure e impedire alla piattaforma di fornire queste informazioni in caso di richieste future, inviare una richiesta usando l'URL seguente:

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

To prevent the platform from providing this information on future requests to individual apps, submit a request using the following URL:

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

If you're using Microsoft Entra ID, use aad as the value for the <AUTHENTICATION_PROVIDER_NAME> placeholder.

Tip

For information about general restrictions and limitations, see Quotas.

Passaggio successivo