Hizmet sorumlusu ve sertifika ile Power BI içeriği ekleme

Sertifika tabanlı kimlik doğrulaması, Microsoft Entra Id tarafından bir istemci sertifikasıyla kimlik doğrulaması yapmanıza olanak tanır. İstemci sertifikası bir Windows, Android veya iOS cihazında veya istemci sertifikası bir Azure Key Vault'ta tutulabilir.

Bu kimlik doğrulama yönteminin kullanılması, döndürme veya iptal için sertifika yetkilisini (CA) kullanarak sertifikaları merkezi bir yerden yönetmeye olanak tanır.

İstemci kimlik bilgileri akışları GitHub sayfasında Microsoft Entra Id'de sertifikalar hakkında daha fazla bilgi edinebilirsiniz.

Yöntem

  1. İçeriğinizi hizmet sorumlusuyla ekleyin.

  2. Bir sertifika oluşturun.

  3. Sertifika kimlik doğrulamayı ayarlayın.

  4. Sertifikayı Azure Key Vault'tan alın.

  5. Hizmet sorumlusu ve sertifika kullanarak kimlik doğrulaması yapın.

1. Adım : İçeriğinizi hizmet sorumlusuyla ekleme

İçeriğinizi bir hizmet sorumlusuyla eklemek için Power BI içeriğini hizmet sorumlusu ve uygulama gizli dizisiyle ekleme başlığındaki yönergeleri izleyin.

Not

Hizmet sorumlusu kullanılarak eklenmiş içeriğiniz zaten varsa, bu adımı atlayın ve 2. adıma geçin.

2. Adım - Sertifika oluşturma

Güvenilen bir Sertifika Yetkilisinden sertifika temin edebilir veya kendiniz bir sertifika oluşturabilirsiniz.

Bu bölümde Azure Key Vault kullanarak sertifika oluşturma ve ortak anahtarı içeren .cer dosyasını indirme işlemleri açıklanmaktadır.

  1. Microsoft Azure'da oturum açın.

  2. Anahtar kasaları bağlantısını arayın ve seçin.

    Hizmetler listesinde anahtar kasası hizmetinin bağlantısını gösteren Azure portalı penceresinin ekran görüntüsü.

  3. Sertifika eklemek istediğiniz anahtar kasasını seçin.

    Anahtar kasaları listesindeki bulanık anahtar kasalarının listesini gösteren Azure portalı penceresinin ekran görüntüsü.

  4. Sertifikalar'ı seçin.

    Vurgulanmış Sertifikalar öğesinin bulunduğu Anahtar kasaları sayfasını gösteren Azure portalı penceresinin ekran görüntüsü.

  5. Oluştur/İçeri Aktar'ı seçin.

    Oluştur/ İçeri Aktar öğesinin vurgulandığı Sertifika bölmesini gösteren Azure portalı penceresinin ekran görüntüsü.

  6. Sertifika oluştur alanlarını aşağıdaki gibi yapılandırın:

    • Sertifika Oluşturma Yöntemi - Genel

    • Sertifika Adı - Sertifikanız için bir ad girin

    • Sertifika Yetkilisi (CA) Türü - Otomatik olarak imzalanan sertifika

    • Konu - X.500 ayırt edici bir ad

    • DNS Adları - 0 DNS adları

    • Geçerlilik Süresi (ay cinsinden) - Sertifikanın geçerlilik süresini girin

    • İçerik Türü - PKCS #12

    • Yaşam Süresi Eylem Türü - Belirli bir yüzde ömründe otomatik olarak yenile

    • Yaşam Süresi Yüzdesi - 80

    • Gelişmiş İlke Yapılandırması - Yapılandırılmadı

  7. Oluştur'u belirleyin. Yeni oluşturulan sertifika varsayılan olarak devre dışıdır. Etkinleştirilmesi beş dakika kadar sürebilir.

  8. Oluşturduğunuz sertifikayı seçin.

  9. CER biçiminde indir'i seçin. İndirilen dosya ortak anahtarı içerir.

    CER Biçiminde İndir düğmesinin vurgulandığı Azure portalı penceresinin ekran görüntüsü.

3. Adım - Sertifika kimlik doğrulamayı ayarlama

  1. Microsoft Entra uygulamanızda Sertifikalar ve gizli diziler sekmesini seçin.

    Bir uygulamanın sertifikalar ve gizli diziler bölmesini gösteren Azure portalı penceresinin ekran görüntüsü.

  2. Sertifikayı karşıya yükle'yi seçin ve bu öğreticinin 2. adımında oluşturduğunuz ve indirdiğiniz .cer dosyasını karşıya yükleyin. .cer dosyası ortak anahtarı içerir.

4. Adım - Sertifikayı Azure Key Vault'tan alma

Azure Key Vault'tan sertifikayı almak için Yönetilen Hizmet Kimliği'ni (MSI) kullanın. Bu işlem hem ortak hem de özel anahtarları içeren .pfx sertifikasını almayı içerir.

Azure Key Vault'tan sertifikayı okumak için kod örneğine bakın. Visual Studio'yu kullanmak istiyorsanız Bkz. Visual Studio'yu MSI kullanacak şekilde yapılandırma.

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. Adım - Hizmet sorumlusu ve sertifika kullanarak kimlik doğrulaması

Azure Key Vault'a bağlanarak hizmet sorumlusu ve Azure Key Vault'ta depolanan bir sertifika kullanan uygulamanızın kimliğini doğrulayabilirsiniz.

Azure Key Vault'tan sertifikaya bağlanmak ve sertifikayı okumak için aşağıdaki kod örneğine bakın.

Not

Kuruluşunuz tarafından oluşturulmuş bir sertifikanız varsa .pfx dosyasını Azure Key Vault'a yükleyin.

// 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'yu MSI kullanacak şekilde yapılandırma

Ekli bir çözüm oluşturduğunuzda, Visual Studio'yu Yönetilen Hizmet Kimliği (MSI) kullanacak şekilde yapılandırmak yararlı olabilir. MSI , Microsoft Entra kimliğinizi yönetmenizi sağlayan bir özelliktir. Yapılandırıldıktan sonra Visual Studio'yu Azure Key Vault'unuzda kimlik doğrulamasına izin verir.

Not

Visual Studio'da oturum açmak için sertifikayı almak için Azure Key Vault izinleri gerekir.

  1. Projenizi Visual Studio'da açın.

  2. Araçlar Seçenekleri'ni> seçin.

    Araçlar menüsünde vurgulanan Seçenekler düğmesini gösteren Visual Studio penceresinin ekran görüntüsü.

  3. Hesap Seçimi için arama yapın ve seçin.

    Arama sonuçlarında vurgulanan Hesap Seçimi seçeneğini gösteren Visual Studio Seçenekleri penceresinin ekran görüntüsü.

  4. Azure Key Vault'unuza erişimi olan hesabı ekleyin.