Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Anonym datatilgang lar en Fabric-app eksponere utvalgte dataoperasjoner for brukere som ikke er logget inn. Du kontrollerer denne tilgangen på Fabric-leietakernivå og i hver datamodell. Anonym tilgang er et autorisasjonsalternativ, ikke en erstatning for autentisering. Den samme appen kan gi offentlig tilgang til noen enheter, samtidig som den krever at brukere logger inn for andre enheter eller operasjoner.
Viktig!
Alle som kan få tilgang til app-URL-en kan bruke operasjonene som er tildelt rollen anonymous . Ikke eksponer personlige, konfidensielle, finansielle eller interne forretningsdata gjennom denne rollen.
Brukstilfeller
Vurder anonym datatilgang når en app må tilby begrenset funksjonalitet uten påloggingskrav.
| Scenario | Eksempeltilgang | Anbefalt omfang |
|---|---|---|
| Offentlige referansedata | Se produktkataloger, tidsplaner eller offentlige datasett | read |
| Innsamling av tilbakemeldinger | Send inn kommentarer eller svar på undersøkelser | create |
Anonym tilgang er ikke passende når en app må identifisere brukeren, håndheve eierskap eller gi tilgang basert på identitetskrav. Bruk autentiserte roller for disse situasjonene.
Hvordan anonym tilgang fungerer
Anonym datatilgang bruker uavhengige kontroller:
- Leietakerinnstilling: En Fabric-leietakeradministrator gir anonym datatilgang til organisasjonen eller utvalgte sikkerhetsgrupper.
-
Datamodellrolle: En enhet bruker
anonymousrollen til å definere operasjonene som ikke-autentiserte brukere kan utføre.
Leietakerinnstillingen er den organisasjonsomfattende grensen. App-innstillingen tillater anonyme forespørsler å nå appens datatjeneste. Entitetsrollen bestemmer hvilke data og operasjoner disse forespørslene kan få tilgang til. Å aktivere bare én eller to av disse kontrollene gir ikke anonym tilgang.
Aktiver leietakerinnstillingen
En Fabric-tenant-administrator må aktivere anonym datatilgang før apputviklere kan bruke den. Innstillingen er deaktivert som standard.
Logg inn på Fabric admin-portalen.
Velg Leierinnstillinger.
Under Fabric-apper (forhåndsvisning), finn anonym datatilgang.
Angi veksleknappen til Aktivert.
Bruk innstillingene på hele organisasjonen eller på spesifikke sikkerhetsgrupper.
Velg Apply.
Endringer kan ta noen minutter før de trer i kraft. Når du begrenser innstillingen til sikkerhetsgrupper, bekreft at apputvikleren eller app-eieren er inkludert i en tillatt gruppe.
Definer anonym tilgang i en datamodell
Bruk dekoratøren @role på en enhet og spesifiser anonymous som rollenavn. Det andre argumentet definerer de tillatte dataoperasjonene: create, , read, update, eller delete.
Parametre
| Parameteren | Type | Beskrivelse |
|---|---|---|
roleName |
string |
Rollenavnet, som for eksempel authenticated en egendefinert applikasjonsrolle |
actions |
string \| string[] |
Enkelthandling eller array: create, read, update, , delete, eller * for alle |
options |
object |
Valgfritt objekt med check, include, og exclude egenskaper |
Følgende eksempel lar uautentiserte brukere lese offentlige kunngjøringer:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
export class Announcement {
@uuid() id!: string;
@text() title!: string;
@text() content!: string;
}
Rollen anonymous bruker ikke identitetskrav fordi ingen innlogget identitet er tilgjengelig. Definer det smaleste settet av operasjoner som støtter ditt scenario.
La brukere sende inn data
For et tilbakemeldingsskjema, gi create tilgang uten å gi read, update, eller delete tilgang:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'create')
export class Feedback {
@uuid() id!: string;
@text() comment!: string;
}
Denne modellen lar brukere sende inn tilbakemeldinger, men den lar dem ikke se eller endre innsendte oppføringer.
Tillat flere operasjoner
Send et array når et scenario krever mer enn én operasjon:
import { boolean, entity, role, text, uuid } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', ['create', 'read', 'update'])
export class SharedTodo {
@uuid() id!: string;
@text() title!: string;
@boolean({ default: false }) completed!: boolean;
}
Alle med tilgang til denne appen kan opprette, se og oppdatere alle delte oppgaver. De kan ikke slette oppgaver fordi delete det ikke er inkludert. Bruk brede tillatelser som disse kun for offentlige eller midlertidige data der brukere forventes å dele tilgang.
Kombiner anonyme og autentiserte roller
Bruk begge rollene på en enhet når offentlige og innloggede brukere krever forskjellige tillatelser. For eksempel kan hvem som helst lese et blogginnlegg, men bare eieren som er innlogget kan endre det:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
@role('authenticated', ['create', 'update', 'delete'], {
policy: (claims, item) => claims.sub.eq(item.createdBy),
})
export class BlogPost {
@uuid() id!: string;
@text() title!: string;
@text() content!: string;
@text() createdBy!: string;
}
Den anonyme rollen tillater offentlig lesning uten å vurdere identitetskrav. Den autentiserte rollen bruker den innloggede brukerens krav for å begrense endringer til innhold brukeren eier.
Sikkerhetsveiledning
- Gi minimumstilgangen som kreves. Foretrekk
readellercreatealene. Gi til,updateellerdeletebare når den offentlige arbeidsflyten krever det. - Begrens eksponerte felt. Bruk
includeellerexcludealternativer for å forhindre tilgang til felt som anonyme brukere ikke trenger. For mer informasjon, se Definer datatillatelser. - Ikke stol på appens brukergrensesnitt for beskyttelse. Tillatelser må defineres i datamodellen fordi callere kan sende forespørsler uten å bruke frontend-en din.
- Planlegg for upålitelig input. Valider innsendte data og design offentlige skriveoperasjoner for spam, automatisering og uventet trafikk.
- Test nektet operasjoner. Bekreft at operasjoner som er utelatt fra rollen avvises for brukere uten sesjon.
Deaktiver anonym tilgang
For å fjerne offentlig tilgang fra en app:
- Fjern
anonymousrollen fra hver datamodell. - Distribuer appen på nytt ved å kjøre
npx rayfin up.
En leietakeradministrator kan også deaktivere leietakerinnstillingen for å blokkere anonym datatilgang for alle apper innenfor en leietaker og begrense tilgangen til utvalgte sikkerhetsgrupper.