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

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

Όταν αποκτάτε ένα διακριτικό πρόσβασης, το οποίο απαιτεί πάντα η εφαρμογή σας για ενσωμάτωση περιεχομένου 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, συνιστάται να χρησιμοποιήσετε τη βιβλιοθήκη ελέγχου ταυτότητας Web της Microsoft. Αυτή η βιβλιοθήκη είναι ένα σύνολο πακέτων γνωστών ως Microsoft.Identity.Web. Μπορείτε να το εγκαταστήσετε από το NuGet ή το Visual Studio.

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

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

Συμβουλή

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

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

  • TenantId - Απαιτείται μόνο για την κύρια υπηρεσία. Είναι το αναγνωριστικό μισθωτή Azure AD σας.
  • 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 .

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

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

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

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

Σημείωση

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

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

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

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