Ενσωμάτωση περιεχομένου Power BI με κύρια υπηρεσία και πιστοποιητικό

Ο έλεγχος ταυτότητας βάσει πιστοποιητικού σάς επιτρέπει να πραγματοποιείτε έλεγχο ταυτότητας από το Microsoft Entra ID με ένα πιστοποιητικό προγράμματος-πελάτη. Το πιστοποιητικό προγράμματος-πελάτη μπορεί να βρίσκεται σε μια συσκευή Windows, Android ή iOS ή το πιστοποιητικό προγράμματος-πελάτη μπορεί να διατηρηθεί σε ένα Azure Key Vault.

Η χρήση αυτής της μεθόδου ελέγχου ταυτότητας επιτρέπει τη διαχείριση πιστοποιητικών από ένα κεντρικό σημείο χρησιμοποιώντας την αρχή έκδοσης πιστοποιητικών (CA) για περιστροφή ή ανάκληση.

Μπορείτε να μάθετε περισσότερα σχετικά με τα πιστοποιητικά στο Microsoft Entra ID στη σελίδα Ροές διαπιστευτηρίων προγράμματος-πελάτη στο GitHub.

Μέθοδος

  1. Ενσωματώστε το περιεχόμενό σας με την κύρια υπηρεσία.

  2. Δημιουργήστε ένα πιστοποιητικό.

  3. Ρυθμίστε τον έλεγχο ταυτότητας πιστοποιητικού.

  4. Κάντε λήψη του πιστοποιητικού από το Azure Key Vault.

  5. Πραγματοποιήστε έλεγχο ταυτότητας χρησιμοποιώντας την κύρια υπηρεσία και ένα πιστοποιητικό.

Βήμα 1 - Ενσωμάτωση του περιεχομένου σας με κύρια υπηρεσία

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

Σημείωμα

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

Βήμα 2 - Δημιουργήστε ένα πιστοποιητικό

Μπορείτε να προμηθευτείτε ένα πιστοποιητικό από μια αξιόπιστη αρχή έκδοσης πιστοποιητικών ή να δημιουργήσετε ένα πιστοποιητικό μόνοι σας.

Αυτή η ενότητα περιγράφει τη δημιουργία ενός πιστοποιητικού με χρήση του Azure Key Vault και τη λήψη του αρχείου .cer , το οποίο περιέχει το δημόσιο κλειδί.

  1. Συνδεθείτε στο Microsoft Azure.

  2. Αναζητήστε και επιλέξτε τη σύνδεση Key Vaults .

    Στιγμιότυπο οθόνης του παραθύρου της πύλης Azure, το οποίο εμφανίζει μια σύνδεση προς την υπηρεσία Key Vault στη λίστα Υπηρεσιών.

  3. Επιλέξτε τον θάλαμο κλειδιών στον οποίο θέλετε να προσθέσετε ένα πιστοποιητικό.

    Στιγμιότυπο οθόνης του παραθύρου της πύλης Azure, το οποίο εμφανίζει μια λίστα με θολωτούς θαλάμους κλειδιών στη λίστα Key Vaults.

  4. Επιλέξτε Πιστοποιητικά.

    Στιγμιότυπο οθόνης του παραθύρου της πύλης Azure, το οποίο εμφανίζει τη σελίδα Key vaults με το επισημασμένο στοιχείο Πιστοποιητικά.

  5. Επιλέξτε Δημιουργία/Εισαγωγή.

    Στιγμιότυπο οθόνης του παραθύρου της πύλης Azure, το οποίο εμφανίζει το τμήμα παραθύρου

  6. Ρυθμίστε τις παραμέτρους των πεδίων Δημιουργία πιστοποιητικού ως εξής:

    • Μέθοδος δημιουργίας πιστοποιητικού - Γενικά

    • Όνομα πιστοποιητικού - Εισαγάγετε ένα όνομα για το πιστοποιητικό σας

    • Τύπος αρχής έκδοσης πιστοποιητικών (CA) - Πιστοποιητικό με υπογραφή από τον χρήστη

    • Θέμα - Ένα αποκλειστικό όνομα X.500

    • Ονόματα DNS - Ονόματα 0 DNS

    • Περίοδος ισχύος (σε μήνες) - Καταχωρήστε τη διάρκεια ισχύος του πιστοποιητικού

    • Τύπος περιεχομένου - PKCS #12

    • Τύπος ενέργειας διάρκειας ζωής - Ανανεώνεται αυτόματα σε ένα καθορισμένο ποσοστό διάρκειας ζωής

    • Ποσοστό διάρκειας ζωής - 80

    • Ρύθμιση παραμέτρων πολιτικής για προχωρημένους - Δεν έχει ρυθμιστεί

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

  8. Επιλέξτε το πιστοποιητικό που δημιουργήσατε.

  9. Επιλέξτε Λήψη σε μορφή CER. Το αρχείο λήψης περιέχει το δημόσιο κλειδί.

    Στιγμιότυπο οθόνης του παραθύρου της πύλης Azure, το οποίο εμφανίζει το επισημασμένο κουμπί

Βήμα 3 - Ρύθμιση ελέγχου ταυτότητας πιστοποιητικού

  1. Στην εφαρμογή Σας Microsoft Entra, επιλέξτε την καρτέλα Πιστοποιητικά και μυστικοί κωδικοί .

    Στιγμιότυπο οθόνης του παραθύρου πύλης Azure, το οποίο εμφανίζει το παράθυρο

  2. Επιλέξτε Αποστολή πιστοποιητικού και αποστείλετε το αρχείο .cer που δημιουργήσατε και κατεβάσατε στο βήμα 2 αυτής της εκμάθησης. Το αρχείο .cer περιέχει το δημόσιο κλειδί.

Βήμα 4 - Κάντε λήψη του πιστοποιητικού από το Azure Key Vault

Χρησιμοποιήστε την Ταυτότητα διαχειριζόμενης υπηρεσίας (MSI) για να λάβετε το πιστοποιητικό από το Azure Key Vault. Αυτή η διαδικασία περιλαμβάνει τη λήψη του πιστοποιητικού .pfx που περιέχει τόσο τα δημόσια όσο και τα ιδιωτικά κλειδιά.

Ανατρέξτε στο παράδειγμα κώδικα για την ανάγνωση του πιστοποιητικού από το Azure Key Vault. Εάν θέλετε να χρησιμοποιήσετε το Visual Studio, ανατρέξτε στο θέμα Ρύθμιση παραμέτρων του Visual Studio για χρήση του MSI.

private X509Certificate2 ReadCertificateFromVault(string certName)
{
    var serviceTokenProvider = new AzureServiceTokenProvider();
    var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(serviceTokenProvider.KeyVaultTokenCallback));
    CertificateBundle certificate = null;
    SecretBundle secret = null;

    certificate = keyVaultClient.GetCertificateAsync($"https://{KeyVaultName}.vault.azure.net/", certName).Result;
    secret = keyVaultClient.GetSecretAsync(certificate.SecretIdentifier.Identifier).Result;
    
    return new X509Certificate2(Convert.FromBase64String(secret.Value));
}

Βήμα 5 - Πραγματοποιήστε έλεγχο ταυτότητας χρησιμοποιώντας την κύρια υπηρεσία και ένα πιστοποιητικό

Μπορείτε να ελέγξετε την ταυτότητα της εφαρμογής σας που χρησιμοποιεί μια κύρια υπηρεσία και ένα πιστοποιητικό που είναι αποθηκευμένο στο Azure Key Vault, μέσω σύνδεσης στο Azure Key Vault.

Για να συνδεθείτε και να διαβάσετε το πιστοποιητικό από το Azure Key Vault, ανατρέξτε στο ακόλουθο δείγμα κώδικα.

Σημείωμα

Εάν έχετε ήδη ένα πιστοποιητικό που έχει δημιουργηθεί από τον οργανισμό σας, αποστείλετε το αρχείο .pfx στο Azure Key Vault.

// Preparing needed variables
var Scope = "https://analysis.windows.net/powerbi/api/.default"
var ApplicationId = "{YourApplicationId}"
var tenantSpecificURL = "https://login.microsoftonline.com/{YourTenantId}/"
X509Certificate2 certificate = ReadCertificateFromVault(CertificateName);

// Authenticating with a SP and a certificate
public async Task<AuthenticationResult> DoAuthentication(){
    IConfidentialClientApplication clientApp = null;
    clientApp = ConfidentialClientApplicationBuilder.Create(ApplicationId)
                                                    .WithCertificate(certificate)
                                                    .WithAuthority(tenantSpecificURL)
                                                    .Build();
    return await clientApp.AcquireTokenForClient(Scope).ExecuteAsync();
}

Ρύθμιση παραμέτρων Του Visual Studio για χρήση του MSI

Όταν δημιουργείτε μια ενσωματωμένη λύση, μπορεί να είναι χρήσιμο να ρυθμίσετε τις παραμέτρους του Visual Studio για χρήση της ταυτότητας διαχειριζόμενης υπηρεσίας (MSI). Το MSI είναι μια δυνατότητα που σας επιτρέπει να διαχειρίζεστε την ταυτότητά σας Microsoft Entra. Αφού ρυθμιστούν οι παράμετροί του, το Visual Studio θα επιτρέψει τον έλεγχο ταυτότητας του Azure Key Vault.

Σημείωμα

Ο χρήστης που εισέρχεται στο Visual Studio απαιτεί δικαιώματα Azure Key Vault για τη λήψη του πιστοποιητικού.

  1. Ανοίξτε το έργο σας στο Visual Studio.

  2. Επιλέξτε Εργαλεία>Επιλογές.

    Στιγμιότυπο οθόνης του παραθύρου Visual Studio, το οποίο εμφανίζει το επισημασμένο κουμπί

  3. Αναζητήστε και επιλέξτε Επιλογή λογαριασμού.

    Στιγμιότυπο οθόνης του παραθύρου Επιλογές Visual Studio, το οποίο εμφανίζει την επισημασμένη επιλογή λογαριασμού στα αποτελέσματα αναζήτησης.

  4. Προσθέστε τον λογαριασμό που έχει πρόσβαση στο Azure Key Vault.