API ελέγχου ταυτότητας
Το API ελέγχου ταυτότητας επιτρέπει στις απεικονίσεις να αποκτούν διακριτικά πρόσβασης microsoft Entra ID (παλαιότερα γνωστά ως Azure AD) για συνδεδεμένους χρήστες, διευκολύνοντας τον έλεγχο ταυτότητας καθολικής σύνδεσης.
Οι διαχειριστές του Power BI μπορούν να ενεργοποιήσουν ή να απενεργοποιήσουν το API μέσω ενός καθολικού διακόπτη. Η προεπιλεγμένη ρύθμιση αποκλείει (απενεργοποιεί) το API.
Το API ισχύει μόνο για απεικονίσεις AppSource και όχι για ιδιωτικές απεικονίσεις. Οι απεικονίσεις που είναι υπό ανάπτυξη μπορούν να ελεγχθούν σε λειτουργία εντοπισμού σφαλμάτων πριν από τη δημοσίευσή τους.
Υποστηριζόμενα περιβάλλοντα
Υποστηρίζονται τα ακόλουθα περιβάλλοντα:
- Web
- Επιφάνειας εργασίας
- RS Desktop
- Κινητή συσκευή
Μη υποστηριζόμενα περιβάλλοντα
Τα ακόλουθα περιβάλλοντα δεν υποστηρίζονται ακόμα:
- Υπηρεσία RS
- Ενσωματωμένη ανάλυση
- Teams
Τρόπος χρήσης του API ελέγχου ταυτότητας
Στο αρχείο capabilities.json, προσθέστε το δικαίωμα "AADAuthentication" με ένα URI καταχωρημένης εφαρμογής Με αναγνωριστικό Microsoft Entra για κάθε υποστηριζόμενο 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: Το δικαίωμα δεν υποστηρίζεται στο τρέχον περιβάλλον.
- DisabledBy Διαχείριση: Ο διαχειριστής fabric αρνήθηκε τη χρήση δικαιωμάτων.
Το παρακάτω δείγμα κώδικα παρουσιάζει τον τρόπο απόκτησης ενός διακριτικού αναγνωριστικού Microsoft Entra χρησιμοποιώντας το 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
Ζητήματα προς εξέταση και περιορισμοί
Η απόκτηση διακριτικού αποκλείεται εάν ισχύει οποιαδήποτε από τις ακόλουθες συνθήκες:
Ο διακόπτης μισθωτή είναι απενεργοποιημένος.
Ο χρήστης δεν έχει εισέλθει (στο Desktop).
Ο ISV δεν είχε εκ των προτέρων εξουσιοδότηση της εφαρμογής Power BI.
Η μορφή της παραμέτρου δικαιώματος AADAuthentication δεν είναι έγκυρη.
Η απεικόνιση δεν έχει εγκριθεί δημοσίως ή δεν είναι απεικόνιση εντοπισμού σφαλμάτων.
Η υπηρεσία παρασκηνίου της απεικόνισης, η οποία έχει ρυθμιστεί ως κοινό από την απεικόνιση, δεν διαθέτει τις κατάλληλες συναινέσεις για το Graph API στον μισθωτή καταναλωτή, χρησιμοποιώντας την απεικόνιση. Για περισσότερες πληροφορίες σχετικά με τη συγκατάθεση, ανατρέξτε στο θέμα Συγκατάθεση διαχειριστή μισθωτή.