Απόκτηση διακριτικών πρόσβασης

Ολοκληρώθηκε

Όταν αποκτάτε ένα διακριτικό πρόσβασης, το οποίο απαιτεί πάντα η εφαρμογή σας για την ενσωμάτωση περιεχομένου Power BI, αφορά την απόκτηση ενός διακριτικού Azure AD. Όταν χρησιμοποιείτε το σενάριο Για τους πελάτες σας, η εφαρμογή χρησιμοποιεί το διακριτικό Azure AD για τη δημιουργία ενός διακριτικού ενσωμάτωσης.

Για να είμαστε σαφείς:

  • Το διακριτικό πρόσβασης για το σενάριο Για τον οργανισμό σας είναι το Azure AD διακριτικό, το οποίο περιέχει ισχυρισμούς ότι η εφαρμογή σας χρησιμοποιεί για τον προσδιορισμό των εκχωρημένων δικαιωμάτων.
  • Το διακριτικό πρόσβασης για το σενάριο Για τους πελάτες σας είναι ένα διακριτικό ενσωμάτωσης, το οποίο αντιπροσωπεύει τα δεδομένα σχετικά με το περιεχόμενο Του Power BI και τον τρόπο πρόσβασης στην εφαρμογή σας. Η εφαρμογή σας δημιουργεί το διακριτικό ενσωμάτωσης χρησιμοποιώντας μια λειτουργία Power BI REST API, η οποία απαιτεί ένα διακριτικό Azure AD.

Απόκτηση διακριτικών Azure AD

Χρησιμοποιήστε τη Βιβλιοθήκη ελέγχου ταυτότητας της Microsoft (MSAL) για να αναπτύξετε λογική εφαρμογών που αποκτά Azure AD διακριτικά από το Πλατφόρμα ταυτοτήτων της Microsoft. Το MSAL υποστηρίζει διαφορετικές αρχιτεκτονικές και πλατφόρμες εφαρμογών, συμπεριλαμβανομένων των .NET, JavaScript, Java, Python, Android και iOS.

Συμβουλή

Κατά την ανάπτυξη μιας εφαρμογής Web ASP.NET Core, συνιστούμε να χρησιμοποιήσετε τη βιβλιοθήκη ελέγχου ταυτότητας Web της Microsoft. Αυτή η βιβλιοθήκη είναι ένα σύνολο πακέτων που είναι γνωστό ως Microsoft.Identity.Web. Μπορείτε να την εγκαταστήσετε από το NuGet ή το Visual Studio.

Υπάρχουν διαφορετικές τεχνικές για την απόκτηση ενός διακριτικού Azure AD χρησιμοποιώντας το MSAL. Ορισμένες απαιτούν αλληλεπίδραση του χρήστη μέσω ενός προγράμματος περιήγησης web, ενώ άλλες δεν απαιτούν καμία αλληλεπίδραση του χρήστη. Σε γενικές γραμμές, η μέθοδος που επιλέγετε για να αποκτήσετε ένα διακριτικό Azure AD εξαρτάται από το αν η εφαρμογή είναι μια δημόσια εφαρμογή προγράμματος-πελάτη (όπως μια εφαρμογή υπολογιστή ή για κινητές συσκευές) ή μια εμπιστευτική εφαρμογή προγράμματος-πελάτη (όπως μια εφαρμογή web). Το σενάριο ενσωμάτωσης επηρεάζει επίσης την επιλογή σας.

Δεν είναι πρόθεση αυτής της μονάδας να περιγράψει τις τεχνικές που αποκτούν διακριτικά Azure AD. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Απόκτηση διακριτικών και διακριτικών cache με χρήση της Βιβλιοθήκης ελέγχου ταυτότητας της Microsoft (MSAL).

Συμβουλή

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

Για να επιτρέψετε στην εφαρμογή σας να αποκτήσει διακριτικά Azure AD, το αρχείο ρύθμισης παραμέτρων θα πρέπει να περιέχει τις ακόλουθες ρυθμίσεις:

  • TenantId - Απαιτείται μόνο για την κύρια υπηρεσία. Είναι το αναγνωριστικό μισθωτή Azure AD σας.
  • ClientId -Απαιτείται. Είναι το applicationID (ClientID) της εφαρμογής Azure AD σας.
  • ClientSecret or ClientCertificate - Απαιτείται μόνο για κύρια υπηρεσία.
  • PbiUsername - Απαιτείται μόνο για κύριο λογαριασμό χρήστη.
  • PbiPassword - Απαιτείται μόνο για κύριο λογαριασμό χρήστη.

Σημαντικό

Είτε χρησιμοποιείτε πιστοποιητικά, μυστικούς κωδικούς προγράμματος-πελάτη ή διαπιστευτήρια κύριου λογαριασμού χρήστη, πρέπει να λάβετε μέτρα για την προστασία τους από μη εξουσιοδοτημένη πρόσβαση και χρήση. Συνιστούμε να χρησιμοποιείτε το Azure Key Vault, το οποίο προστατεύει τα κλειδιά κρυπτογράφησης, τα πιστοποιητικά και τους μυστικούς χαρακτήρες στο cloud.

Απόκτηση διακριτικών ενσωμάτωσης

Χρησιμοποιήστε τη GenerateTokenRequestV2 λειτουργία του Microsoft Power BI REST API για να ζητήσετε ένα διακριτικό ενσωμάτωσης. Υπάρχουν άλλες σχετικές λειτουργίες που δημιουργούν διακριτικά ενσωμάτωσης για άλλους τύπους περιεχομένου Power BI. Όλες οι λειτουργίες API απαιτούν ένα διακριτικό Azure AD.

Συμβουλή

Κατά την ανάπτυξη μιας εφαρμογής .NET, συνιστούμε να εγκαταστήσετε το πακέτο Microsoft.PowerBI.Api . Μπορείτε να την εγκαταστήσετε από το NuGet ή το Visual Studio.

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

  1. Συνδέεται στο Power BI.
  2. Δηλώνει μια μεταβλητή με την ονομασία reportTokenRequests για την αποθήκευση αιτήσεων διακριτικών αναφοράς.
  3. Απαριθμεί όλες τις αναφορές στον χώρο εργασίας, δημιουργώντας μια λίστα αντικειμένων EmbeddedReport (χρησιμοποιώντας μια κλάση βοηθητικής εφαρμογής). Κάθε αντικείμενο περιγράφει το αναγνωριστικό, το όνομα και τη διεύθυνση URL ενσωμάτωσης της αναφοράς. Η εφαρμογή απαιτεί το αναγνωριστικό αναφοράς για τη δημιουργία ενός διακριτικού. Το όνομα απαιτείται να παρουσιάζεται στους χρήστες σε ένα μενού και απαιτείται η διεύθυνση URL ενσωμάτωσης για την ενσωμάτωση της αναφοράς. Ο κώδικας προσθέτει μια αίτηση διακριτικού αναφοράς, επιτρέποντας την επεξεργασία αναφοράς, στη reportTokenRequests μεταβλητή.
  4. Δηλώνει μια μεταβλητή με το όνομα datasetTokenRequests για την αποθήκευση αιτήσεων διακριτικού συνόλου δεδομένων.
  5. Απαριθμεί όλα τα σύνολα δεδομένων στον χώρο εργασίας, δημιουργώντας μια λίστα αντικειμένων EmbeddedDataset (χρησιμοποιώντας μια κλάση βοηθητικής εφαρμογής). Κάθε αντικείμενο περιγράφει το αναγνωριστικό, το όνομα και τη διεύθυνση URL ενσωμάτωσης του συνόλου δεδομένων. Η εφαρμογή απαιτεί το αναγνωριστικό του συνόλου δεδομένων για τη δημιουργία ενός διακριτικού. Το όνομα μπορεί να απαιτείται για την παρουσίασή του στους χρήστες σε ένα μενού και η διεύθυνση URL ενσωμάτωσης είναι απαραίτητη για την ενσωμάτωση του συνόλου δεδομένων. Ο κώδικας προσθέτει μια αίτηση διακριτικού συνόλου δεδομένων στη datasetTokenRequests μεταβλητή.
  6. Δημιουργεί μια αίτηση διακριτικού χώρου εργασίας (απαιτείται όταν οι χρήστες δημιουργούν αναφορές) που προστίθεται στη workspaceRequests μεταβλητή.
  7. Χρησιμοποιεί τη GenerateTokenRequestV2 μέθοδο για να συγκεντρώσει τις αιτήσεις διακριτικού αναφοράς, τις αιτήσεις διακριτικού συνόλου δεδομένων και την αίτηση διακριτικού χώρου εργασίας.
  8. GenerateTokenAsync Χρησιμοποιείται για τη δημιουργία ενός διακριτικού ενσωμάτωσης.
  9. Αποθηκεύει το διακριτικό ενσωμάτωσης σε μια μεταβλητή συμβολοσειράς.
// Connect to Power BI
var client = GetPowerBiClient();

// Get reports in the workspace
var reports = (await client.Reports.GetReportsInGroupAsync(_workspaceId)).Value;

var reportList = new List<EmbeddedReport>();
var reportTokenRequests = new List<GenerateTokenRequestV2Report>();

foreach (var report in reports)
{
    reportList.Add(new EmbeddedReport
    {
        Id = report.Id.ToString(),
        Name = report.Name,
        EmbedUrl = report.EmbedUrl
    });

    reportTokenRequests.Add(new GenerateTokenRequestV2Report(report.Id, allowEdit: true));
}

// Get datasets in the workspace
var datasets = (await client.Datasets.GetDatasetsInGroupAsync(_workspaceId)).Value;

var datasetList = new List<EmbeddedDataset>();
var datasetTokenRequests = new List<GenerateTokenRequestV2Dataset>();

foreach (var dataset in datasets)
{
    datasetList.Add(new EmbeddedDataset
    {
        Id = dataset.Id.ToString(),
        Name = dataset.Name,
        EmbedUrl = dataset.QnaEmbedURL
    });

    datasetTokenRequests.Add(new GenerateTokenRequestV2Dataset(dataset.Id));
}

// Generate token request for the workspace
var workspaceRequests = new GenerateTokenRequestV2TargetWorkspace[] {
    new GenerateTokenRequestV2TargetWorkspace(_workspaceId)
};

// Bundle token requests for reports, datasets, and the workspace
var tokenRequest = new GenerateTokenRequestV2(
    reports: reportTokenRequests,
    datasets: datasetTokenRequests,
    targetWorkspaces: workspaceRequests
);

// Generate the embed token
string embedToken = (await client.EmbedToken.GenerateTokenAsync(tokenRequest)).Token;

Η εφαρμογή θα πρέπει να εξάγει την embedToken τιμή μεταβλητής στη σελίδα HTML ενσωμάτωσης. Στη συνέχεια, η λογική από την πλευρά του προγράμματος-πελάτη μπορεί να χρησιμοποιήσει το διακριτικό ενσωμάτωσης για να ενσωματώσει περιεχόμενο σε ένα div στοιχείο.

Σημείωση

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

Για να επιτρέψετε στην εφαρμογή σας να αποκτά διακριτικά ενσωμάτωσης, το αρχείο ρύθμισης παραμέτρων θα πρέπει να περιέχει λεπτομέρειες σχετικά με το περιεχόμενο με δυνατότητα ενσωμάτωσης. Μπορεί να περιλαμβάνει συγκεκριμένα ReportIDs και DatasetIDs, ή συχνότερα τα GroupID των χώρων εργασίας που περιέχουν περιεχόμενο με δυνατότητα ενσωμάτωσης.

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Διακριτικό ενσωμάτωσης - Δημιουργία διακριτικού.

Ανανέωση διακριτικών πρόσβασης

Τα διακριτικά πρόσβασης έχουν χρόνο λήξης. Όταν δημιουργηθούν, οι χρήστες της εφαρμογής έχουν περιορισμένο χρόνο για να αλληλεπιδρούν με το περιεχόμενο Power BI που τους χρησιμοποιεί. Προκειμένου να παρέχετε στους χρήστες της εφαρμογής σας μια συνεχή εμπειρία, η εφαρμογή σας θα πρέπει να ανανεώνει τα διακριτικά πρόσβασης πριν από τη λήξη τους, χρησιμοποιώντας το API προγράμματος-πελάτη του Power BI.

Σημείωση

Για να μάθετε σχετικά με το API προγράμματος-πελάτη, εργαστείτε μέσω της εκπαιδευτικής ενότητας Ενοποίηση περιεχομένου με τα API προγράμματος-πελάτη του Power BI .

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Ανανέωση του διακριτικού πρόσβασης.

Εξερεύνηση άλλων πόρων

Για να μάθετε περισσότερα, παρακολουθήστε τον Οδηγό για προγραμματιστές του Power BI για Azure AD σειρά βίντεο Security. Αυτή η σειρά αποτελείται από έξι βίντεο που καλύπτουν σε βάθος θεωρία. Ο Ted Pattison, ο οποίος είναι μέλος της συμβουλευτικής ομάδας πελατών του Power BI (CAT) στη Microsoft, παρήγαγε αυτή τη σειρά βίντεο.