Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:✅ Müşterileriniz için Power BI tümleşik analizi (App-owns-data)
Bu makalede, Azure Analysis Services'te (AAS) depolanan verileri kullanan bir Power BI raporunu müşterileriniz için ekleme senaryosuna ekleme adımları açıklanmaktadır. Bu makale, veritabanının satır düzeyi güvenlik (RLS) uygulamasına bakılmaksızın AAS verileriyle rapor eklemek isteyen bağımsız yazılım geliştiricilerine (ISV) yöneliktir.
Önkoşullar
RLS ile veya RLS olmadan AAS veritabanına canlı bağlantısı olan bir rapora ihtiyacınız vardır.
Dinamik güvenlik - RLS
Raporunuzun dinamik RLS uygulamasını istiyorsanız işlevini kullanın customeData . Geçerli kimliği geçersiz kılamadığınız için, customData ile yeni roller oluşturmanızı öneririz. Ayrıca, bunları username ile değiştirirseniz userPrincipalName veya customData işlevlerine sahip rolleri de kullanabilirsiniz.
Yeni bir rol oluşturmak ve customData işlevini role eklemek için bu adımları izleyin.
Analysis Services sunucusunda bir rol oluşturun.
Genel ayarlarında bir Rol Adı girin ve veritabanı izinlerini Salt okunur olarak ayarlayın.
Üyelik ayarlarında Gömme Belirteci - Belirteç Oluştur API'sini çağıracak kullanıcıları ekleyin. Yönetici olmayan bir hizmet sorumlusu kullanıyorsanız bunu da ekleyin.
Satır filtreleri ayarlarında,
CUSTOMDATA()işlevini kullanarak DAX sorgunuzu ayarlayın.
Hizmet sorumlusu
Raporu eklemek için hizmet sorumlusu kullanıyorsanız hizmet sorumlusunun AAS'nin sunucu yöneticisi veya rol üyesi olduğundan emin olun. Hizmet sorumlusuna AAS yönetici izinleri vermek için bkz. Sunucu yöneticisi rolüne bir hizmet sorumlusu ekleme. Hizmet sorumlusunu rol üyesi olarak eklemek için Üyelik ayarlarına gidin.
Hizmet sorumlusu nesne kimliğini kullanıcı adı (etkin kimlik) olarak kullanın.
Analysis Service geçişi
Ekli bir AAS raporunuz olsa bile AAS'den Power BI Premium'a geçiş yapabilirsiniz. Ekleme Belirteci - Belirteç Oluşturma API'sini çağıran sorumlu çalışma alanının üyesi veya yöneticisi olduğu sürece, katıştırılmış raporunuz geçiş sırasında bozulmaz.
Not
Hizmet sorumlusu yönetici değilse ve geçiş yaparken bunu çalışma alanının yöneticisi yapmak istemiyorsanız, bu modeli yönetici izinleri verebileceğiniz ayrı bir çalışma alanına geçirin.
Yerleştirme belirteci oluştur
Generate Token API'sini, etkili kimliğini geçersiz kılan bir gömme belirteci oluşturmak için kullanın.
Ekleme belirteci oluşturmak için gereken bilgiler, Power BI'a (hizmet sorumlusu veya ana kullanıcı) nasıl bağlandığınıza ve veritabanında RLS olup olmadığınınıza bağlıdır.
Ekleme belirteci oluşturmak için aşağıdaki bilgileri sağlayın:
- Kullanıcı adı (RLS yoksa isteğe bağlı. RLS için gerekli) - Kullanıcı adı API çağıranı ile aynı olmalıdır (bu durumda Ana kullanıcının UPN'si). Veritabanı RLS kullanmıyorsa ve kullanıcı adı sağlanmadıysa, ana kullanıcının kimlik bilgileri kullanılır.
- Rol (RLS için gerekli) - Rapor, yalnızca etkin kimlik bu rolün üyesiyse verileri görüntüler.
Örnek:
Aşağıdaki üç senaryodan biri için kullanıcı kimliğini ve rollerini tanımlayın:
- RLS uygulanmadıysa:
Etkili bir kimlik tanımlamanız gerekmez.
Statik RLS kullanılıyorsa:
var rlsidentity = new EffectiveIdentity( //If static RLS username: "username@contoso.com", roles: new List<string>{ "MyRole" }, datasets: new List<string>{ datasetId.ToString()} )Dinamik RLS kullanıyorsanız:
var rlsidentity = new EffectiveIdentity( // If dynamic RLS username: "username@contoso.com", roles: new List<string>{ "MyRoleWithCustomData" }, customData: "SalesPersonA" datasets: new List<string>{ datasetId.ToString()} )Not
customDataekleme belirtecinde 1.024 karakterden büyük olamaz.
Ekleme belirteci oluşturmak için etkili kimliği kullanın:
public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
PowerBIClient pbiClient = this.GetPowerBIClient();
// Create a request for getting an embed token for the rls identity defined above
var tokenRequest = new GenerateTokenRequestV2(
reports: new List<GenerateTokenRequestV2Report>() { new GenerateTokenRequestV2Report(reportId) },
datasets: datasetIds.Select(datasetId => new GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
targetWorkspaces: targetWorkspaceId != Guid.Empty ? new List<GenerateTokenRequestV2TargetWorkspace>() { new GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
identities: new List<EffectiveIdentity> { rlsIdentity } // Only in cases of RLS
);
// Generate an embed token
var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
return embedToken;
}
Raporu uygulamanıza veya web sitenize eklemek için ekleme belirtecini kullanın. Raporunuz, rapordaki uygulanan RLS'ye göre verileri filtreler.