Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Met anonieme gegevenstoegang kan een Fabric-app geselecteerde gegevensbewerkingen beschikbaar maken voor gebruikers die niet zijn ingelogd. Je beheert deze toegang op het niveau van de Fabric-tenant en in elk datamodel. Anonieme toegang is een autorisatieoptie, geen vervanging voor authenticatie. Dezelfde app kan publieke toegang bieden aan sommige entiteiten, terwijl gebruikers moeten inloggen voor andere entiteiten of operaties.
Important
Iedereen die de app-URL kan bereiken, kan de aan de anonymous rol toegewezen bewerkingen gebruiken. Maak via deze functie geen persoonlijke, vertrouwelijke, financiële of interne bedrijfsgegevens bekend.
Gebruikssituaties
Overweeg anonieme gegevenstoegang wanneer een app beperkte functionaliteit moet bieden zonder aanmeldingsvereiste.
| Scenario | Voorbeeldtoegang | Aanbevolen bereik |
|---|---|---|
| Openbare referentiegegevens | Bekijk productcatalogi, schema's of openbare datasets | read |
| Feedbackverzameling | Dien opmerkingen of enquête-reacties in | create |
Anonieme toegang is niet geschikt wanneer een app de gebruiker moet identificeren, eigendom moet afdwingen of toegang moet bieden op basis van identiteitsclaims. Gebruik geauthenticeerde rollen voor die scenario's.
Hoe anonieme toegang werkt
Anonieme gegevenstoegang maakt gebruik van onafhankelijke controles:
- Tenantinstelling: Een Fabric-tenantbeheerder verleent anonieme gegevenstoegang voor de organisatie of geselecteerde beveiligingsgroepen.
-
Datamodelrol: Een entiteit gebruikt de
anonymousrol om de bewerkingen te definiëren die niet-geauthenticeerde gebruikers kunnen uitvoeren.
De tenantinstelling is de organisatiebrede grens. De app-instelling maakt het mogelijk dat anonieme verzoeken de datadienst van de app bereiken. De entiteitsrol bepaalt tot welke data en bewerkingen die verzoeken toegang hebben. Het inschakelen van slechts één of twee van deze controles geeft geen anonieme toegang.
Schakel de tenant-instelling in
Een Fabric-tenantbeheerder moet anonieme data-toegang mogelijk maken voordat app-ontwikkelaars er gebruik van kunnen maken. De instelling is standaard uitgeschakeld.
Meld u aan bij de Fabric-beheerportal.
Selecteer Tenant-instellingen.
Onder Fabric-apps (preview) vind je Anonieme gegevenstoegang.
Stel de schakelaar in op Ingeschakeld.
Pas de instelling toe op de hele organisatie of op specifieke beveiligingsgroepen.
Selecteer Toepassen.
Wijzigingen kunnen een paar minuten duren voordat ze van kracht worden. Wanneer je de instelling beperkt tot beveiligingsgroepen, bevestig dan dat de appontwikkelaar of app-eigenaar in een toegestane groep zit.
Definieer anonieme toegang in een datamodel
Gebruik de @role decorator op een entiteit en specificeer anonymous als de rolnaam. Het tweede argument definieert de toegestane data-operaties: create, , read, update, of delete.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
roleName |
string |
De rolnaam, zoals authenticated of een aangepaste toepassingsrol |
actions |
string \| string[] |
Eén actie of matrix: create, read, update, of delete* voor alle |
options |
object |
Optioneel object met check, includeen exclude eigenschappen |
Het volgende voorbeeld stelt niet-geauthenticeerde gebruikers in staat om openbare aankondigingen te lezen:
Voeg deze entiteiten toe aan de dataservice die in rayfin/rayfin.ymlis geconfigureerd. In de standaard Universele App schakel Data in en gebruik packages/data/src/, met overeenkomstige contracten in packages/shared/src/. Een flat template kan in plaats daarvan worden gebruikt rayfin/data/ . Zie Gegevensmodellen definiëren.
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'read')
export class Announcement {
@uuid() id!: string;
@text({ max: 200 }) title!: string;
@text({ max: 4000 }) content!: string;
}
De anonymous functie gebruikt geen identiteitsclaims omdat er geen ingelogde identiteit beschikbaar is. Definieer de smalste set bewerkingen die jouw scenario ondersteunen.
Gebruikers toestaan gegevens in te dienen
Voor een feedbackformulier verleen create toegang zonder read, update of delete toegang te verlenen:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'create')
export class Feedback {
@uuid() id!: string;
@text({ max: 2000 }) comment!: string;
}
Dit model laat gebruikers feedback geven, maar het laat ze geen ingediende inzendingen bekijken of wijzigen.
Sta meerdere bewerkingen toe
Geef een array door wanneer een scenario meer dan één bewerking vereist:
import { boolean, entity, role, text, uuid } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', ['create', 'read', 'update'])
export class SharedTodo {
@uuid() id!: string;
@text({ max: 200 }) title!: string;
@boolean({ default: false }) completed!: boolean;
}
Iedereen met toegang tot deze app kan elke gedeelde todo aanmaken, bekijken en bijwerken. Ze kunnen taken niet verwijderen omdat delete niet is opgenomen. Gebruik brede permissies zoals deze alleen voor openbare of tijdelijke data waar gebruikers geacht worden toegang te delen.
Combineer anonieme en geauthenticeerde rollen
Pas beide rollen toe op een entiteit wanneer publieke en ingelogde gebruikers verschillende rechten nodig hebben. Iedereen kan bijvoorbeeld een blogpost lezen, maar alleen de ingelogde eigenaar kan deze wijzigen:
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({ max: 200 }) title!: string;
@text({ max: 4000 }) content!: string;
@text({ max: 255 }) createdBy!: string;
}
De anonieme rol staat openbare leesbewerkingen toe zonder identiteitsclaims te evalueren. De geauthenticeerde rol gebruikt de claims van de ingelogde gebruiker om wijzigingen te beperken tot inhoud die de gebruiker bezit.
Beveiligingsrichtlijnen
- Geef de minimaal vereiste toegang. Geef de voorkeur aan alleen
readofcreate. Verleenupdateofdeletealleen wanneer de publieke workflow dat vereist. - Beperk de zichtbare velden. Gebruik de opties
includeofexcludeom te voorkomen dat anonieme gebruikers toegang krijgen tot velden die ze niet nodig hebben. Voor meer informatie raadpleeg Gegevensmachtigingen definiëren. - Vertrouw niet op de app-UI voor bescherming. Rechten moeten worden gedefinieerd in het datamodel omdat callers verzoeken kunnen sturen zonder je frontend te gebruiken.
- Plan voor onbetrouwbare input. Valideer ingediende data en controleer openbare schrijfbewerkingen op spam, automatisering en onverwacht verkeer.
- Geweigerde bewerkingen testen Bevestig dat bewerkingen die uit de rol zijn weggelaten worden geweigerd voor gebruikers zonder sessie.
Schakel anonieme toegang uit
Om de publieke toegang van een app te verwijderen:
- Verwijder de
anonymousrol uit elk datamodel. - Deploy de app opnieuw door
npx rayfin upuit te voeren.
Een tenantbeheerder kan ook de tenant-instelling uitschakelen om anonieme data-toegang voor alle apps binnen een tenant te blokkeren en de toegang te beperken tot geselecteerde beveiligingsgroepen.