Κοινή χρήση μέσω


Ενσωμάτωση αναφοράς με βάση δεδομένων υπηρεσιών ανάλυσης Azure (AAS)

ΙΣΕΙ ΓΙΑ: Τα δεδομένα ανήκουν στην εφαρμογή, τα δεδομένα ανήκουν στον χρήστη

Αυτό το άρθρο εξηγεί τον τρόπο ενσωμάτωσης μιας αναφοράς Power BI που χρησιμοποιεί δεδομένα αποθηκευμένα στις Υπηρεσίες Ανάλυσης του Azure (AAS), σε ένα σενάριο ενσωμάτωσης για τους πελάτες σας. Αυτό το άρθρο απευθύνεται σε ανεξάρτητους προγραμματιστές λογισμικού (ISV), οι οποίοι θέλουν να ενσωματώσουν μια αναφορά με δεδομένα AAS, ανεξάρτητα από το αν η βάση δεδομένων εφαρμόζει ασφάλεια σε επίπεδο γραμμών (RLS).

Προαπαιτούμενα στοιχεία

Θα χρειαστείτε μια αναφορά με δυναμική σύνδεση σε μια βάση δεδομένων AAS, με ή χωρίς RLS.

Δυναμική ασφάλεια - RLS

Εάν θέλετε η αναφορά σας να υλοποιήσει δυναμικό RLS, χρησιμοποιήστε τη customeData συνάρτηση. Δεδομένου ότι δεν μπορείτε να παρακάμψετε την ουσιαστική ταυτότητα, συνιστούμε να δημιουργήσετε νέους ρόλους με customDataτο . Μπορείτε επίσης να χρησιμοποιήσετε ρόλους που έχουν τις username συναρτήσεις ή userPrincipalName , εάν τις αντικαταστήσετε με customData.

Ακολουθήστε αυτά τα βήματα για να δημιουργήσετε έναν νέο ρόλο και να προσθέσετε τη customData συνάρτηση στον ρόλο.

  1. Δημιουργήστε έναν ρόλο στον διακομιστή των Υπηρεσιών ανάλυσης.

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

  2. Στις γενικές ρυθμίσεις, δώστε ένα Όνομα ρόλου και ορίστε τα δικαιώματα βάσης δεδομένων σε Μόνο ανάγνωση.

    Ένα στιγμιότυπο οθόνης του να δώσετε ένα νέο όνομα σε έναν νέο ρόλο και να τον ορίσετε για

  1. Στις ρυθμίσεις Ιδιότητα μέλους, προσθέστε τους χρήστες που πρόκειται να καλέσουν το API Διακριτικό ενσωμάτωσης - Δημιουργία διακριτικού. Εάν χρησιμοποιείτε μια κύρια υπηρεσία που δεν είναι διαχειριστής, προσθέστε την επίσης.

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

  2. Στις ρυθμίσεις φίλτρων γραμμής, ορίστε το ερώτημά σας DAX χρησιμοποιώντας τη CUSTOMDATA() συνάρτηση.

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

Κύρια υπηρεσία

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

Χρησιμοποιήστε το αναγνωριστικό αντικειμένου κύριας υπηρεσίας ως το όνομα χρήστη (πραγματική ταυτότητα).

Μετεγκατάσταση υπηρεσίας ανάλυσης

Μπορείτε να κάνετε μετεγκατάσταση από AAS σε Power BI Premium , ακόμα και αν έχετε μια ενσωματωμένη αναφορά AAS. Η ενσωματωμένη αναφορά σας δεν θα διακοπεί κατά τη μετεγκατάσταση, εφόσον η κύρια αρχή που καλεί το διακριτικό ενσωμάτωσης - Δημιουργία διακριτικού API, είναι μέλος ή διαχειριστής του χώρου εργασίας.

Σημείωμα

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

Δημιουργία διακριτικού ενσωμάτωσης

Χρησιμοποιήστε το 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 στην αναφορά.