Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Akses data anonim memungkinkan aplikasi Fabric mengekspos operasi data yang dipilih kepada pengguna yang belum masuk. Anda mengendalikan akses ini di tingkat tenant Fabric dan di setiap model data. Akses anonim adalah opsi otorisasi, bukan pengganti autentikasi. Aplikasi yang sama dapat memberikan akses publik ke beberapa entitas sekaligus mengharuskan pengguna masuk ke entitas atau operasi lain.
Important
Siapa pun yang dapat mengakses URL aplikasi dapat menggunakan operasi yang ditugaskan pada peran tersebut anonymous . Jangan mengungkapkan data pribadi, rahasia, keuangan, atau internal bisnis melalui peran ini.
Skenario penggunaan
Pertimbangkan akses data anonim ketika sebuah aplikasi harus menyediakan fungsi terbatas tanpa persyaratan masuk.
| Scenario | Contoh akses | Cakupan yang direkomendasikan |
|---|---|---|
| Data referensi publik | Lihat katalog produk, jadwal, atau dataset publik | read |
| Pengumpulan umpan balik | Kirim komentar atau tanggapan survei | create |
Akses anonim tidak tepat ketika sebuah aplikasi harus mengidentifikasi pengguna, menegakkan kepemilikan, atau memberikan akses berdasarkan klaim identitas. Gunakan peran terautentikasi untuk skenario tersebut.
Cara kerja akses anonim
Akses data anonim menggunakan kontrol independen:
- Pengaturan penyewa: Administrator tenant Fabric memberikan akses data anonim untuk organisasi atau kelompok keamanan terpilih.
-
Peran model data: Sebuah entitas menggunakan peran tersebut
anonymousuntuk mendefinisikan operasi yang dapat dilakukan oleh pengguna yang tidak terautentikasi.
Pengaturan penyewa adalah batas organisasi secara keseluruhan. Pengaturan aplikasi memungkinkan permintaan anonim mengakses layanan data aplikasi. Peran entitas menentukan data dan operasi mana yang dapat diakses oleh permintaan tersebut. Mengaktifkan hanya satu atau dua kontrol ini tidak memberikan akses anonim.
Aktifkan pengaturan tenant
Administrator tenant Fabric harus mengaktifkan akses data anonim sebelum pengembang aplikasi dapat menggunakannya. Pengaturan dinonaktifkan secara default.
Masuk ke portal admin Fabric.
Pilih pengaturan penyewa.
Di bawah aplikasi Fabric (pratinjau), temukan Akses data anonim.
Atur tombol ke Diaktifkan.
Terapkan pengaturan ini ke seluruh organisasi atau ke grup keamanan tertentu.
Pilih Terapkan.
Perubahan mungkin membutuhkan beberapa menit untuk mulai terasa. Saat Anda membatasi pengaturan hanya ke grup keamanan, pastikan bahwa pengembang aplikasi atau pemilik aplikasi termasuk dalam grup yang diizinkan.
Definisikan akses anonim dalam model data
Gunakan @role dekorator pada sebuah entitas dan tentukan anonymous sebagai nama peran. Argumen kedua mendefinisikan operasi data yang diizinkan: create, , read, updateatau delete.
Parameters
| Parameter | Tipe | Deskripsi |
|---|---|---|
roleName |
string |
Nama peran, seperti authenticated atau peran aplikasi kustom |
actions |
string \| string[] |
Tindakan tunggal atau larik: create, read, update, delete, atau * untuk semua |
options |
object |
Objek opsional dengan properti check, include, dan exclude |
Contoh berikut memungkinkan pengguna yang tidak terautentikasi untuk membaca pengumuman publik:
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;
}
Peran ini anonymous tidak menggunakan klaim identitas karena tidak ada identitas yang dimasuki yang tersedia. Tentukan set operasi tersempit yang mendukung skenario Anda.
Izinkan pengguna mengirimkan data
Untuk formulir umpan balik, berikan create akses tanpa memberikan read, update, atau delete akses:
import { entity, role, uuid, text } from '@microsoft/rayfin-core';
@entity()
@role('anonymous', 'create')
export class Feedback {
@uuid() id!: string;
@text() comment!: string;
}
Model ini memungkinkan pengguna mengirimkan umpan balik, tetapi tidak memungkinkan mereka melihat atau mengubah entri yang dikirimkan.
Izinkan operasi ganda
Pass array ketika sebuah skenario memerlukan lebih dari satu operasi:
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;
}
Siapa pun yang memiliki akses ke aplikasi ini dapat membuat, melihat, dan memperbarui setiap tugas yang dibagikan bersama. Mereka tidak bisa menghapus semua karena delete tidak termasuk. Gunakan izin luas seperti ini hanya untuk data publik atau sementara di mana pengguna diharapkan berbagi akses.
Gabungkan peran anonim dan terautentikasi
Terapkan kedua peran pada entitas ketika pengguna publik dan pengguna yang masuk memerlukan izin yang berbeda. Misalnya, siapa pun dapat membaca postingan blog, tetapi hanya pemilik yang masuk yang dapat mengubahnya:
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;
}
Peran anonim memungkinkan pembacaan publik tanpa mengevaluasi klaim identitas. Peran terautentikasi menggunakan klaim pengguna yang masuk untuk membatasi perubahan pada konten yang dimiliki pengguna.
Panduan keamanan
- Berikan akses minimum yang diperlukan. Suka
readataucreatesendiri. Diberikanupdateataudeletehanya jika alur kerja publik membutuhkannya. - Batasi bidang yang terbuka. Gunakan
includeopsi untukexcludemencegah akses ke kolom yang tidak dibutuhkan pengguna anonim. Untuk informasi lebih lanjut, lihat Definisikan izin data. - Jangan bergantung pada antarmuka aplikasi untuk perlindungan. Izin harus didefinisikan pada model data karena pemanggil dapat mengirim permintaan tanpa menggunakan frontend Anda.
- Rencanakan masukan yang tidak terpercaya. Validasi data yang dikirimkan dan rancang operasi penulisan publik untuk spam, otomatisasi, dan lalu lintas tak terduga.
- Tes ditolak operasi. Konfirmasi bahwa operasi yang diabaikan dari peran ditolak untuk pengguna tanpa sesi.
Nonaktifkan akses anonim
Untuk menghapus akses publik dari aplikasi:
- Hapus peran dari
anonymoussetiap model data. - Sebarkan ulang aplikasi dengan menjalankan
npx rayfin up.
Administrator tenant juga dapat menonaktifkan pengaturan tenant untuk memblokir akses data anonim untuk semua aplikasi dalam tenant dan membatasi akses ke grup keamanan yang dipilih.