Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Anonym dataadgang gør det muligt for en Fabric-app at eksponere udvalgte dataoperationer for brugere, der ikke er logget ind. Du kontrollerer denne adgang på Fabric-lejerniveau og i hver datamodel. Anonym adgang er en autorisationsmulighed, ikke en erstatning for autentificering. Den samme app kan give offentlig adgang til nogle enheder, samtidig med at brugeren skal logge ind for andre enheder eller operationer.
Vigtigt!
Alle, der kan få adgang til appens URL, kan bruge de operationer, der er tildelt rollen anonymous . Udsæt ikke personlige, fortrolige, finansielle eller interne forretningsdata gennem denne rolle.
Brugseksempler
Overvej anonym dataadgang, når en app skal levere begrænset funktionalitet uden krav om login.
| scenarie | Eksempel på adgang | Anbefalet omfang |
|---|---|---|
| Offentlige referencedata | Se produktkataloger, tidsplaner eller offentlige datasæt | read |
| Feedback-indsamling | Indsend kommentarer eller svar på spørgeskemaet | create |
Anonym adgang er ikke passende, når en app skal identificere brugeren, håndhæve ejerskab eller give adgang baseret på identitetskrav. Brug autentificerede roller til de scenarier.
Sådan fungerer anonym adgang
Anonym dataadgang bruger uafhængige kontroller:
- Lejerindstilling: En Fabric-lejeradministrator giver anonym dataadgang til organisationen eller udvalgte sikkerhedsgrupper.
-
Datamodelrolle: En enhed bruger
anonymousrollen til at definere de operationer, som ikke-autentificerede brugere kan udføre.
Lejerindstillingen er den organisationsdækkende grænse. App-indstillingen tillader anonyme anmodninger at nå appens datatjeneste. Entitetsrollen bestemmer, hvilke data og operationer disse anmodninger kan få adgang til. At aktivere kun en eller to af disse kontroller giver ikke anonym adgang.
Aktivér lejerindstillingen
En Fabric-lejeradministrator skal aktivere anonym dataadgang, før app-udviklere kan bruge den. Indstillingen er deaktiveret som standard.
Log ind på Fabric admin-portalen.
Vælg Lejerindstillinger.
Under Fabric-apps (forhåndsvisning) finder du anonym dataadgang.
Angiv til/fra-knappen til Aktiveret.
Anvend indstillingen på hele organisationen eller på specifikke sikkerhedsgrupper.
Vælg Anvend.
Ændringer kan tage et par minutter at træde i kraft. Når du begrænser indstillingen til sikkerhedsgrupper, skal du bekræfte, at app-udvikleren eller app-ejeren er inkluderet i en tilladt gruppe.
Definér anonym adgang i en datamodel
Brug dekoratoren @role på en enhed og angiv anonymous rollen som navn. Det andet argument definerer de tilladte dataoperationer: create, , read, update, eller delete.
Parametre
| Parameter | Type | Beskrivelse |
|---|---|---|
roleName |
string |
Rollenavnet, såsom authenticated eller en tilpasset applikationsrolle |
actions |
string \| string[] |
Enkelt handling eller array: create, read, , update, delete, eller * for alle |
options |
object |
Valgfrit objekt med check, include, og exclude egenskaber |
Følgende eksempel tillader ikke-autentificerede brugere at læse offentlige meddelelser:
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 bruger ikke identitetskrav, fordi der ikke er nogen indskrevet identitet tilgængelig. Definér det snævreste sæt operationer, der understøtter dit scenarie.
Tillad brugere at indsende data
For en feedbackformular, giv create adgang uden at give read, update, eller delete adgang:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'create')
export class Feedback {
@uuid() id!: string;
@text() comment!: string;
}
Denne model lader brugere indsende feedback, men den lader dem ikke se eller ændre indsendte indlæg.
Tillad flere operationer
Lad et array passere, når et scenarie kræver mere end én operation:
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 adgang til denne app kan oprette, se og opdatere alle fælles to-do-filer. De kan ikke slette to-do'er, fordi delete det ikke er inkluderet. Brug brede tilladelser som disse kun for offentlige eller midlertidige data, hvor brugere forventes at dele adgang.
Kombiner anonyme og autentificerede roller
Anvend begge roller til en enhed, når offentlige og indloggede brugere kræver forskellige tilladelser. For eksempel kan alle læse et blogindlæg, men kun dets indloggede ejer kan ændre 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 rolle tillader offentlige læsninger uden at vurdere identitetskrav. Den autentificerede rolle bruger den indloggede brugers krav til at begrænse ændringer til indhold, som brugeren ejer.
Sikkerhedsvejledning
- Giv den nødvendige minimumsadgang. Foretrækker
readellercreatealene. Giv tilskudupdateellerdeletekun når den offentlige arbejdsgang kræver det. - Begræns eksponerede felter. Brug
includeellerexcludemuligheder for at forhindre adgang til felter, som anonyme brugere ikke har brug for. For mere information, se Definér datatilladelser. - Stol ikke på appens brugerflade for beskyttelse. Tilladelser skal defineres i datamodellen, fordi kaldere kan sende forespørgsler uden at bruge din frontend.
- Planlæg for ubetroede input. Valider indsendte data og design offentlige skriveoperationer for spam, automatisering og uventet trafik.
- Test nægtede operationer. Bekræft, at operationer, der er udeladt fra rollen, afvises for brugere uden session.
Deaktiver anonym adgang
For at fjerne offentlig adgang fra en app:
- Fjern
anonymousrollen fra hver datamodel. - Udrul appen igen ved at køre
npx rayfin up.
En lejeradministrator kan også deaktivere lejerindstillingen for at blokere anonym dataadgang for alle apps inden for en lejer og begrænse adgangen til udvalgte sikkerhedsgrupper.