Bagikan melalui


Gunakan Security Assertion Markup Language untuk SSO dari Power BI ke sumber data lokal

Dengan mengaktifkan Single Sign-On (SSO), Anda dapat memudahkan laporan Power BI dan dasbor untuk menyegarkan data dari sumber lokal sembari menghargai izin tingkat pengguna yang dikonfigurasi pada sumber tersebut. Untuk mengaktifkan konektivitas SSO yang lancar, gunakan Security Assertion Markup Language (SAML).

Catatan

Anda hanya bisa menyambungkan ke satu sumber data menggunakan SAML Sign-On Tunggal dengan gateway data lokal. Untuk menyambungkan ke sumber data tambahan menggunakan Single Sign-On SAML, Anda harus menggunakan gateway data lokal yang berbeda.

Sumber data yang didukung untuk SAML

Microsoft saat ini mendukung SAP Hana dengan SAML. Untuk informasi selengkapnya tentang menyiapkan dan mengonfigurasi akses menyeluruh untuk SAP Hana dengan menggunakan SAML, lihat SAML SSO untuk Platform BI ke HANA.

Kami mendukung sumber data tambahan dengan Kerberos (termasuk SAP Hana).

Untuk SAP Hana, kami sarankan Anda mengaktifkan enkripsi sebelum membuat koneksi SSO SAML. Untuk mengaktifkan enkripsi, konfigurasikan server HANA untuk menerima koneksi terenkripsi, lalu konfigurasikan gateway untuk menggunakan enkripsi untuk berkomunikasi dengan server HANA Anda. Karena driver HANA ODBC tidak mengenkripsi pernyataan SAML secara default, pernyataan SAML yang ditandatangani dikirim dari gateway ke server HANA dengan jelas dan rentan terhadap penyadapan serta penggunaan kembali oleh pihak ketiga.

Penting

Karena SAP tidak lagi mendukung OpenSSL, Microsoft juga menghentikan dukungannya. Koneksi yang ada terus berfungsi tetapi Anda tidak dapat lagi membuat koneksi baru. Gunakan Pustaka SAP Cryptographic (CommonCryptoLib), atau sapcrypto, sebagai gantinya.

Konfigurasikan gateway dan sumber data

Untuk menggunakan SAML, Anda harus membuat hubungan kepercayaan antara server HANA yang ingin Anda aktifkan SSO dan gateway-nya. Dalam skenario ini, gateway berfungsi sebagai identity provider (IdP) SAML. Anda dapat membangun hubungan ini dengan berbagai cara. SAP menyarankan agar Anda menggunakan CommonCryptoLib untuk menyelesaikan langkah-langkah penyiapan. Untuk informasi selengkapnya, lihat dokumentasi SAP resmi.

Buat sertifikat

Anda dapat membuat hubungan kepercayaan antara server HANA dan IdP gateway dengan menandatangani sertifikat X509 IdP gateway dengan otoritas sertifikat akar (CA) yang dipercayai oleh server HANA.

Untuk membuat sertifikat ini, lakukan hal berikut:

  1. Pada perangkat yang menjalankan SAP HANA, buat folder kosong untuk menyimpan sertifikat Anda, lalu buka folder tersebut.

  2. Buat sertifikat akar dengan menjalankan perintah berikut:

    openssl req -new -x509 -newkey rsa:2048 -days 3650 -sha256 -keyout CA_Key.pem -out CA_Cert.pem -extensions v3_ca'''
    

    Pastikan untuk menyalin dan menyimpan frasa sandi untuk menggunakan sertifikat ini untuk menandatangani sertifikat lain. Anda akan melihat file CA_Cert.pem dan CA_Key.pem dibuat.

  3. Buat sertifikat IdP dengan menjalankan perintah berikut:

    openssl req -newkey rsa:2048 -days 365 -sha256 -keyout IdP_Key.pem -out IdP_Req.pem -nodes
    

    Anda akan melihat file IdP_Key.pem dan IdP_Req.pem dibuat.

  4. Tanda tangani sertifikat IdP dengan sertifikat akar:

    openssl x509 -req -days 365 -in IdP_Req.pem -sha256 -extensions usr_cert -CA CA_Cert.pem -CAkey CA_Key.pem -CAcreateserial -out IdP_Cert.pem
    

    Anda akan melihat file CA_Cert.pem dan CA_Key.pem dibuat. Saat ini, Anda hanya perlu menangani file IdP_Cert.pem.

Membuat pemetaan untuk sertifikat IdP SAML

Untuk membuat pemetaan untuk sertifikat IdP SAML, lakukan hal berikut:

  1. Di SAP HANA Studio, klik kanan nama server SAP HANA Anda, lalu pilih Keamanan>Konsol Keamanan Terbuka>Identity Provider SAML.

  2. Pilih opsi SAP Cryptographic Library. Jangan gunakan opsi OpenSSL Cryptographic Library, yang tidak digunakan lagi oleh SAP.

    Screenshot of the

  3. Untuk mengimpor sertifikat yang ditandatangani IdP_Cert.pem, pilih tombol Impor biru, seperti yang diperlihatkan dalam gambar berikut:

    Screenshot of the

  4. Ingatlah untuk menetapkan nama untuk IdP Anda.

Mengimpor dan membuat sertifikat yang ditandatangani di HANA

Untuk mengimpor dan membuat sertifikat yang ditandatangani di HANA, lakukan hal berikut:

  1. Di SAP HANA Studio, jalankan kueri berikut:

    CREATE CERTIFICATE FROM '<idp_cert_pem_certificate_content>'
    

    Berikut contohnya:

    CREATE CERTIFICATE FROM
    '-----BEGIN CERTIFICATE-----
    MIIDyDCCArCgA...veryLongString...0WkC5deeawTyMje6
    -----END CERTIFICATE-----
    '
    
  2. Jika tidak ada lingkungan keamanan pribadi (PSE) dengan SAML tujuan, buat dengan menjalankan kueri berikut di SAP HANA Studio:

    CREATE PSE SAMLCOLLECTION;
    set pse SAMLCOLLECTION purpose SAML;
    
  3. Tambahkan sertifikat bertanda tangan yang baru dibuat ke PSE dengan menjalankan perintah berikut:

    alter pse SAMLCOLLECTION add CERTIFICATE <certificate_id>;
    

    Misalnya:

    alter pse SAMLCOLLECTION add CERTIFICATE 1978320;
    

    Anda dapat memeriksa daftar sertifikat yang dibuat dengan menjalankan kueri berikut:

    select * from PUBLIC"."CERTIFICATES"
    

    Sertifikat sekarang diinstal dengan benar. Untuk mengonfirmasi penginstalan, Anda bisa menjalankan kueri berikut:

    select * from "PUBLIC"."PSE_CERTIFICATES"
    

Memetakan pengguna

Untuk memasukkan pengguna, lakukan hal berikut:

  1. Di SAP HANA Studio, pilih folder Keamanan.

    Screenshot of the Security folder structure on the left pane.

  2. Perluas Pengguna, lalu pilih pengguna yang ingin Anda jadikan sebagai peta untuk pengguna Power BI Anda.

  3. Pilih kotak centang SAML , lalu pilih Konfigurasikan, seperti yang diperlihatkan dalam gambar berikut:

    Screenshot of the

  4. Pilih idP yang Anda buat di bagian Buat pemetaan untuk sertifikat IdP SAML. Untuk Identitas Eksternal, masukkan UPN pengguna Power BI (biasanya, alamat email yang digunakan pengguna untuk masuk ke Power BI), lalu pilih Tambahkan.

    Screenshot of the

    Jika Anda telah mengonfigurasikan gateway untuk menggunakan opsi konfigurasi ADUserNameReplacementProperty, masukkan nilai yang akan menggantikan UPN asli pengguna Power BI. Misalnya, jika Anda mengatur ADUserNameReplacementProperty ke SAMAccountName, masukkan SAMAccountName pengguna.

Mengonfigurasi gateway

Setelah Anda mengonfigurasi sertifikat dan identitas gateway, konversikan sertifikat ke format file PFX, lalu konfigurasikan gateway untuk menggunakan sertifikat dengan melakukan hal berikut:

  1. Konversikan sertifikat ke format PFX dengan menjalankan perintah berikut. Perintah ini menamai file hasil samlcert.pfx dan menetapkan root sebagai kata sandinya, seperti yang ditunjukkan di sini:

    openssl pkcs12 -export -out samltest.pfx -in IdP_Cert.pem -inkey IdP_Key.pem -passin pass:root -passout pass:root
    
  2. Salin file PFX ke mesin gateway:

    a. Klik dua kali samltest.pfx, lalu pilih Mesin Lokal>Selanjutnya.

    b. Masukkan kata sandi, lalu pilih Berikutnya.

    c. Pilih Tempatkan semua sertifikat di penyimpanan berikut, lalu pilih Telusuri>Personal>OK.

    Screenshot of the

    d. Pilih Selanjutnya, lalu pilih Selesai.

  3. Untuk memberikan akun layanan gateway akses ke kunci privat sertifikat, lakukan hal berikut:

    a. Pada mesin gateway, jalankan Microsoft Management Console (MMC).

    Screenshot of the gateway machine

    b. Di MMC, pilih File>Tambahkan/Hapus Snap-in.

    Screenshot of the

    c. Pilih Sertifikat>Tambahkan, lalu pilih Akun komputer>Selanjutnya.

    d. Pilih Komputer Lokal>Selesai>OK.

    e. Perluas Sertifikat>Personal>Sertifikat, lalu cari sertifikat.

    f. Klik kanan sertifikat dari penyimpanan pribadi, lalu pilih Semua Tugas>Kelola Kunci Privat.

    Screenshot of the

    g. Tambahkan akun layanan gateway ke daftar. Secara default, akunnya adalah NT SERVICE\PBIEgwService. Anda dapat mengetahui akun mana yang menjalankan layanan gateway dengan menjalankan services.msc lalu mencari layanan gateway data lokal.

    Screenshot of the

Terakhir, tambahkan thumbprint sertifikat ke konfigurasi gateway:

  1. Untuk mencantumkan sertifikat ke mesin Anda, jalankan perintah PowerShell berikut:

    Get-ChildItem -path cert:\LocalMachine\My
    
  2. Salin thumbprint untuk sertifikat yang Anda buat.

  3. Buka direktori gateway, yaitu C:\Program Files\On-premises data gateway secara default.

  4. Buka PowerBI.DataMovement.Pipeline.GatewayCore.dll.config, lalu cari bagian SapHanaSAMLCertThumbprint. Tempelkan thumbprint yang Anda salin di langkah 2.

  5. Mulai ulang layanan gateway.

Menjalankan laporan Power BI

Sekarang Anda dapat menggunakan halaman Kelola Gateway di Power BI untuk mengonfigurasi sumber data SAP HANA. Di bawah Pengaturan Tingkat Lanjut, aktifkan SSO melalui SAML. Dengan melakukannya, Anda dapat menerbitkan laporan dan himpunan data yang mengikat ke sumber data tersebut.

 Screenshot of advanced settings with single sign-on for SAML.

Catatan

SSO menggunakan Autentikasi Windows, jadi pastikan akun Windows dapat mengakses mesin gateway. Jika tidak yakin, pastikan untuk menambahkan NT-AUTHORITY\Authenticated Users (S-1-5-11) ke grup "Pengguna" mesin lokal.

Memecahkan masalah menggunakan SAML untuk akses menyeluruh ke SAP HANA

Bagian ini menyediakan langkah-langkah ekstensif untuk memecahkan masalah menggunakan SAML untuk akses menyeluruh ke SAP HANA. Menggunakan langkah-langkah ini dapat membantu Anda melakukan diagnosis sendiri dan memperbaiki masalah apa pun yang mungkin Anda hadapi.

Kredensial yang ditolak

Setelah mengonfigurasi SSO berbasis SAML, Anda mungkin melihat kesalahan berikut di portal Power BI: "Kredensial yang disediakan tidak dapat digunakan untuk sumber SapHana." Kesalahan ini menunjukkan bahwa kredensial SAML ditolak oleh SAP HANA.

Jejak autentikasi sisi server memberikan informasi terperinci untuk memecahkan masalah kredensial pada SAP HANA. Untuk mengonfigurasi pelacakan untuk server SAP HANA Anda, lakukan hal berikut:

  1. Di server SAP Hana, aktifkan jejak autentikasi dengan menjalankan kueri berikut:

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') set ('trace', 'authentication') = 'debug' with reconfigure 
    
  2. Rekonstruksi masalah tersebut.

  3. Di SAP HANA Studio, buka konsol administrasi, lalu pilih tab File Diagnosis.

  4. Buka jejak server indeks terbaru, lalu cari SAMLAuthenticator.cpp.

    Anda harus menemukan pesan kesalahan terperinci yang menunjukkan akar penyebabnya, seperti yang ditunjukkan dalam contoh berikut:

    [3957]{-1}[-1/-1] 2018-09-11 21:40:23.815797 d Authentication   SAMLAuthenticator.cpp(00091) : Element '{urn:oasis:names:tc:SAML:2.0:assertion}Assertion', attribute 'ID': '123123123123123' is not a valid value of the atomic type 'xs:ID'.
    [3957]{-1}[-1/-1] 2018-09-11 21:40:23.815914 i Authentication   SAMLAuthenticator.cpp(00403) : No valid SAML Assertion or SAML Protocol detected
    
  5. Setelah Anda selesai memecahkan masalah, nonaktifkan jejak autentikasi dengan menjalankan kueri berikut:

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') UNSET ('trace', 'authentication');
    

Memverifikasi dan memecahkan masalah kesalahan gateway

Untuk mengikuti prosedur di bagian ini, Anda perlu mengumpulkan log gateway.

Kesalahan SSL (sertifikat)

Gejala kesalahan

Masalah ini memiliki beberapa gejala. Saat mencoba menambahkan sumber data baru, Anda mungkin melihat pesan kesalahan seperti berikut ini:

Unable to connect: We encountered an error while trying to connect to . Details: "We could not register this data source for any gateway instances within this cluster. Please find more details below about specific errors for each gateway instance."

Saat mencoba membuat atau me-refresh laporan, Anda mungkin melihat pesan kesalahan seperti yang ada di gambar berikut:

Screenshot of a 'Cannot load model' troubleshooting SSL error window.

Saat menyelidiki Mashup[date]*.log, Anda akan melihat pesan kesalahan berikut:

A connection was successfully established with the server, but then an error occurred during the login process and the certificate chain was issued by an authority that is not trusted

Resolusi

Untuk mengatasi kesalahan SSL ini, buka koneksi sumber data lalu, di daftar drop-down Validasi Sertifikat Server , pilih Tidak, seperti yang ditunjukkan pada gambar berikut:

Screenshot showing the S S L error being resolved on the 'Data Source Settings' pane.

Setelah Anda memilih pengaturan ini, pesan kesalahan tidak akan muncul lagi.

Kesalahan SignXML Gateway

Kesalahan SignXML gateway mungkin merupakan akibat dari pengaturan SapHanaSAMLCertThumbprint yang salah, atau mungkin merupakan masalah dengan server HANA. Entri dalam log gateway membantu mengidentifikasi tempat masalah berada, dan cara mengatasinya.

Gejala kesalahan

Entri log untuk SignXML: Found the cert...: Jika file GatewayInfo[date].log Anda berisi kesalahan ini, sertifikat SignXML ditemukan, dan upaya pemecahan masalah Anda harus berfokus pada langkah-langkah yang ditemukan di bagian "Verifikasi dan pecahkan masalah sisi server HANA" .

Entri log untuk Couldn't find saml cert: Jika file GatewayInfo[date].log Anda berisi kesalahan ini, SapHanaSAMLCertThumbprint diatur secara tidak tepat. Bagian resolusi berikut menjelaskan cara mengatasi masalah tersebut.

Resolusi

Untuk mengatur SapHanaSAMLCertThumbprint dengan benar, ikuti instruksi di bagian "Konfigurasikan gateway". Instruksi dimulai dengan Terakhir, tambahkan thumbprint sertifikat ke konfigurasi gateway.

Setelah mengubah file konfigurasi, Anda perlu memulai ulang layanan gateway agar perubahan diterapkan.

Validasi

Ketika SapHanaSAMLCertThumbprint diatur dengan benar, log gateway Anda akan memiliki entri yang menyertakan SignXML: Found the cert.... Pada titik ini, Anda harus dapat melanjutkan ke bagian "Verifikasi dan pecahkan masalah sisi server HANA".

Jika gateway tidak dapat menggunakan sertifikat untuk menandatangani pernyataan SAML, Anda mungkin melihat kesalahan dalam log yang mirip dengan yang berikut ini:

GatewayPipelineErrorCode=DM_GWPipeline_UnknownError GatewayVersion= InnerType=CryptographicException InnerMessage=<pi>Signing key is not loaded.</pi> InnerToString=<pi>System.Security.Cryptography.CryptographicException: Signing key is not loaded.

Untuk mengatasi kesalahan ini, ikuti instruksi yang dimulai dengan langkah 3 di bagian "Konfigurasikan gateway".

Setelah mengubah file konfigurasi, mulai ulang layanan gateway agar perubahan diterapkan.

Memverifikasi dan memecahkan masalah sisi server HANA

Gunakan solusi di bagian ini jika gateway dapat menemukan sertifikat dan menandatangani pernyataan SAML tetapi Anda masih mengalami kesalahan. Anda harus mengumpulkan jejak autentikasi HANA, seperti yang dijelaskan sebelumnya di bagian "Kredensial yang ditolak".

IdP SAML

Kehadiran string Found SAML provider dalam jejak autentikasi HANA menunjukkan bahwa IdP SAML dikonfigurasi dengan benar. Jika string tidak ada, konfigurasi salah.

Resolusi

Pertama, tentukan apakah organisasi Anda menggunakan OpenSSL atau commoncrypto sebagai sslcryptoprovider. Untuk menentukan penyedia mana yang sedang digunakan, lakukan hal berikut:

  1. Buka SAP HANA Studio.

  2. Buka Konsol Administrasi untuk penyewa yang Anda gunakan.

  3. Pilih tab Konfigurasi, dan gunakan sslcryptoprovider sebagai filter, seperti yang ditunjukkan pada gambar berikut:

    Screenshot of the sslcryptoprovider information in SAP HANA Studio.

Selanjutnya, verifikasi bahwa pustaka kriptografi diatur dengan benar dengan melakukan hal berikut:

  1. Buka Konsol Keamanan di SAP HANA Studio dengan memilih tab IdP SAML, dan lakukan salah satu hal berikut ini:

    • Jika sslcryptoprovider adalah OpenSSL, pilih OpenSSL Cryptographic Library.
    • Jika sslcryptoprovider adalah commonCrypto, pilih SAP Cryptographic Library.

    Dalam gambar berikut, SAP Cryptographic Library dipilih:

    Screenshot of SAP HANA Studio with 'SAP Cryptographic Library' selected as the sslcryptoprovider.

  2. Sebarkan perubahan Anda dengan memilih tombol Sebarkan di kanan atas, seperti yang ditunjukkan pada gambar berikut:

    Screenshot of the 'Deploy' button for deploying your solution changes.

Validasi

Ketika jejak dikonfigurasi dengan benar, jejak akan melaporkan Found SAML provider dan tidak akan melaporkan SAML Provider not found. Anda dapat melanjutkan ke bagian berikutnya, "Memecahkan masalah tanda tangan pernyataan SAML."

Jika penyedia kriptografi diatur tetapi SAML Provider not found masih dilaporkan, cari string dalam jejak yang dimulai dengan teks berikut:

Search SAML provider for certificate with subject =

Dalam string tersebut, pastikan bahwa subjek dan penerbit sama persis dengan yang ditampilkan di tab IdP SAML di Konsol Keamanan. Perbedaan bahkan satu karakter saja dapat menyebabkan masalah. Jika Menemukan perbedaan, Anda dapat memperbaiki masalah di SAP Cryptographic Library sehingga entri cocok persis.

Jika mengubah SAP Cryptographic Library tidak memperbaiki masalah, Anda dapat mengedit bidang Diterbitkan Kepada dan Diterbitkan Oleh secara manual hanya dengan mengklik dua kali.

Pecahkan masalah tanda tangan pernyataan SAML

Anda mungkin menemukan jejak autentikasi HANA yang berisi entri yang mirip dengan yang berikut ini:

[48163]{-1}[-1/-1] 2020-09-11 21:15:18.896165 i Authentication SAMLAuthenticator.cpp(00398) : Unable to verify XML signature [48163]{-1}[-1/-1] 2020-09-11 21:15:18.896168 i Authentication MethodSAML.cpp(00103) : unsuccessful login attempt with SAML ticket!

Kehadiran entri tersebut berarti bahwa tanda tangan tidak tepercaya.

Resolusi

Jika Anda menggunakan OpenSSL sebagai sslcryptoprovider Anda, periksa untuk melihat apakah file trust.pem dan key.pem berada di direktori SSL. Untuk informasi selengkapnya, lihat blog SAP Mengamankan komunikasi antara SAP HANA Studio dan SAP HANA Server melalui SSL.

Jika Anda menggunakan commoncrypto sebagai sslcryptoprovider Anda, periksa untuk melihat apakah ada koleksi dengan sertifikat Anda di penyewa.

Validasi

Ketika jejak dikonfigurasi dengan benar, jejak akan melaporkan Found valid XML signature.

Pecahkan masalah pemetaan UPN

Anda mungkin menemukan jejak autentikasi HANA yang berisi entri yang mirip dengan yang berikut ini:

SAMLAuthenticator.cpp(00886) : Assertion Subject NameID: `johnny@contoso.com` SAMLAuthenticator.cpp(00398) : Database user does not exist

Kesalahan menunjukkan bahwa nameId johnny@contoso.com ditemukan dalam pernyataan SAML, tetapi tidak ada atau tidak dipetakan dengan benar di HANA Server.

Resolusi

Buka pengguna database HANA dan, di bawah kotak centang SAML yang dipilih, pilih tautan Konfigurasikan. Jendela berikut akan muncul:

Screenshot showing that the incorrect user name is displayed.

Seperti yang dijelaskan oleh pesan kesalahan, HANA mencoba menemukan johnny@contoso.com, tetapi identitas eksternal hanya ditampilkan sebagai johnny. Kedua nilai ini harus cocok. Untuk mengatasi masalah ini, di bawah Identitas Eksternal, ubah nilai menjadi johnny@contoso.com. Perhatikan bahwa nilainya sensitif huruf besar/kecil.

Untuk informasi selengkapnya tentang gateway data lokal dan DirectQuery, lihat sumber daya berikut ini: