Authentification et autorisation de Static Web Apps

Avertissement

En raison des modifications apportées à la stratégie d’API X(anciennement Twitter), nous ne pouvons pas continuer à la prendre en charge dans le cadre des fournisseurs préconfigurés pour votre application. Si vous souhaitez continuer à utiliser X(anciennement Twitter) pour l’authentification/autorisation avec votre application, mettez à jour la configuration de votre application pour inscrire un fournisseur personnalisé.

Azure Static Web Apps offre une expérience d’authentification simplifiée, où aucune autre action ou configuration n’est requise pour utiliser GitHub et Microsoft Entra ID pour l’authentification.

Découvrez dans cet article le comportement par défaut, comment configurer la connexion et la déconnexion, comment bloquer un fournisseur d’authentification, etc.

Vous pouvez inscrire un fournisseur personnalisé, ce qui a pour effet de désactiver tous les fournisseurs préconfigurés.

Prérequis

Tenez compte des configurations par défaut et des ressources suivantes pour l’authentification et l’autorisation avec Azure Static Web Apps.

Configurations par défaut :

  • Tout utilisateur peut s’authentifier auprès d’un fournisseur préconfiguré
    • GitHub
    • Microsoft Entra ID
    • Pour restreindre un fournisseur d’authentification, bloquez l’accès avec une règle d’acheminement personnalisée.
  • Après la connexion, les utilisateurs sont dotés des rôles anonymous et authenticated. Pour plus d’informations sur les rôles, consultez Gestion des rôles.

Ressources :

  • Définissez des règles dans le fichier staticwebapp.config.json pour donner aux utilisateurs autorisés l’accès aux itinéraires restreints.
  • Attribuez aux utilisateurs des rôles personnalisés à l’aide du système d’invitations intégré.
  • Dotez programmatiquement les utilisateurs de rôles personnalisés lors de la connexion avec une fonction d’API.
  • Sachez que l’authentification et l’autorisation se recoupent de manière significative avec les concepts de routage, détaillés dans le Guide de configuration des applications.
  • Limitez la connexion à un locataire Microsoft Entra spécifique en configurant un fournisseur Microsoft Entra personnalisé. Le fournisseur Microsoft Entra préconfiguré permet à n’importe quel compte Microsoft de se connecter.

Configurer la connexion

Azure Static Web Apps utilise le dossier système /.auth pour fournir l’accès aux API associées aux autorisations. Au lieu d’exposer directement les itinéraires situés dans le dossier /.auth aux utilisateurs finaux, créez des règles d’acheminement donnant des URL conviviales.

Appuyez-vous sur le tableau suivant pour rechercher l’itinéraire de connexion propre au fournisseur.

Fournisseur d’autorisation Itinéraire de connexion
Microsoft Entra ID /.auth/login/aad
GitHub /.auth/login/github

Par exemple, pour vous connecter avec GitHub, vous pouvez inclure le lien suivant.

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

Si vous choisissez de prendre en charge plusieurs fournisseurs, exposez pour chacun un lien qui lui est propre sur votre site web. Utilisez une règle d’acheminement pour mettre en correspondance un fournisseur par défaut avec un itinéraire convivial comme /login.

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

Configuration de la redirection après la connexion

Renvoyez un utilisateur sur une page spécifique après connexion en indiquant une URL complète dans le paramètre de chaîne de requête post_login_redirect_uri (cf. exemple suivant).

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

Vous pouvez également rediriger les utilisateurs non authentifiés sur la page de référence après leur connexion. Pour configurer ce comportement, créez une règle de remplacement de réponse qui définit post_login_redirect_uri sur .referrer (cf. exemple suivant).

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

Configurer la déconnexion

L’itinéraire /.auth/logout déconnecte les utilisateurs du site web. Vous pouvez ajouter un lien vers la navigation de votre site pour permettre à l’utilisateur de se déconnecter (cf. exemple suivant).

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

Utilisez une règle d’acheminement pour faire correspondre un itinéraire convivial comme /logout.

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

Configuration de la redirection après la déconnexion

Pour renvoyer un utilisateur sur une page spécifique après déconnexion, indiquez une URL dans le paramètre de chaîne de requête post_logout_redirect_uri.

Bloquer un fournisseur d’authentification

Vous pouvez si vous le souhaitez empêcher votre application d’utiliser un fournisseur d’authentification, car tous les fournisseurs d’authentification sont activés. Par exemple, votre application peut choisir de n’utiliser que les fournisseurs qui exposent les adresses e-mail.

Pour bloquer un fournisseur, vous pouvez créer des règles d’acheminement pour retourner un code d’état 404 pour les demandes d’itinéraire bloqué spécifique au fournisseur. Par exemple, pour restreindre Twitter en tant que fournisseur, ajoutez la règle d’acheminement suivante.

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

Supprimer des données personnelles

Lorsque vous accordez votre consentement à une application en tant qu’utilisateur final, l’application a accès à votre adresse e-mail ou à votre nom d’utilisateur, selon le fournisseur d’identité utilisé. Une fois ces informations fournies, c’est le propriétaire de l’application qui décide comment traiter les données personnelles.

Les utilisateurs finaux doivent contacter l’administrateur de chaque application web pour révoquer ces informations dans leurs systèmes.

Pour supprimer les données personnelles de la plateforme Azure Static Web Apps et l’empêcher de fournir ces informations lors de demandes ultérieures, envoyez une demande à l’aide de l’URL suivante :

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

Pour empêcher la plateforme de fournir ces informations dans le cadre de demandes ultérieures envoyées aux applications, envoyez une demande à l’aide de l’URL suivante :

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

Si vous utilisez l’ID Microsoft Entra, utilisez aad la valeur de l’espace <AUTHENTICATION_PROVIDER_NAME> réservé.

Conseil

Pour plus d’informations sur les restrictions et limitations générales, consultez Quotas.

Étapes suivantes