ฝังเนื้อหา 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. ค้นหาและเลือกลิงก์ ชุดเก็บ คีย์

    ภาพหน้าจอของหน้าต่างพอร์ทัล Azure ซึ่งแสดงลิงก์ไปยังบริการชุดเก็บคีย์ในรายการบริการ

  3. เลือกชุดเก็บคีย์ที่คุณต้องการเพิ่มใบรับรอง

    ภาพหน้าจอของหน้าต่างพอร์ทัล Azure ซึ่งแสดงรายการชุดเก็บคีย์ที่เบลอในรายการชุดเก็บคีย์

  4. เลือก ใบรับรอง

    สกรีนช็อตของหน้าต่างพอร์ทัล Azure ซึ่งแสดงหน้าชุดเก็บคีย์พร้อมรายการใบรับรองที่เน้น

  5. เลือก สร้าง/นำเข้า

    ภาพหน้าจอของหน้าต่างพอร์ทัล Azure ซึ่งแสดงบานหน้าต่างใบรับรองที่มีรายการสร้าง/นําเข้าที่เน้น

  6. กําหนดค่าเขตข้อมูล สร้างใบรับรอง ดังนี้:

    • วิธีการสร้าง ใบรับรอง - ทั่วไป

    • ชื่อ ใบรับรอง - ป้อนชื่อสําหรับใบรับรองของคุณ

    • ชนิดของผู้ให้บริการออกใบรับรอง (CA) - ใบรับรองแบบลงนามด้วยตนเอง

    • หัวเรื่อง - ชื่อเฉพาะ X.500

    • ชื่อ DNS - ชื่อ DNS 0

    • ระยะเวลาการมีผลบังคับใช้ (เดือน) - ป้อนระยะเวลาการมีผลบังคับใช้ของใบรับรอง

    • ชนิด เนื้อหา - PKCS #12

    • ชนิด การดําเนินการตลอดอายุการใช้งาน - ต่ออายุอัตโนมัติตามเปอร์เซ็นต์อายุการใช้งานที่ระบุ

    • เปอร์เซ็นต์อายุการใช้งาน - 80

    • การกําหนดค่า นโยบายขั้นสูง - ไม่ได้กําหนดค่า

  7. เลือก สร้าง ใบรับรองที่สร้างขึ้นใหม่ถูกปิดใช้งานตามค่าเริ่มต้น อาจใช้เวลาถึงห้านาทีในการเปิดใช้งาน

  8. เลือกใบรับรองที่คุณสร้างขึ้น

  9. เลือก ดาวน์โหลดในรูปแบบ CER ไฟล์ที่ดาวน์โหลดประกอบด้วยคีย์สาธารณะ

    สกรีนช็อตของหน้าต่างพอร์ทัล Azure ซึ่งแสดงปุ่มดาวน์โหลดที่เน้นใน CER Format

ขั้นตอนที่ 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 ของคุณ