Autentificering for Fabric-apps

Fabric Apps inkluderer en indbygget autentificeringstjeneste, der logger brugere ind, administrerer deres sessioner og knytter deres identitet til hvert data- og lagringsopkald, din app foretager. Denne artikel forklarer de koncepter, du skal forstå, før du konfigurerer autentificering til dit projekt.

For implementeringsdetaljer, se:

Godkendelsestilstande

Deployerede Fabric-apps autentificerer med Microsoft Entra ID. Vælg integrationsstien baseret på, hvor appen kører, og hvem der erhverver Entra-tokenet:

Miljø Understøttet metode Hvornår skal du bruge den?
Browser-app ved brug af Fabric-portalen Fabric SSO popup eller indlejret handoff Lad Fabric udføre interaktiv login, eller log ind i en app indlejret i Fabric.
Browser eller Node.js app, der allerede har en delegeret Entra-token signInWithEntraToken() Exchange det medfølgende token for en Rayfin-session uden en popup eller omdirigering.
App indlejret i en ekstern moderportal createEmbedHost() i forældregruppen og initEmbeddedAuth() i i-rammen Lad en betroet Entra-autentificeret moderselskabsmægler en overdragelse uden at sende sin token til iframe.
Lokal udvikling med en lokal backend E-mail og adgangskode Test mod en lokal backend; denne metode virker ikke på en deployed Fabric backend.

Nøglebegreber:

  • Fabric SSO bruger Fabric-portalen til at autentificere en browserbruger. Appen kan køre inde i Fabric eller bruge en popup fra en selvstændig side, inklusive en lokal frontend, der målretter en deployeret backend.
  • Direkte Entra-udveksling og ekstern forældre-host handoff er yderligere Microsoft Entra-stier, ikke understøttelse af vilkårlige identitetsudbydere eller app-only service principal-login.
  • E-mail og adgangskode er kun beregnet til lokal udvikling. Den fungerer ikke efter udrulning.
  • Første gang login giver brugeren adgang. Med Fabric SSO er der ikke noget separat tilmeldingstrin – brugerne oprettes automatisk første gang, de logger ind.
  • Autentificering er påkrævet for Fabric-implementeringer. At sætte services.auth.enabled til false årsager npx rayfin up til at fejle.

For tokenkrav og implementeringseksempler, se Direct Entra token sign-in og Embed in a external parent portal.

Sessioner og identitet

Efter en bruger har logget ind, opretter SDK'en en session , der repræsenterer den indloggede bruger. Sessioner er uigennemsigtige—din app bør ikke inspicere de underliggende tokens. I stedet læser din app et lille sæt overordnede egenskaber:

  • Om en session aktuelt er autentificeret.
  • Brugerens id og email.
  • Brugerdefinerede krav om, at du har konfigureret i rayfin.yml.

Den samme klientinstans, der logger brugeren ind, knytter automatisk deres identitet til hvert data- og lagringskald. Du sender ikke tokens rundt manuelt.

Sessioner skaber også ændringsbegivenheder, så dit brugerflade kan reagere, når en bruger logger ind eller ud, uden at genindlæse siden.

For serverside-integrationer skal man bruge en separat klient- og hukommelses-only Auth session pr. bruger (authStorage: false på RayfinClient, eller { storage: false } på Auth). Del aldrig en foranderlig logget klient mellem brugere. Ødelæg autentificeringsinstansen, når dens anmodning eller brugerspecifikke scope slutter.

Aktiver autentificering i dit projekt

Autentificering konfigureres i rayfin/rayfin.yml. Følgende eksempel muliggør både Fabric SSO (for deployerede apps) og e-mail/adgangskode-login (til lokal udvikling):

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

Hvad hver indstilling styrer:

  • services.auth.enabled – Tænder autentificeringstjenesten. Påkrævet ved enhver Fabric-udsendelse.
  • allowedRedirectUris – De oprindelser, der må modtage brugeren efter login. Tilføj din lokale udvikler-URL her. npx rayfin up Tilføjer automatisk den deployerede app-oprindelse.
  • fabric.enabled – Aktiverer Fabric SSO. Påkrævet for deployerede apps.
  • fabric.externalEntraExchange – Muliggør direkte delegeret entra-tokenudveksling og overdragelse af eksterne forældreværter. Det målrettede Fabric-miljø skal også understøtte udvekslingen.
  • password.enabled – Muliggør e-mail og adgangskode-login til lokal udvikling.

Vigtig

Fabric-udrulninger kræver, at autentificering er aktiveret. npx rayfin up fejler når services.auth.enabled er sat til false.

Efter redigering rayfin.ymlgenstart den lokale backend eller kør npx rayfin up for at anvende ændringen.

Forudsætninger for eksternt erhvervede Entra-tokens

Direkte udveksling og autentificering af ekstern forældrevært kræver en delegeret brugertoken for Fabric/Power BI-målgruppen, som accepteres af målimplementeringen, med Item.Execute.All, udstedt i enhedens ejerlejer. Brugeren skal også have Execute-tilladelse på app-elementet. App-only tokens understøttes ikke af disse login-stier.

Dit identitetsbibliotek erhverver tokenet og håndterer samtykket. Rayfin SDK'en bytter den til en Rayfin-session; den erhverver ikke Entra-tokenet. Browseropkald har også brug for tjenestens CORS-politik for at tillade oprindelses- og autorisationsheaderen.

Toldkrav

Brugerdefinerede krav lader dig vedhæfte applikationsspecifikke metadata til hver session—for eksempel et lejernavn, et funktionsflag eller en app-version. De er nyttige til rollebaseret adgangskontrol og feature gating uden at ændre din datamodel.

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

Brugerdefinerede krav vises inde i sessionsobjektet og kan refereres fra dine datatilladelsesregler.

Hvad SDK'en tilbyder

Når du bruger RayfinClient, er autentificeringstjenesten tilgængelig på client.auth. På et konceptuelt niveau giver det:

  • Tilmeld dig og log ind med e-mail og adgangskode under lokal udvikling.
  • Login og tilmelding gennem Fabric SSO for deployerede apps. Det samme opkald håndterer både nye og tilbagevendende brugere.
  • Direkte delegeret entra-tokenudveksling i browser- eller Node.js-kode samt en betroet ekstern forældre-host overlevering for indlejrede apps.
  • Log ud for at afslutte den nuværende session.
  • Sessionlæsninger og abonnementer , så dit UI forbliver synkroniseret med brugerens autentificeringstilstand.

For koden, der forbinder disse funktioner til en rigtig app, se Configure Fabric SSO-autentificering for din Fabric-app. For vejledning i callback og handoff-tilladelseslister, se Konfigurer autentificeringsomdirigerings-URI'er.