Πρόσβαση σε ανώνυμα δεδομένα σε εφαρμογές Fabric

Η ανώνυμη πρόσβαση σε δεδομένα επιτρέπει σε μια εφαρμογή Fabric να εκθέτει επιλεγμένες λειτουργίες δεδομένων σε χρήστες που δεν είναι συνδεδεμένοι. Μπορείτε να ελέγξετε αυτήν την πρόσβαση σε επίπεδο μισθωτή Fabric και σε κάθε μοντέλο δεδομένων. Η ανώνυμη πρόσβαση είναι μια επιλογή εξουσιοδότησης και όχι αντικατάσταση του ελέγχου ταυτότητας. Η ίδια εφαρμογή μπορεί να παρέχει δημόσια πρόσβαση σε ορισμένες οντότητες, ενώ απαιτεί από τους χρήστες να συνδεθούν για άλλες οντότητες ή λειτουργίες.

Σημαντικό

Οποιοσδήποτε μπορεί να φτάσει στη διεύθυνση URL της εφαρμογής μπορεί να χρησιμοποιήσει τις λειτουργίες που έχουν εκχωρηθεί στον anonymous ρόλο. Μην εκθέτετε προσωπικά, εμπιστευτικά, οικονομικά ή εσωτερικά επιχειρηματικά δεδομένα μέσω αυτού του ρόλου.

Περιπτώσεις χρήσης

Εξετάστε το ενδεχόμενο ανώνυμης πρόσβασης σε δεδομένα όταν μια εφαρμογή πρέπει να παρέχει περιορισμένη λειτουργικότητα χωρίς απαίτηση σύνδεσης.

Σενάριο Παράδειγμα πρόσβασης Συνιστώμενο πεδίο εφαρμογής
Δημόσια δεδομένα αναφοράς Προβολή καταλόγων προϊόντων, χρονοδιαγραμμάτων ή δημόσιων συνόλων δεδομένων read
Συλλογή σχολίων Υποβολή σχολίων ή απαντήσεων σε έρευνες create

Η ανώνυμη πρόσβαση δεν είναι κατάλληλη όταν μια εφαρμογή πρέπει να ταυτοποιήσει τον χρήστη, να επιβάλει την ιδιοκτησία ή να παράσχει πρόσβαση βάσει αξιώσεων ταυτότητας. Χρησιμοποιήστε ρόλους με έλεγχο ταυτότητας για αυτά τα σενάρια.

Πώς λειτουργεί η ανώνυμη πρόσβαση

Η ανώνυμη πρόσβαση σε δεδομένα χρησιμοποιεί ανεξάρτητους ελέγχους:

  1. Ρύθμιση ενοικιαστή: Ένας διαχειριστής μισθωτή Fabric εκχωρεί ανώνυμη πρόσβαση σε δεδομένα για τον οργανισμό ή επιλεγμένες ομάδες ασφαλείας.
  2. Ρόλος μοντέλου δεδομένων: Μια οντότητα χρησιμοποιεί τον anonymous ρόλο για να καθορίσει τις λειτουργίες που μπορούν να εκτελέσουν οι χρήστες χωρίς έλεγχο ταυτότητας.

Η ρύθμιση μισθωτή είναι το όριο σε ολόκληρο τον οργανισμό. Η ρύθμιση της εφαρμογής επιτρέπει σε ανώνυμα αιτήματα να φτάσουν στην υπηρεσία δεδομένων της εφαρμογής. Ο ρόλος οντότητας καθορίζει σε ποια δεδομένα και λειτουργίες μπορούν να έχουν πρόσβαση αυτές οι αιτήσεις. Η ενεργοποίηση μόνο ενός ή δύο από αυτά τα στοιχεία ελέγχου δεν εκχωρεί ανώνυμη πρόσβαση.

Ενεργοποίηση της ρύθμισης μισθωτή

Ένας διαχειριστής μισθωτή Fabric πρέπει να ενεργοποιήσει την πρόσβαση σε ανώνυμα δεδομένα για να μπορέσουν να τα χρησιμοποιήσουν οι προγραμματιστές εφαρμογών. Η ρύθμιση είναι απενεργοποιημένη από προεπιλογή.

  1. Συνδεθείτε στην πύλη διαχείρισης Fabric.

  2. Επιλέξτε Ρυθμίσεις μισθωτή.

  3. Στην περιοχή Εφαρμογές Fabric (έκδοση προεπισκόπησης), βρείτε το στοιχείο Ανώνυμη πρόσβαση σε δεδομένα.

    Στιγμιότυπο οθόνης της ρύθμισης πρόσβασης ανώνυμων δεδομένων στην πύλη διαχείρισης Fabric.

  4. Ορίστε το κουμπί εναλλαγής σε Ενεργοποιημένο.

  5. Εφαρμόστε τη ρύθμιση σε ολόκληρο τον οργανισμό ή σε συγκεκριμένες ομάδες ασφαλείας.

  6. Επιλέξτε Εφαρμογή.

Οι αλλαγές ενδέχεται να χρειαστούν μερικά λεπτά για να τεθούν σε ισχύ. Όταν περιορίζετε τη ρύθμιση σε ομάδες ασφαλείας, επιβεβαιώστε ότι ο προγραμματιστής της εφαρμογής ή ο κάτοχος της εφαρμογής περιλαμβάνεται σε μια επιτρεπόμενη ομάδα.

Ορισμός ανώνυμης πρόσβασης σε ένα μοντέλο δεδομένων

Χρησιμοποιήστε τον @role διακοσμητή σε μια οντότητα και καθορίστε anonymous ως όνομα ρόλου. Το δεύτερο όρισμα ορίζει τις επιτρεπόμενες λειτουργίες δεδομένων: create, read, update, ή delete.

Παράμετροι

Παράμετρος Τύπος Περιγραφή
roleName string Το όνομα του ρόλου, όπως authenticated ή ένας προσαρμοσμένος ρόλος εφαρμογής
actions string \| string[] Μία ενέργεια ή πίνακας: create, read, update, deleteή * για όλους
options object Προαιρετικό αντικείμενο με check, includeκαι exclude ιδιότητες

Το παρακάτω παράδειγμα επιτρέπει σε χρήστες χωρίς έλεγχο ταυτότητας να διαβάζουν δημόσιες ανακοινώσεις:

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;
}

Ο anonymous ρόλος δεν χρησιμοποιεί ισχυρισμούς ταυτότητας, επειδή δεν υπάρχει διαθέσιμη ταυτότητα εισόδου. Καθορίστε το στενότερο σύνολο λειτουργιών που υποστηρίζει το σενάριό σας.

Να επιτρέπεται στους χρήστες να υποβάλλουν δεδομένα

Για μια φόρμα σχολίων, εκχωρήστε πρόσβαση χωρίς να εκχωρήσετε createread, updateή delete πρόσβαση:

import { entity, role, uuid, text } from '@microsoft/rayfin-core';

@entity()
@role('anonymous', 'create')
export class Feedback {
  @uuid() id!: string;
  @text() comment!: string;
}

Αυτό το μοντέλο επιτρέπει στους χρήστες να υποβάλλουν σχόλια, αλλά δεν τους επιτρέπει να προβάλλουν ή να αλλάζουν τις καταχωρήσεις που έχουν υποβληθεί.

Να επιτρέπονται πολλαπλές λειτουργίες

Μεταβιβάστε έναν πίνακα όταν ένα σενάριο απαιτεί περισσότερες από μία λειτουργίες:

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;
}

Οποιοσδήποτε έχει πρόσβαση σε αυτήν την εφαρμογή μπορεί να δημιουργήσει, να προβάλει και να ενημερώσει κάθε κοινόχρηστη εργασία. Δεν μπορούν να διαγράψουν εργασίες επειδή delete δεν περιλαμβάνονται. Χρησιμοποιήστε ευρείες άδειες όπως αυτές μόνο για δημόσια ή προσωρινά δεδομένα όπου οι χρήστες αναμένεται να μοιράζονται την πρόσβαση.

Συνδυασμός ανώνυμων και πιστοποιημένων ρόλων

Εφαρμόστε και τους δύο ρόλους σε μια οντότητα όταν οι δημόσιοι και οι συνδεδεμένοι χρήστες απαιτούν διαφορετικά δικαιώματα. Για παράδειγμα, οποιοσδήποτε μπορεί να διαβάσει μια ανάρτηση ιστολογίου, αλλά μόνο ο συνδεδεμένος κάτοχός της μπορεί να την αλλάξει:

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;
}

Ο ανώνυμος ρόλος επιτρέπει δημόσιες αναγνώσεις χωρίς να αξιολογούνται οι ισχυρισμοί ταυτότητας. Ο ρόλος ελέγχου ταυτότητας χρησιμοποιεί τις αξιώσεις του συνδεδεμένου χρήστη για να περιορίσει τις αλλαγές στο περιεχόμενο που ανήκει στον χρήστη.

Οδηγίες ασφαλείας

  • Παραχωρήστε την ελάχιστη απαιτούμενη πρόσβαση. Προτιμήστε read ή create μόνοι. Εκχώρηση update ή delete μόνο όταν το απαιτεί η δημόσια ροή εργασίας.
  • Περιορίστε τα εκτεθειμένα πεδία. Χρησιμοποιήστε includeexclude ή επιλογές για να αποτρέψετε την πρόσβαση σε πεδία που δεν χρειάζονται οι ανώνυμοι χρήστες. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Ορισμός δικαιωμάτων δεδομένων.
  • Μην βασίζεστε στη διεπαφή χρήστη της εφαρμογής για προστασία. Τα δικαιώματα πρέπει να ορίζονται στο μοντέλο δεδομένων, επειδή οι καλούντες μπορούν να στέλνουν αιτήματα χωρίς να χρησιμοποιούν το frontend σας.
  • Σχεδιάστε για μη αξιόπιστες πληροφορίες. Επικυρώστε τα υποβληθέντα δεδομένα και σχεδιάστε λειτουργίες δημόσιας εγγραφής για ανεπιθύμητη αλληλογραφία, αυτοματοποίηση και απροσδόκητη κυκλοφορία.
  • Η δοκιμή αρνήθηκε τις λειτουργίες. Επιβεβαιώστε ότι οι λειτουργίες που παραλείπονται από το ρόλο απορρίπτονται για χρήστες χωρίς περίοδο λειτουργίας.

Απενεργοποιήστε την ανώνυμη πρόσβαση

Για να καταργήσετε τη δημόσια πρόσβαση από μια εφαρμογή:

  1. Καταργήστε τον anonymous ρόλο από κάθε μοντέλο δεδομένων.
  2. Αναπτύξτε ξανά την εφαρμογή εκτελώντας npx rayfin upτο .

Ένας διαχειριστής μισθωτή μπορεί επίσης να απενεργοποιήσει τη ρύθμιση μισθωτή για να αποκλείσει την πρόσβαση σε ανώνυμα δεδομένα για όλες τις εφαρμογές εντός ενός μισθωτή και να περιορίσει την πρόσβαση σε επιλεγμένες ομάδες ασφαλείας.