API ελέγχου ταυτότητας

Το API ελέγχου ταυτότητας επιτρέπει στις απεικονίσεις να αποκτούν διακριτικά πρόσβασης Microsoft Entra ID (παλαιότερα γνωστό ως Azure AD) για συνδεδεμένους χρήστες, διευκολύνοντας τον έλεγχο ταυτότητας καθολικής σύνδεσης.

Οι διαχειριστές του Power BI μπορούν να ενεργοποιήσουν ή να απενεργοποιήσουν το API μέσω ενός καθολικού διακόπτη. Η προεπιλεγμένη ρύθμιση αποκλείει (απενεργοποιεί) το API.

Το API ισχύει μόνο για απεικονίσεις AppSource και όχι για ιδιωτικές απεικονίσεις. Οι απεικονίσεις που βρίσκονται υπό ανάπτυξη μπορούν να δοκιμαστούν σε λειτουργία εντοπισμού σφαλμάτων πριν από τη δημοσίευσή τους.

Υποστηριζόμενα περιβάλλοντα

Υποστηρίζονται τα ακόλουθα περιβάλλοντα:

  • Web
  • Επιφάνεια εργασίας
  • Επιτραπέζιος υπολογιστής RS
  • Mobile

Μη υποστηριζόμενα περιβάλλοντα

Τα παρακάτω περιβάλλοντα δεν υποστηρίζονται ακόμα:

  • Υπηρεσία RS
  • Ενσωματωμένη ανάλυση
  • Ομάδες

Πώς να χρησιμοποιήσετε το API ελέγχου ταυτότητας

Στο αρχείοcapabilities.json , προσθέστε το προνόμιο "AADAuthentication" με ένα καταχωρημένο URI εφαρμογής Microsoft Entra ID για κάθε υποστηριζόμενο cloud. Το Fabric δημιουργεί ένα διακριτικό σύμφωνα με το κοινό που έχει ρυθμιστεί για το τρέχον cloud και το παραδίδει στην απεικόνιση.
Η απεικόνιση μπορεί στη συνέχεια να χρησιμοποιήσει το διακριτικό για έλεγχο ταυτότητας έναντι του αντίστοιχου κοινού, αντιπροσωπεύοντας την υπηρεσία υποστήριξης:

"privileges": [
    {
        "name": "AADAuthentication",
        "parameters": {
            "COM": "https://contoso.com",
            "CN": "https://contoso.cn"
        }
    }
]

Στο αρχείο pbiviz.json , ορίστε την έκδοση API σε 5.9.1 ή νεότερη:

Το πρόσφατα εκτεθειμένο AcquireAADTokenService περιέχει δύο μεθόδους:

  • acquireAADToken: Επιστρέφει ένα ωφέλιμο φορτίο διακριτικού ελέγχου ταυτότητας τύπου AcquireAADTokenResult για την απεικόνιση ή null, εάν δεν είναι δυνατή η λήψη του.

     /**
     * Enum representing the various clouds supported by the Authentication API.
     */
    export const enum CloudName {
        COM = "COM",         // Commercial Cloud
        CN = "CN",           // China Cloud
        GCC = "GCC",         // US Government Community Cloud
        GCCHIGH = "GCCHIGH", // US Government Community Cloud High
        DOD = "DOD",         // US Department of Defense Cloud
    }
    
    /**
     * Interface representing information about the user associated with the token.
     */
    export interface AcquireAADTokenUserInfo {
        userId?: string;   // Unique identifier for the user
        tenantId?: string; // Unique identifier for the tenant
    }
    
    /**
     * Interface representing information about the fabric environment.
     */
    export interface AcquireAADTokenFabricInfo {
        cloudName?: CloudName; // Name of the cloud environment
    }
    
    /**
     * Interface representing the result of acquiring a Microsoft Entra ID token.
     */
    export interface AcquireAADTokenResult {
        accessToken?: string;       // Access token issued by Microsoft Entra ID
        expiresOn?: number;         // Expiration time of the access token
        userInfo?: AcquireAADTokenUserInfo;     // Information about the user associated with the token
        fabricInfo?: AcquireAADTokenFabricInfo; // Information about the fabric environment
    }
    
  • acquireAADTokenstatus: Επιστρέφει μία από τις ακόλουθες καταστάσεις προνομίων που σχετίζονται με την απόκτηση του διακριτικού.

    • Επιτρέπεται: Το προνόμιο επιτρέπεται στο τρέχον περιβάλλον.
    • NotDeclared: Η δήλωση προνομίων λείπει στην ενότητα οπτικών δυνατοτήτων.
    • NotSupported: Το προνόμιο δεν υποστηρίζεται στο τρέχον περιβάλλον.
    • DisabledByAdmin: Ο διαχειριστής του Fabric αρνήθηκε τη χρήση προνομίων.

Το παρακάτω δείγμα κώδικα δείχνει πώς μπορείτε να αποκτήσετε ένα διακριτικό Microsoft Entra ID χρησιμοποιώντας το API:

    // Step 1: Check the status of AAD token acquisition 
    const acquireTokenStatus = await this.acquireAADTokenService.acquireAADTokenstatus(); 

    // Step 2: Verify if acquiring the token is allowed 
    if (acquireTokenStatus === PrivilegeStatus.Allowed) { 

       // Step 3: Acquire the Microsoft Entra ID token
       const acquireAADTokenResult: AcquireAADTokenResult = await this.acquireAADTokenService.acquireAADToken(); 

       // Step 4: Confirm successful acquisition of the access token
       if (acquireAADTokenResult.accessToken) { 

            // Step 5: Call your backend API with the obtained token 
        } 
    } 

    // Step 6: Handle unsuccessful AAD token acquisition 

Ζητήματα προς εξέταση και περιορισμοί

Η απόκτηση διακριτικού αποκλείεται εάν ισχύει οποιαδήποτε από τις ακόλουθες συνθήκες:

  • Ο διακόπτης μισθωτή είναι απενεργοποιημένος.

  • Ο χρήστης δεν είναι συνδεδεμένος (στην επιφάνεια εργασίας).

  • Ο ISV δεν προεξουσιοδότησε την εφαρμογή Power BI.

  • Η μορφή της παραμέτρου προνομίου AADAuthentication δεν είναι έγκυρη.

  • Η απεικόνιση δεν έχει εγκριθεί δημόσια ή δεν είναι απεικόνιση εντοπισμού σφαλμάτων.

  • Η υπηρεσία παρασκηνίου της απεικόνισης, που έχει ρυθμιστεί ως κοινό από την απεικόνιση, δεν έχει τις κατάλληλες συγκαταθέσεις για το API Graph στον μισθωτή καταναλωτή που χρησιμοποιεί την απεικόνιση. Για περισσότερες πληροφορίες σχετικά με τη συγκατάθεση, ανατρέξτε στο θέμα Συγκατάθεση διαχειριστή μισθωτή.

Ρύθμιση εφαρμογής Microsoft Entra ID