Fabric uygulamalarında anonim veri erişimi

Anonim veri erişimi, bir Fabric uygulamasının seçilen veri işlemlerini giriş yapmamış kullanıcılara açığa çıkarmasına olanak tanır. Bu erişimi Fabric kiracı seviyesinde ve her veri modelinde kontrol ediyorsunuz. Anonim erişim, kimlik doğrulamanın yerine geçmez, bir yetkilendirme seçeneğidir. Aynı uygulama, bazı kurumlara halka açık erişim sağlarken, kullanıcıların diğer kuruluşlar veya operasyonlar için giriş yapmasını gerektirebilir.

Important

Uygulama URL'sine ulaşabilen herkes, role anonymous atanan işlemleri kullanabilir. Bu rol aracılığıyla kişisel, gizli, finansal veya iç iş verilerini açığa çıkarmayın.

Kullanım örnekleri

Bir uygulamanın giriş şartı olmadan sınırlı işlevsellik sağlaması gerektiğinde anonim veri erişimini düşünün.

Scenario Örnek erişim Önerilen kapsam
Kamuya açık referans verileri Ürün kataloglarını, takvimlerini veya kamuya açık veri setlerini görüntüleyin read
Geri bildirim toplama Yorum veya anket yanıtları gönderin create

Bir uygulamanın kullanıcıyı tanımlaması, sahipliğini zorlaması veya kimlik taleplerine dayalı erişim sağlaması gerektiğinde anonim erişim uygun değildir. Bu senaryolar için doğrulanmış roller kullanın.

Anonim erişim nasıl çalışır

Anonim veri erişimi bağımsız kontroller kullanır:

  1. Kiracı ortamı: Bir Fabric kiracı yöneticisi, organizasyon veya seçilmiş güvenlik grupları için anonim veri erişimi tanır.
  2. Veri modeli rolü: Bir varlık anonymous , bu rolü kullanarak kimlik doğrulaması yapılmamış kullanıcıların gerçekleştirebileceği işlemleri tanımlar.

Kiracı ayarı, organizasyon genelinde sınırdır. Uygulama ayarı, anonim taleplerin uygulamanın veri servisine ulaşmasına olanak tanır. Varlık rolü, bu taleplerin hangi veri ve işlemlere erişebileceğini belirler. Bu kontrollerden sadece birini veya ikisini etkinleştirmek anonim erişim sağlamaz.

Kiracı ayarını etkinleştir

Bir Fabric kiracı yöneticisi, uygulama geliştiricilerinin kullanabilmesi için anonim veri erişimini etkinleştirmelidir. Ayar varsayılan olarak devre dışıdır.

  1. Fabric yönetim portalında oturum açın.

  2. Kiracı ayarlarını seç.

  3. Fabric apps (önizleme) bölümünde Anonim veri erişimini bulabilirsiniz.

    Fabric admin portalındaki Anonim veri erişim ayarının ekran görüntüsü.

  4. Geçiş düğmesini Etkin olarak ayarlayın.

  5. Ayarı tüm organizasyona veya belirli güvenlik gruplarına uygulayın.

  6. seçin, sonra daUygula'yı seçin.

Değişikliklerin etkisi birkaç dakika sürebilir. Ayarı güvenlik gruplarıyla sınırladığınızda, uygulama geliştiricisinin veya uygulama sahibinin izin verilen bir gruba dahil olduğunu doğrulayın.

Bir veri modelinde anonim erişimi tanımlayın

Dekoratörü bir varlıkta kullanın @role ve rol adı olarak belirtin anonymous . İkinci argüman izin verilen veri işlemlerini tanımlar: create, read, update, veya delete.

Parameters

Parameter Türü Açıklama
roleName string Veya özel uygulama rolü gibi authenticated rol adı
actions string \| string[] Tek eylem veya dizi: create, read, update, delete, veya * tümü için
options object , checkve include özelliklerine sahip excludeisteğe bağlı nesne

Aşağıdaki örnek, kimlik doğrulaması yapılmamış kullanıcıların kamuya açık duyuruları okumasına olanak tanır:

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

Rol anonymous , giriş yapmış bir kimlik olmadığı için kimlik talepleri kullanmaz. Senaryonuzu destekleyen en dar işlem setini tanımlayın.

Kullanıcıların veri göndermesine izin verin

Geri bildirim formu için, create , veya read erişim updatedeletevermeden erişim verin:

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

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

Bu model, kullanıcıların geri bildirim göndermesine izin veriyor, ancak gönderilen yazıları görüntüleme veya değiştirme imkânı vermiyor.

Birden fazla operasyona izin ver

Bir senaryo birden fazla işlem gerektirdiğinde bir dizi geçirilir:

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

Bu uygulamaya erişimi olan herkes paylaşılan her işi oluşturabilir, görüntüleyebilir ve güncelleyebilir. Todos'u silemiyorlar çünkü delete dahil değil. Bu tür geniş izinleri yalnızca kullanıcıların erişimi paylaşması beklenen halka açık veya geçici veriler için kullanın.

Anonim ve doğrulanmış rolleri birleştirin

Açık ve giriş yapmış kullanıcılar farklı izinler gerektirdiğinde her iki rolü de bir varlığa uygulayın. Örneğin, herkes bir blog yazısını okuyabilir, ancak sadece giriş yapmış sahibi değiştirebilir:

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

Anonim rol, kimlik iddialarını değerlendirmeden halka açık okumalara izin verir. Doğrulanmış rol, giriş yapan kullanıcının iddialarını kullanarak kullanıcının sahip olduğu içeriklerdeki değişiklikleri sınırlar.

Güvenlik kılavuzu

  • Minimum erişim sağlanır. Tercih eder read ya da create yalnız. Yardım update ya da delete sadece kamu iş akışı gerektirdiğinde verilebilir.
  • Açık alanları sınırlayın. Anonim kullanıcıların ihtiyaç duymadığı alanlara erişimi engellemek için kullanılan include veya exclude seçenekler kullanın. Daha fazla bilgi için bkz. Veri izinlerini tanımla.
  • Koruma için uygulama arayüzüne güvenmeyin. İzinler, veri modelinde tanımlanmalıdır çünkü arayanlar ön yüzünüzü kullanmadan istek gönderebilir.
  • Güvenilmez girişlere karşı plan yapın. Gönderilen verileri doğrulamak ve spam, otomasyon ve beklenmedik trafik için kamuya açık yazma işlemlerini tasarlamak.
  • Test operasyonları reddedildi. Rollerden çıkarılan işlemlerin, oturum olmadan kullanıcılar için reddedildiğini doğrulayın.

Anonim erişimi devre dışı bırak

Bir uygulamadan kamuya açık erişimi kaldırmak için:

  1. Her veri modelinden rolü anonymous çıkarın.
  2. Uygulamayı çalıştırarak npx rayfin upyeniden dağıtmak için .

Bir kiracı yöneticisi, kiracı ayarını devre dışı bırakarak kiracı içindeki tüm uygulamalar için anonim veri erişimini engelleyebilir ve seçilen güvenlik gruplarına erişimi sınırlayabilir.