Authentification pour les applications Fabric

Fabric Apps inclut un service d’authentification intégré qui connecte les utilisateurs, gère leurs sessions et attache leur identité à chaque appel de données et de stockage que votre application effectue. Cet article explique les concepts à comprendre avant de configurer l’authentification pour votre projet.

Pour plus d’informations sur l’implémentation, consultez :

Modes d’authentification

Fabric Apps prend en charge deux méthodes d’authentification. La méthode que vous utilisez dépend de l’emplacement d’exécution de l’application :

Environnement Méthode prise en charge Quand l′utiliser ?
Développement local E-mail et mot de passe Itérer rapidement sans dépendre du portail Fabric.
Déployé sur Fabric Fabric SSO (Microsoft Entra ID) Connexion de production pour tout utilisateur ayant accès à votre espace de travail Fabric.

Concepts clés :

  • Fabric SSO permet à l’utilisateur de se connecter via le portail Fabric à l’aide de son identité Microsoft Entra ID existante. Il fonctionne uniquement lorsque l'application est ouverte à partir de Fabric, de sorte que vous ne pouvez pas l'utiliser pendant le développement local.
  • Le courrier électronique et le mot de passe sont destinés au développement local uniquement. Elle ne fonctionne pas après le déploiement.
  • La connexion à la première fois approvisionne l’utilisateur. Avec Fabric authentification unique, il n'existe aucune étape d'inscription distincte : les utilisateurs sont créés automatiquement la première fois qu'ils se connectent.
  • L’authentification est requise pour les déploiements Fabric. Définir services.auth.enabled sur false entraîne l’échec de npx rayfin up.

Sessions et identité

Une fois qu’un utilisateur se connecte, le Kit de développement logiciel (SDK) crée une session qui représente l’utilisateur connecté. Les sessions sont opaques : votre application ne doit pas inspecter les jetons sous-jacents. Au lieu de cela, votre application lit un petit ensemble de propriétés de haut niveau :

  • Indique si une session est actuellement authentifiée.
  • L’utilisateur id et email.
  • Les revendications personnalisées que vous avez configurées dans rayfin.yml.

La même instance cliente qui connecte automatiquement l’utilisateur associe également son identité à chaque appel aux services de données et de stockage. Vous ne transmettez pas de jetons manuellement.

Les sessions déclenchent également des événements de modification, ce qui permet à votre interface utilisateur de réagir lorsqu’un utilisateur se connecte ou se déconnecte sans recharger la page.

Activer l’authentification dans votre projet

L’authentification est configurée dans rayfin/rayfin.yml. L’exemple suivant active l’authentification unique Fabric (pour les applications déployées) et la connexion par e-mail/mot de passe (pour le développement local) :

services:
  auth:
    enabled: true
    allowedRedirectUris:
      - http://localhost:5173
    fabric:
      enabled: true
    password:
      enabled: true  # Local development only

Ce que contrôle chaque paramètre :

  • services.auth.enabled : active le service d’authentification. Obligatoire pour tout déploiement Fabric.
  • allowedRedirectUris : origines autorisées à recevoir l’utilisateur après la connexion. Ajoutez ici votre URL de développement locale. npx rayfin up ajoute automatiquement l’origine de l’application déployée.
  • fabric.enabled : active l’authentification unique Fabric. Obligatoire pour les applications déployées.
  • password.enabled : active la connexion par e-mail et mot de passe pour le développement local.

Important

Les déploiements Fabric nécessitent que l’authentification soit activée. npx rayfin up échoue quand services.auth.enabled est défini sur false.

Après modification rayfin.yml, redémarrez le back-end local ou exécutez-le npx rayfin up pour appliquer la modification.

Revendications personnalisées

Les revendications personnalisées vous permettent d’attacher des métadonnées spécifiques à l’application à chaque session, par exemple, un nom de locataire, un indicateur de fonctionnalité ou une version d’application. Ils sont utiles pour le contrôle d’accès basé sur les rôles et l’activation sélective de fonctionnalités, sans modifier votre modèle de données.

services:
  auth:
    enabled: true
    customClaims:
      tenant: default
      app_version: 1.0.0

Les revendications personnalisées apparaissent à l’intérieur de l’objet de session et peuvent être référencées à partir de vos règles d’autorisation de données.

Ce que fournit le Kit de développement logiciel (SDK)

Lorsque vous utilisez le RayfinClient, le service d’authentification est disponible sur client.auth. Au niveau conceptuel, il fournit les éléments suivants :

  • Inscrivez-vous et connectez-vous avec un e-mail et un mot de passe pendant le développement local.
  • Connexion et inscription via l’authentification unique Fabric pour les applications déployées. Le même appel gère les utilisateurs nouveaux et retournés.
  • Déconnectez-vous pour terminer la session active.
  • Lecture de la session et abonnements afin que votre interface utilisateur reste synchronisée avec l’état d’authentification de l’utilisateur.

Pour le code qui intègre ces éléments dans une application concrète, consultez Configurer l’authentification SSO pour votre application Fabric.