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
İçeriğinizi hizmet sorumlusuyla ekleyin.
Bir sertifika oluşturun.
Sertifika kimlik doğrulamayı ayarlayın.
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.
Anahtar kasaları bağlantısını arayın ve seçin.
Sertifika eklemek istediğiniz anahtar kasasını seçin.
Sertifikalar'ı seçin.
Oluştur/İçeri Aktar'ı seçin.
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
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ı
Oluştur'u belirleyin. Yeni oluşturulan sertifika varsayılan olarak devre dışıdır. Etkinleştirilmesi beş dakika kadar sürebilir.
Oluşturduğunuz sertifikayı seçin.
CER biçiminde indir'i seçin. İndirilen dosya ortak anahtarı içerir.
3. Adım - Sertifika kimlik doğrulamayı ayarlama
Microsoft Entra uygulamanızda Sertifikalar ve gizli diziler sekmesini seçin.
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.
Projenizi Visual Studio'da açın.
Araçlar Seçenekleri'ni> seçin.
Hesap Seçimi için arama yapın ve seçin.
Azure Key Vault'unuza erişimi olan hesabı ekleyin.