Ενσωμάτωση περιεχομένου Power BI με κύρια υπηρεσία και ένα πιστοποιητικόEmbed Power BI content with service principal and a certificate

Ο έλεγχος ταυτότητας βάσει πιστοποιητικού σάς επιτρέπει να εκτελείτε έλεγχο ταυτότητας από το Azure Active Directory (Azure AD) με ένα πιστοποιητικό προγράμματος-πελάτη σε μια συσκευή Windows, Android ή iOS ή που διατηρείται σε ένα Azure Key Vault.Certificate-based authentication enables you to be authenticated by Azure Active Directory (Azure AD) with a client certificate on a Windows, Android or iOS device, or kept in an Azure Key Vault.

Η χρήση αυτής της μεθόδου ελέγχου ταυτότητας επιτρέπει τη διαχείριση πιστοποιητικών από μια κεντρική θέση, χρησιμοποιώντας την αρχή έκδοσης πιστοποιητικών, για περιστροφή ή ανάκληση.Using this method of authentication allows managing certificates from a central place, using the CA, for rotation or revocation.

Μπορείτε να μάθετε περισσότερα σχετικά με τα πιστοποιητικά στο Azure AD, στις ροές διαπιστευτηρίων προγράμματος-πελάτη στη σελίδα GitHub.You can learn more about certificates in Azure AD in the Client credential flows GitHub page.

ΜέθοδοςMethod

  1. Ενσωματώστε το περιεχόμενό σας με την οντότητα υπηρεσίας.Embed your content with service principal.

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

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

  4. Αποκτήστε το πιστοποιητικό από το Azure Key Vault.Get the certificate from Azure Key Vault.

  5. Εφαρμόστε έλεγχο ταυτότητας χρησιμοποιώντας την κύρια υπηρεσία και ένα πιστοποιητικό.Authenticate using service principal and a certificate.

Βήμα 1 - Ενσωματώστε το περιεχόμενό σας με την οντότητα υπηρεσίαςStep 1 - Embed your content with service principal

Για να ενσωματώσετε το περιεχόμενό σας με την οντότητα υπηρεσίας, ακολουθήστε τις οδηγίες στο θέμα Ενσωμάτωση περιεχομένου Power BI με οντότητα υπηρεσίας και μυστικό κωδικό εφαρμογής.To embed your content with service principal, follow the instructions in Embed Power BI content with service principal and an application secret.

Σημείωση

Εάν έχετε ήδη περιεχόμενο που είναι ενσωματωμένο με χρήση οντότητας υπηρεσίας, παραλείψτε αυτό το βήμα και προχωρήστε στο βήμα 2.If you already have content that's embedded using a service principal, skip this step and advance to step 2.

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

Μπορείτε να προμηθευτείτε ένα πιστοποιητικό από μια αξιόπιστη Αρχή έκδοσης πιστοποιητικών ή να δημιουργήσετε ένα πιστοποιητικό μόνοι σας.You can procure a certificate from a trusted Certificate Authority, or generate a certificate yourself.

Αυτή η ενότητα περιγράφει τη δημιουργία ενός πιστοποιητικού με χρήση του Azure Key Vault και τη λήψη του αρχείου .cer το οποίο περιέχει το δημόσιο κλειδί.This section describes creating a certificate using Azure Key Vault, and downloading the .cer file which contains the public key.

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

  2. Αναζητήστε Key Vault και κάντε κλικ στη σύνδεση Key Vaults.Search for Key Vaults and click the Key Vaults link.

    Ένα στιγμιότυπο οθόνης που εμφανίζει μια σύνδεση προς το κλειδί Vault στην πύλη Azure.

  3. Κάντε κλικ στο key vault στο οποίο θέλετε να προσθέσετε ένα πιστοποιητικό.Click the key vault you want to add a certificate to.

    Ένα στιγμιότυπο οθόνης που εμφανίζει μια λίστα με θολωμένα key vaults στην πύλη Azure.

  4. Κάντε κλικ στην επιλογή Πιστοποιητικά.Click Certificates.

    Στιγμιότυπο οθόνης που εμφανίζει τη σελίδα Key vaults με κλήση της επιλογής "Πιστοποιητικά".

  5. Κάντε κλικ στην επιλογή Δημιουργία/εισαγωγή.Click Generate/Import.

    Στιγμιότυπο οθόνης που εμφανίζει το παράθυρο "Πιστοποιητικά" με κλήση της επιλογής "Δημιουργία / Εισαγωγή".

  6. Ρυθμίστε τις παραμέτρους των πεδίων Δημιουργία πιστοποιητικού ως εξής:Configure the Create a certificate fields as follows:

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

    • Όνομα πιστοποιητικού - Πληκτρολογήστε ένα όνομα για το πιστοποιητικό σαςCertificate Name - Enter a name for your certificate

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

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

    • Ονόματα DNS - Ονόματα 0 DNSDNS Names - 0 DNS names

    • Περίοδος ισχύος (σε μήνες) - Καταχωρήστε τη διάρκεια ισχύος του πιστοποιητικούValidity Period (in months) - Enter the certificate's validity duration

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

    • Τύπος ενέργειας διάρκειας ζωής - Ανανεώνεται αυτόματα σε ένα καθορισμένο ποσοστό διάρκειας ζωήςLifetime Action Type - Automatically renew at a given percentage lifetime

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

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

  7. Κάντε κλικ στην επιλογή Δημιουργία.Click Create. Το πρόσφατα δημιουργημένο πιστοποιητικό είναι απενεργοποιημένο από προεπιλογή.The newly created certificate is disabled by default. Μπορεί να χρειαστούν έως και πέντε λεπτά για να ενεργοποιηθεί.It can take up to five minutes to become enabled.

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

  9. Κάντε κλικ στην επιλογή Λήψη σε μορφή CER.Click Download in CER format. Το αρχείο που λήφθηκε περιέχει το δημόσιο κλειδί.The downloaded file contains the public key.

    Στιγμιότυπο οθόνης που εμφανίζει το κουμπί λήψης σε μορφή CER.

Βήμα 3 - Ρυθμίστε τον έλεγχο ταυτότητας πιστοποιητικούStep 3 - Set up certificate authentication

  1. Στην εφαρμογή σας Azure AD, κάντε κλικ στην καρτέλα Πιστοποιητικά και μυστικοί κωδικοί.In your Azure AD application, click the Certificates & secrets tab.

    Στιγμιότυπο οθόνης που εμφανίζει το τμήμα παραθύρου "Πιστοποιητικά και μυστικοί κωδικοί" για μια εφαρμογή στην πύλη Microsoft Azure.

  2. Κάντε κλικ στην επιλογή Αποστολή πιστοποιητικού και αποστείλετε το αρχείο .cer που δημιουργήσατε και λάβατε στο βήμα 2 αυτού του εκπαιδευτικού βοηθήματος.Click Upload certificate and upload the .cer file you created and downloaded in step 2 of this tutorial. Το αρχείο .cer που λήφθηκε περιέχει το δημόσιο κλειδί.The .cer file contains the public key.

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

Χρησιμοποιήστε την Ταυτότητα διαχειριζόμενης υπηρεσίας (MSI) για να λάβετε το πιστοποιητικό από το Azure Key Vault.Use Managed Service Identity (MSI) to get the certificate from Azure Key Vault. Αυτή η διαδικασία περιλαμβάνει τη λήψη του πιστοποιητικού .pfx που περιέχει τόσο τα δημόσια όσο και τα ιδιωτικά κλειδιά.This process involves getting the .pfx certificate that contains both the public and private keys.

Ανατρέξτε στο παράδειγμα κώδικα για την ανάγνωση του πιστοποιητικού από το Azure Key Vault.Refer to the code example for reading the certificate from Azure Key Vault. Εάν θέλετε να χρησιμοποιήσετε το Visual Studio, ανατρέξτε στο θέμα Ρύθμιση παραμέτρων του Visual Studio για χρήση του MSI.If you want to use Visual Studio, refer to Configure Visual Studio to use 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;
    try
    {
        certificate = keyVaultClient.GetCertificateAsync($"https://{KeyVaultName}.vault.azure.net/", certName).Result;
        secret = keyVaultClient.GetSecretAsync(certificate.SecretIdentifier.Identifier).Result;
    }
    catch (Exception)
    {
        return null;
    }

    return new X509Certificate2(Convert.FromBase64String(secret.Value));
}

Βήμα 5 - Εφαρμόστε έλεγχο ταυτότητας χρησιμοποιώντας την κύρια υπηρεσία και ένα πιστοποιητικόStep 5 - Authenticate using service principal and a certificate

Μπορείτε να κάνετε έλεγχο ταυτότητας της εφαρμογής σας χρησιμοποιώντας την αρχή υπηρεσίας και ένα πιστοποιητικό που είναι αποθηκευμένο στο Azure Key Vault, μέσω σύνδεσης στο Azure Key Vault.You can authenticate your app using service principal and a certificate that's stored in Azure Key Vault, by connecting to Azure Key Vault.

Για να συνδεθείτε και να διαβάσετε το πιστοποιητικό από το Azure Key Vault, ανατρέξτε στον παρακάτω κώδικα.To connect and read the certificate from Azure Key Vault, refer to the code below.

Σημείωση

Εάν έχετε ήδη ένα πιστοποιητικό που έχει δημιουργηθεί από τον οργανισμό σας, αποστείλετε το αρχείο .pfx στο Azure Key Vault.If you already have a certificate created by your organization, upload the .pfx file to 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();
    try
    {
        authenticationResult = await clientApp.AcquireTokenForClient(Scope).ExecuteAsync();
    }
    catch (MsalException)
    {
        throw;
    }
    return authenticationResult
}

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

Κατά τη δημιουργία της ενσωματωμένης λύσης σας, μπορεί να είναι χρήσιμο να ρυθμίσετε τις παραμέτρους του Visual Studio ώστε να χρησιμοποιούν την Ταυτότητα διαχειριζόμενης υπηρεσίας (MSI).When creating your embedded solution, it may be useful to configure Visual Studio to use Managed Service Identity (MSI). Το MSI είναι μια δυνατότητα που σας επιτρέπει να διαχειριστείτε την ταυτότητά σας Azure AD.MSI is a feature that enables you to manage your Azure AD identity. Μόλις ρυθμιστούν οι παράμετροί της, θα επιτρέψουμε στο Visual Studio να εφαρμόσει έλεγχο ταυτότητας του Azure Key Vault.Once configured, it will let Visual Studio authenticate against your Azure Key Vault.

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

  2. Κάντε κλικ στην επιλογή Εργαλεία > Επιλογές.Click Tools > Options.

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

  3. Κάντε αναζήτηση για την Επιλογή λογαριασμού και κάντε κλικ στην Επιλογή λογαριασμού.Search for Account Selection and click Account Selection.

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

  4. Προσθέστε τον λογαριασμό που έχει πρόσβαση στο Azure Key Vault.Add the account that has access to your Azure Key Vault.

Επόμενα βήματαNext steps