Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Ισχύει για:✅ Power BI ενσωματωμένη ανάλυση για τους πελάτες σας (τα δεδομένα ανήκουν στην εφαρμογή)
Αυτό το άρθρο εξηγεί τον τρόπο ενσωμάτωσης μιας αναφοράς Power BI που χρησιμοποιεί δεδομένα αποθηκευμένα στις Υπηρεσίες Ανάλυσης του Azure (AAS), σε ένα σενάριο ενσωμάτωσης για τους πελάτες σας. Αυτό το άρθρο απευθύνεται σε ανεξάρτητους προγραμματιστές λογισμικού (ISV), οι οποίοι θέλουν να ενσωματώσουν μια αναφορά με δεδομένα AAS, ανεξάρτητα από το αν η βάση δεδομένων εφαρμόζει ασφάλεια σε επίπεδο γραμμών (RLS).
Προαπαιτούμενα στοιχεία
Χρειάζεστε μια αναφορά με δυναμική σύνδεση στη βάση δεδομένων AAS, με ή χωρίς RLS.
Δυναμική ασφάλεια - RLS
Εάν θέλετε η αναφορά σας να υλοποιήσει δυναμικό RLS, χρησιμοποιήστε τη customeData συνάρτηση. Δεδομένου ότι δεν μπορείτε να παρακάμψετε την ουσιαστική ταυτότητα, συνιστούμε να δημιουργήσετε νέους ρόλους με customDataτο . Μπορείτε επίσης να χρησιμοποιήσετε ρόλους που έχουν τις username συναρτήσεις ή userPrincipalName , εάν τις αντικαταστήσετε με customData.
Ακολουθήστε αυτά τα βήματα για να δημιουργήσετε έναν νέο ρόλο και να προσθέσετε τη customData συνάρτηση στον ρόλο.
Δημιουργήστε έναν ρόλο στον διακομιστή των Υπηρεσιών ανάλυσης.
Στις γενικές ρυθμίσεις, δώστε ένα Όνομα ρόλου και ορίστε τα δικαιώματα βάσης δεδομένων σε Μόνο ανάγνωση.
Στις ρυθμίσεις Ιδιότητα μέλους, προσθέστε τους χρήστες που πρόκειται να καλέσουν το API Διακριτικό ενσωμάτωσης - Δημιουργία διακριτικού. Εάν χρησιμοποιείτε μια κύρια υπηρεσία που δεν είναι διαχειριστής, προσθέστε την επίσης.
Στις ρυθμίσεις φίλτρων γραμμής, ορίστε το ερώτημά σας DAX χρησιμοποιώντας τη
CUSTOMDATA()συνάρτηση.
Κύρια υπηρεσία
Εάν χρησιμοποιείτε μια κύρια υπηρεσία για να ενσωματώσετε την αναφορά, βεβαιωθείτε ότι η κύρια υπηρεσία είναι διαχειριστής διακομιστή ή μέλος ρόλου του AAS. Για να εκχωρήσετε δικαιώματα διαχειριστή AAS στην κύρια υπηρεσία, ανατρέξτε στο θέμα Προσθήκη κύριας υπηρεσίας στον ρόλο διαχειριστή διακομιστή. Για να προσθέσετε την κύρια υπηρεσία ως μέλος ρόλου, μεταβείτε στις ρυθμίσεις Ιδιότητα μέλους.
Χρησιμοποιήστε το αναγνωριστικό αντικειμένου κύριας υπηρεσίας ως το όνομα χρήστη (πραγματική ταυτότητα).
Μετεγκατάσταση υπηρεσίας ανάλυσης
Μπορείτε να κάνετε μετεγκατάσταση από AAS σε Power BI Premium , ακόμα και αν έχετε μια ενσωματωμένη αναφορά AAS. Η ενσωματωμένη αναφορά σας δεν διακόπτεται κατά τη μετεγκατάσταση, εφόσον ο κύριος που καλεί το API Embed Token - Generate Token είναι μέλος ή διαχειριστής του χώρου εργασίας.
Σημείωμα
Εάν η κύρια υπηρεσία δεν είναι διαχειριστής και δεν θέλετε να την ορίσετε ως διαχειριστή του χώρου εργασίας κατά τη μετεγκατάσταση, μετεγκαταστήστε αυτό το μοντέλο σε έναν ξεχωριστό χώρο εργασίας όπου μπορείτε να του εκχωρήσετε δικαιώματα διαχειριστή.
Δημιουργία διακριτικού ενσωμάτωσης
Χρησιμοποιήστε το API Δημιουργία διακριτικού για να δημιουργήσετε ένα διακριτικό ενσωμάτωσης που παρακάμπτει την ουσιαστική ταυτότητα.
Οι πληροφορίες που απαιτούνται για τη δημιουργία ενός διακριτικού ενσωμάτωσης εξαρτώνται από τον τρόπο με τον οποίο συνδέεστε στο Power BI (κύρια υπηρεσία ή κύριος χρήστης) και επίσης εάν η βάση δεδομένων έχει RLS.
- Διακριτικό ενσωμάτωσης κύριου χρήστη
- Διακριτικό ενσωμάτωσης οντότητας υπηρεσίας ή οντότητας υπηρεσίας
Για να δημιουργήσετε ένα διακριτικό ενσωμάτωσης, καταχωρήστε τις ακόλουθες πληροφορίες:
- Όνομα χρήστη (Προαιρετικό εάν δεν υπάρχει RLS. Απαιτείται για RLS) - Το όνομα χρήστη πρέπει να είναι ίδιο με το όνομα του καλούντα API (στην περίπτωση αυτή, το UPN του κύριου χρήστη). Εάν η βάση δεδομένων δεν χρησιμοποιεί RLS και δεν παρέχεται όνομα χρήστη, χρησιμοποιούνται τα διαπιστευτήρια του κύριου χρήστη.
- Ρόλος (απαιτείται για RLS) - Η αναφορά εμφανίζει δεδομένα μόνο εάν η πραγματική ταυτότητα είναι μέλος του ρόλου.
Παράδειγμα:
Καθορίστε την ταυτότητα χρήστη και τους ρόλους για ένα από τα ακόλουθα τρία σενάρια:
- Εάν δεν υλοποιείται το RLS:
Δεν χρειάζεται να ορίσετε καμία αποτελεσματική ταυτότητα.
Εάν χρησιμοποιείτε στατικό RLS:
var rlsidentity = new EffectiveIdentity( //If static RLS username: "username@contoso.com", roles: new List<string>{ "MyRole" }, datasets: new List<string>{ datasetId.ToString()} )Εάν χρησιμοποιείτε δυναμικό RLS:
var rlsidentity = new EffectiveIdentity( // If dynamic RLS username: "username@contoso.com", roles: new List<string>{ "MyRoleWithCustomData" }, customData: "SalesPersonA" datasets: new List<string>{ datasetId.ToString()} )Σημείωμα
customDataστο διακριτικό ενσωμάτωσης δεν μπορεί να είναι μεγαλύτερο από 1.024 χαρακτήρες.
Χρησιμοποιήστε την ουσιαστική ταυτότητα για να δημιουργήσετε ένα διακριτικό ενσωμάτωσης:
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;
}
Χρησιμοποιήστε το διακριτικό ενσωμάτωσης για να ενσωματώσετε την αναφορά στην εφαρμογή ή την τοποθεσία Web σας. Η αναφορά σας φιλτράρει τα δεδομένα σύμφωνα με το RLS που εφαρμόζεται στην αναφορά.