Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anonym dataåtkomst gör det möjligt för en Fabric-app att exponera utvalda dataoperationer för användare som inte är inloggade. Du kontrollerar denna åtkomst på Fabric-tenant-nivå och i varje datamodell. Anonym åtkomst är ett auktorisationsalternativ, inte en ersättning för autentisering. Samma app kan ge offentlig tillgång till vissa enheter samtidigt som användare måste logga in för andra enheter eller operationer.
Important
Alla som kan nå appens URL kan använda de operationer som tilldelats anonymous rollen. Exponera inte personlig, konfidentiell, finansiell eller intern affärsdata genom denna roll.
Användningsfall
Tänk på anonym dataåtkomst när en app måste erbjuda begränsad funktionalitet utan inloggningskrav.
| Scenario | Exempelåtkomst | Rekommenderat omfång |
|---|---|---|
| Offentliga referensdata | Visa produktkataloger, scheman eller publika datamängder | read |
| Återkopplingssamling | Skicka in kommentarer eller svar på enkäter | create |
Anonym åtkomst är inte lämplig när en app måste identifiera användaren, upprätthålla äganderätt eller ge tillgång baserat på identitetsanspråk. Använd autentiserade roller för dessa scenarier.
Hur anonym åtkomst fungerar
Anonym dataåtkomst använder oberoende kontroller:
- Hyresgästinställning: En Fabric-tenantadministratör ger anonym dataåtkomst för organisationen eller utvalda säkerhetsgrupper.
-
Datamodellroll: En entitet använder
anonymousrollen för att definiera de operationer som icke-autentiserade användare kan utföra.
Hyresgästinställningen är den övergripande gränsen för organisationen. Appinställningen tillåter anonyma förfrågningar att nå appens datatjänst. Entitetsrollen avgör vilken data och vilka operationer dessa förfrågningar kan nå. Att aktivera endast en eller två av dessa kontroller ger inte anonym åtkomst.
Aktivera hyresgästinställningen
En Fabric-tenantadministratör måste aktivera anonym dataåtkomst innan apputvecklare kan använda den. Inställningen är inaktiverad som standard.
Logga in på administratörsportalen Fabric.
Välj Hyresgästinställningar.
Under Fabric-appar (förhandsvisning), hitta anonym dataåtkomst.
Ange växlingsknappen till Aktiverad.
Applicera inställningen på hela organisationen eller på specifika säkerhetsgrupper.
Välj Använd.
Förändringarna kan ta några minuter innan de träder i kraft. När du begränsar inställningen till säkerhetsgrupper, bekräfta att apputvecklaren eller appägaren ingår i en tillåten grupp.
Definiera anonym åtkomst i en datamodell
Använd dekoratören @role på en entitet och ange anonymous som rollnamn. Det andra argumentet definierar de tillåtna dataoperationerna: create, , read, update, eller delete.
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
roleName |
string |
Rollnamnet, till exempel authenticated eller en anpassad programroll |
actions |
string \| string[] |
Enskild åtgärd eller matris: create, read, update, deleteeller * för alla |
options |
object |
Valfritt objekt med check, includeoch exclude egenskaper |
Följande exempel tillåter oautentiserade användare att läsa offentliga meddelanden:
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 använder inte identitetsanspråk eftersom ingen inloggad identitet finns tillgänglig. Definiera den smataste uppsättningen operationer som stöder ditt scenario.
Tillåt användare att skicka in data
För ett feedbackformulär, ge create tillgång utan att ge read, update, eller delete tillgång:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'create')
export class Feedback {
@uuid() id!: string;
@text() comment!: string;
}
Denna modell låter användare lämna in feedback, men den tillåter dem inte att se eller ändra inskickade poster.
Tillåt flera operationer
Skicka en array när ett scenario kräver mer än en 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;
}
Alla med tillgång till denna app kan skapa, se och uppdatera varje delad att-göra-uppgift. De kan inte radera att-göra-uppgifter eftersom delete det inte är inkluderat. Använd breda behörigheter som dessa endast för offentliga eller tillfälliga data där användare förväntas dela åtkomst.
Kombinera anonyma och autentiserade roller
Tillämpa båda rollerna på en enhet när publika och inloggade användare kräver olika behörigheter. Till exempel kan vem som helst läsa ett blogginlägg, men endast dess inloggade ägare kan ändra 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 anonyma rollen tillåter offentliga läsningar utan att utvärdera identitetsanspråk. Den autentiserade rollen använder den inloggade användarens anspråk för att begränsa ändringar till innehåll som användaren äger.
Säkerhetsvägledning
- Ge den minsta åtkomst som krävs. Föredrar
readellercreateensam. Beviljaupdateellerdeletebara när det offentliga arbetsflödet kräver det. - Begränsa exponerade fält. Använd
includeellerexcludealternativ för att förhindra åtkomst till fält som anonyma användare inte behöver. För mer information, se Definiera databehörigheter. - Lita inte på appens gränssnitt för skydd. Behörigheter måste definieras i datamodellen eftersom anropare kan skicka förfrågningar utan att använda ditt frontend.
- Planera för opålitlig input. Validera inskickad data och utforma offentliga skrivoperationer för spam, automatisering och oväntad trafik.
- Testet nekades operation. Bekräfta att operationer som utelämnats från rollen avvisas för användare utan session.
Inaktivera anonym åtkomst
För att ta bort offentlig åtkomst från en app:
- Ta bort
anonymousrollen från varje datamodell. - Distribuera om appen genom att köra
npx rayfin up.
En hyresgästadministratör kan också inaktivera hyresgästinställningen för att blockera anonym dataåtkomst för alla appar inom en hyresgäst och begränsa åtkomsten till utvalda säkerhetsgrupper.