Verwenden von SAML (Security Assertion Markup Language) für SSO von Power BI bei lokalen DatenquellenUse Security Assertion Markup Language (SAML) for SSO from Power BI to on-premises data sources

Durch das Aktivieren von SSO für Power BI-Berichte und -Dashboards können Daten aus lokalen Datenquellen unter Beachtung der für diese Quellen konfigurierten Benutzerberechtigungen einfacher aktualisiert werden.Enabling SSO makes it easy for Power BI reports and dashboards to refresh data from on-premises sources while respecting user-level permissions configured on those sources. Verwenden Sie SAML (Security Assertion Markup Language) zum Aktivieren der nahtlosen SSO-Konnektivität.Use Security Assertion Markup Language (SAML) to enable seamless single sign-on connectivity.

Unterstützte DatenquellenSupported data sources

Derzeit wird SAP HANA mit SAML unterstützt.We currently support SAP HANA with SAML. Weitere Informationen zum Einrichten und Konfigurieren des einmaligen Anmeldens (SSO) für SAP HANA mit SAML finden Sie unter SAML-SSO für die BI-Plattform mit HANA.For more information about setting up and configuring single sign-on for SAP HANA by using SAML, see SAML SSO for BI Platform to HANA.

Mit Kerberos werden weitere Datenquellen unterstützt (einschließlich SAP HANA).We support additional data sources with Kerberos (including SAP HANA).

Für SAP HANA wird empfohlen, die Verschlüsselung zu aktivieren, bevor Sie eine SAML-SSO-Verbindung herstellen.For SAP HANA, it's recommended you enable encryption before you establish a SAML SSO connection. Konfigurieren Sie zum aktivieren der Verschlüsselung den HANA-Server so, dass verschlüsselte Verbindungen akzeptiert werden, und konfigurieren Sie das Gateway für die Verwendung der Verschlüsselung zur Kommunikation mit Ihrem HANA-Server.To enable encryption, configure the HANA server to accept encrypted connections and configure the gateway to use encryption to communicate with your HANA server. Da der HANA-ODBC-Treiber SAML-Assertationen nicht standardmäßig verschlüsselt, wird die signierte SAML-Assertion unverschlüsselt vom Gateway an den HANA-Server gesendet und kann abgefangen und von Drittanbietern wiederverwendet werden.Because the HANA ODBC driver doesn't encrypt SAML assertions by default, the signed SAML assertion is sent from the gateway to the HANA server in the clear and is vulnerable to interception and reuse by third parties.

Wichtig

Da SAP für OpenSSL keinen Support mehr bietet, hat auch Microsoft den Support eingestellt.As SAP no longer supports the OpenSSL, Microsoft also has discontinued its support. Bestehende Verbindungen funktionieren weiterhin. Ab Februar 2021 ist es jedoch nicht mehr möglich, neue Verbindungen herzustellen.Existing connections will continue to work, but you won't be able to create new connections starting February 2021. Arbeiten Sie in Zukunft stattdessen mit CommonCryptoLib.Going forward, please use CommonCryptoLib instead.

Konfigurieren des Gateways und der DatenquelleConfiguring the gateway and data source

Sie müssen eine Vertrauensstellung zwischen den HANA-Servern, für die Sie SSO aktivieren möchten, und dem Gateway herstellen, um SAML verwenden zu können.To use SAML, you must establish a trust relationship between the HANA servers for which you want to enable SSO and the gateway. In diesem Szenario fungiert das Gateway als SAML-Identitätsanbieter (IdP).In this scenario, the gateway serves as the SAML Identity Provider (IdP). Es gibt verschiedene Möglichkeiten, diese Beziehung herzustellen.There are various ways to establish this relationship. SAP empfiehlt zum Abschließen der Setupschritte für die Vertrauensstellung die Verwendung der SAP-Kryptografiebibliothek (SAP Cryptographic Library; auch unter dem Namen CommonCryptoLib oder sapcrypto bekannt).SAP recommends you use the SAP Cryptographic Library (also known as CommonCryptoLib or sapcrypto) to complete the setup steps in which we establish the trust relationship. Weitere Informationen finden Sie in der SAP-Dokumentation.For more information, see the official SAP documentation.

In den folgenden Schritten wird beschrieben, wie Sie mithilfe einer Stammzertifizierungsstelle, die vom HANA-Server als vertrauenswürdig eingestuft wird, das X.509-Zertifikat des Gateway-IdP signieren und auf diese Weise eine Vertrauensstellung zwischen dem HANA-Server und dem Gateway-IdP herstellen.The following steps describe how to establish a trust relationship between a HANA server and the gateway IdP by signing the gateway IdP's X509 certificate with a Root CA trusted by the HANA server.

Erstellen der ZertifikateCreate the certificates

Führen Sie die folgenden Schritte aus, um die Zertifikate zu erstellen:Take the following steps to create the certificates:

  1. Erstellen Sie auf dem Gerät, auf dem SAP HANA ausgeführt wird, einen leeren Ordner zum Speichern Ihrer Zertifikate, und navigieren Sie dann zu diesem Ordner.On the device that is running SAP HANA, create an empty folder to store your certificates, then navigate to that folder.

  2. Erstellen Sie die Stammzertifikate, indem Sie den folgenden Befehl ausführen:Create the root certificates by running the following command:

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

    Sie müssen sich die Passphrase merken, damit Sie das Zertifikat zum Signieren anderer Zertifikate verwenden können.You must remember the passphrase to use this certificate to sign other certificates. Es sollte angezeigt werden, dass CA_Cert.pem und CA_Key.pem erstellt werden.You should see CA_Cert.pem and CA_Key.pem being created.

  3. Erstellen Sie die IdP-Zertifikate, indem Sie den folgenden Befehl ausführen:Create the IdP certificates by running the following command:

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

    Es sollte angezeigt werden, dass IdP_Key.pem und IdP_Req.pem erstellt werden.You should see IdP_Key.pem and IdP_Req.pem being created.

  4. Signieren Sie die IdP-Zertifikate mit den Stammzertifikaten:Sign the IdP Certificates with the root certificates:

    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
    

    Es sollte angezeigt werden, dass CA_Cert.srl und IdP_Cert.pem erstellt werden.You should see CA_Cert.srl and IdP_Cert.pem being created. Der Fokus liegt nur auf IdP_Cert.pem.We are only concerned about the IdP_Cert.pem.

Erstellen einer Zertifikatzuordnung für den SAML-IdentitätsanbieterCreate SAML identity provider certificate mapping

Erstellen Sie mit den folgenden Schritten eine Zertifikatzuordnung für den SAML-Identitätsanbieter.Create the SAML Identity Provider certificate mapping with the following steps.

  1. Klicken Sie in SAP HANA Studio mit der rechten Maustaste auf den SAP HANA-Servernamen, und navigieren Sie zu Security > Open Security Console > SAML Identity Provider (Sicherheit > Sicherheitskonsole öffnen > SAML-Identitätsanbieter).In SAP HANA Studio, right-click your SAP HANA server name then navigate to Security > Open Security Console > SAML Identity Provider.

  2. Wählen Sie die SAP-Kryptografiebibliothek aus, falls diese nicht ausgewählt ist.If the SAP Cryptographic Library is not selected, select it. Verwenden Sie nicht die OpenSSL-Kryptografiebibliothek (Auswahloption links auf der folgenden Abbildung), da sie von SAP als veraltet markiert wurde.Do not use the OpenSSL Cryptographic Library (the selection on the left, in the following image), it is deprecated by SAP.

    Auswählen der SAP-Kryptografiebibliothek

  3. Importieren Sie das signierte Zertifikat IdP_Cert.pem, indem Sie wie auf der folgenden Abbildung gezeigt auf die blaue Schaltfläche zum Importieren klicken.Import the signed certificate IdP_Cert.pem by clicking the blue import button, shown in the following image.

    Klicken auf die blaue Schaltfläche zum Importieren

Denken Sie daran, dem Identitätsanbieternamen einen Namen zuzuweisen.Remember to assign a name to your Identity Provider Name.

Importieren und Erstellen der signierten Zertifikate in HANAImport and create the signed certificates in HANA

Als Nächstes importieren und erstellen Sie die signierten Zertifikate in HANA.Next, you'll import and create the signed certificates in HANA. Folgen Sie diesen Schritten:Follow these steps:

  1. Führen Sie in HANA Studio die folgende Abfrage aus:In HANA Studio, run the following query:

    CREATE CERTIFICATE FROM '<idp_cert_pem_certificate_content>'
    

    Hier sehen Sie ein Beispiel:Here's an example:

    CREATE CERTIFICATE FROM
    '-----BEGIN CERTIFICATE-----
    MIIDyDCCArCgA...veryLongString...0WkC5deeawTyMje6
    -----END CERTIFICATE-----
    '
    
  2. Falls kein PSEwith-SAML-Zweck vorliegt, erstellen Sie einen, indem Sie die folgende Abfrage in HANA Studio ausführen:If there is no PSEwith SAML Purpose, create one by running the following query in HANA Studio:

    CREATE PSE SAMLCOLLECTION;<br>set pse SAMLCOLLECTION purpose SAML;<br>
    
  3. Fügen Sie das neu erstellte signierte Zertifikat mit dem folgenden Befehl der PSE hinzu:Add the newly created signed certificate to the PSE with the following command:

    alter pse SAMLCOLLECTION add CERTIFICATE <certificate_id>;
    

    Beispiel:For example:

    alter pse SAMLCOLLECTION add CERTIFICATE 1978320;
    

    Mit der folgenden Abfrage können Sie die Liste der erstellten Zertifikate überprüfen:You can check the list of certificated created with the following query:

    select * from PUBLIC"."CERTIFICATES"
    

    Das Zertifikat ist nun ordnungsgemäß installiert.The certificate is now properly installed. Zur Bestätigung können Sie die folgende Abfrage ausführen:You can run the following query to confirm:

    select * from "PUBLIC"."PSE_CERTIFICATES"
    

Zuordnen des BenutzersMap the user

Befolgen Sie diese Schritte, um den Benutzer zuzuordnen:Follow these steps to map the user:

  1. Klicken Sie in SAP HANA Studio auf den Ordner Security (Sicherheit):In SAP HANA Studio, select the Security folder:

    Klicken auf den Ordner „Security“ (Sicherheit)

  2. Erweitern Sie Users (Benutzer), und wählen Sie dann den Benutzer aus, dem Sie Ihren Power BI-Benutzer zuordnen möchten.Expand Users, and then select the user to whom you want to map your Power BI user.

  3. Aktivieren Sie das Kontrollkästchen SAML, und klicken Sie dann wie in der folgenden Abbildung gezeigt auf Konfigurieren.Select the SAML checkbox, and then select Configure, shown highlighted in the following image.

    Aktivieren von „SAML“ und Klicken auf den Link „Konfigurieren“

  4. Wählen Sie den im Abschnitt Erstellen einer Zertifikatzuordnung für den SAML-Identitätsanbieter weiter oben in diesem Artikel erstellten Identitätsanbieter aus.Select the identity provider you created in the create SAML identity provider certificate mapping section, earlier in this article. Geben Sie als „External Identity“ (Externe Identität) den UPN des Power BI-Benutzers ein (in der Regel die E-Mail-Adresse, mit der sich der Benutzer bei Power BI anmeldet), und klicken Sie dann auf Hinzufügen.For External Identity, enter the Power BI user's UPN (typically the email address the user uses to sign in to Power BI), and then select Add. Die folgende Abbildung zeigt die Optionen und Auswahlmöglichkeiten.The following image shows the options and selections.

    Fenster zum Konfigurieren von SAML-Identitäten

    Geben Sie den Wert ein, der den ursprünglichen UPN des Power BI-Benutzers ersetzt, wenn Sie das Gateway für die Verwendung der Konfigurationsoption ADUserNameReplacementProperty konfiguriert haben.If you've configured your gateway to use the ADUserNameReplacementProperty configuration option, enter the value that will replace the Power BI user's original UPN. Wenn Sie beispielsweise ADUserNameReplacementProperty auf SAMAccountName festlegen, geben Sie den Wert SAMAccountName des Benutzers ein.For example, if you set ADUserNameReplacementProperty to SAMAccountName enter the user's SAMAccountName.

Konfigurieren des GatewaysConfigure the gateway

Nachdem Sie das Zertifikat und die Identität des Gateways konfiguriert haben, müssen Sie als Nächstes das Zertifikat in das PFX-Format konvertieren und das Gateway für die Verwendung des Zertifikats mit den folgenden Schritten konfigurieren.Now that you have the gateway's certificate and identity configured, convert the certificate to a pfx format and configure the gateway to use the certificate with the following steps.

  1. Konvertieren Sie das Zertifikat in das PFX-Format, indem Sie den folgenden Befehl ausführen.Convert the certificate to pfx format by running the following command. Dieser Befehl benennt die resultierende PFX-Datei „samlcert.pfx“ und legt root als Kennwort festlegt:This command names the resulting .pfx file samlcert.pfx and sets root as its password:

    openssl pkcs12 -export -out samltest.pfx -in IdP_Cert.pem -inkey IdP_Key.pem -passin pass:root -passout pass:root
    
  2. Kopieren Sie die PFX-Datei auf den Gatewaycomputer:Copy the pfx file to the gateway machine:

    1. Doppelklicken Sie auf samltest.pfx, und klicken Sie dann auf Local Machine > Next (Lokaler Computer > Weiter).Double-click samltest.pfx, then select Local Machine > Next.

    2. Geben Sie das Kennwort ein, und klicken Sie auf Next (Weiter).Enter the password, then select Next.

    3. Klicken Sie zunächst auf Place all certificates in the following store (Alle Zertifikate in folgendem Speicher speichern) und dann auf Durchsuchen > Persönlich > OK.Select Place all certificates in the following store, then select Browse > Personal > OK.

    4. Klicken Sie auf Weiter und dann auf Fertig stellen.Select Next, and then Finish.

      Importieren des Zertifikats

  3. Gewähren Sie dem Gatewaydienstkonto mit den folgenden Schritten den Zugriff auf den privaten Schlüssel des Zertifikats:Grant the gateway service account access to the private key of the certificate, with the following steps:

    1. Führen Sie die Microsoft Management Console (MMC) auf dem Gatewaycomputer aus.On the gateway machine, run the Microsoft Management Console (MMC).

      MMC ausführen

    2. Klicken Sie unter Datei auf Add/Remove Snap-in (Snap-In hinzufügen/entfernen).Under File, select Add/Remove Snap-in.

      Snap-In hinzufügen

    3. Klicken Sie auf Certificates > Hinzufügen (Zertifikate), und dann auf Computer account > Weiter (Computerkonto).Select Certificates > Add, then select Computer account > Next.

    4. Klicken Sie dann auf Local Computer > Finish > OK (Lokaler Computer > Fertigstellen > Weiter).Select Local Computer > Finish > OK.

    5. Erweitern Sie Certificates > Personal > Certificates (Zertifikate > Persönlich > Zertifikate), und suchen Sie nach dem Zertifikat.Expand Certificates > Personal > Certificates, and find the certificate.

    6. Klicken Sie mit der rechten Maustaste auf das Zertifikat, und navigieren Sie zu All Tasks > Manage Private Keys (Alle Aufgaben > Private Schlüssel verwalten).Right-click the certificate and navigate to All Tasks > Manage Private Keys.

      Private Schlüssel verwalten

    7. Fügen Sie das Gatewaydienstkonto der Liste hinzu.Add the gateway service account to the list. Das Standardkonto ist NT SERVICE\PBIEgwService.By default, the account is NT SERVICE\PBIEgwService. Sie können herausfinden, welches Konto den Gatewaydienst ausführt, indem Sie services.msc ausführen, und nach On-premises data gateway service (Lokaler Datengatewaydienst) suchen.You can find out which account is running the Gateway service by running services.msc and locating On-premises data gateway service.

      Gatewaydienst

Führen Sie abschließend die folgenden Schritte aus, um den Zertifikatfingerabdruck zur Gatewaykonfiguration hinzuzufügen:Finally, follow these steps to add the certificate thumbprint to the gateway configuration:

  1. Führen Sie den folgenden PowerShell-Befehl aus, um die Zertifikate auf Ihrem Computer aufzulisten:Run the following PowerShell command to list the certificates on your machine:

    Get-ChildItem -path cert:\LocalMachine\My
    
  2. Kopieren Sie den Fingerabdruck des von Ihnen erstellten Zertifikats.Copy the thumbprint for the certificate you created.

  3. Navigieren Sie zum Gatewayverzeichnis, dessen Standardpfad folgendermaßen lautet: C:\Program Files\On-premises data gateway.Navigate to the gateway directory, which by default is C:\Program Files\On-premises data gateway.

  4. Öffnen Sie die Datei PowerBI.DataMovement.Pipeline.GatewayCore.dll.config, und suchen Sie nach dem Abschnitt SapHanaSAMLCertThumbprint.Open PowerBI.DataMovement.Pipeline.GatewayCore.dll.config, and find the SapHanaSAMLCertThumbprint section. Fügen Sie den kopierten Fingerabdruck ein.Paste the thumbprint you copied.

  5. Starten Sie den Gatewaydienst neu.Restart the gateway service.

Ausführen eines Power BI-BerichtsRunning a Power BI report

Sie können jetzt die Seite Manage Gateway (Gateway verwalten) in Power BI verwenden, um die SAP HANA-Datenquelle zu konfigurieren.Now you can use the Manage Gateway page in Power BI to configure the SAP HANA data source. Aktivieren Sie unter Erweiterte Einstellungen SSO über SAML.Under Advanced Settings, enable SSO via SAML. Auf diese Weise können Sie Berichte und Datasets veröffentlichen, die an diese Datenquelle gebunden sind.Doing so allows you to publish reports and datasets binding to that data source.

Erweiterte Einstellungen

ProblembehandlungTroubleshooting

Nachdem das auf SAML basierte einmalige Anmelden konfiguriert wurde, wird Ihnen im Power BI-Portal möglicherweise der folgende Fehler angezeigt: "The credentials provided cannot be used for the SapHana source." (Die bereitgestellten Anmeldeinformationen können nicht für die SapHana-Quelle verwendet werden.)After you configure SAML-based SSO, you might see the following error in the Power BI portal: The credentials provided cannot be used for the SapHana source. Dieser Fehler bedeutet, dass die SAML-Anmeldeinformationen von SAP HANA nicht akzeptiert wurden.This error indicates that the SAML credential was rejected by SAP HANA.

In den Authentifizierungsablaufverfolgungen finden sich detaillierte Informationen zum Beheben von Fehlern bei Problemen mit Anmeldeinformationen bei SAP HANA.Server-side authentication traces provide detailed information for troubleshooting credential issues on SAP HANA. Befolgen Sie diese Schritte, um die Ablaufverfolgung für Ihren SAP HANA-Server zu konfigurieren:Follow these steps to configure tracing for your SAP HANA server:

  1. Aktivieren Sie auf dem SAP HANA-Server die Authentifizierungsablaufverfolgung, indem Sie die folgende Abfrage ausführen:On the SAP HANA server, turn on the authentication trace by running the following query:

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') set ('trace', 'authentication') = 'debug' with reconfigure 
    
  2. Reproduzieren Sie das Problem.Reproduce the issue.

  3. Öffnen Sie in HANA Studio die Administratorkonsole, und klicken Sie auf die Registerkarte Diagnosis Files (Diagnosedateien).In HANA Studio, open the administration console, and select the Diagnosis Files tab.

  4. Öffnen Sie die aktuellste Indexserver-Ablaufverfolgung, und suchen Sie nach SAMLAuthenticator.cpp.Open the latest index server trace and search for SAMLAuthenticator.cpp.

    Es sollte eine detaillierte Fehlermeldung angezeigt werden, die die Grundursache angibt. Beispiel:You should find a detailed error message that indicates the root cause, for example:

    [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. Deaktivieren Sie nach Abschluss der Problembehandlung die Authentifizierungsablaufverfolgung, indem Sie die folgende Abfrage ausführen:After the troubleshooting is complete, turn off the authentication trace by running the following query:

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

Nächste SchritteNext steps

Weitere Informationen zum lokalen Datengateway und zu DirectQuery finden Sie in den folgenden Ressourcen:For more information about the on-premises data gateway and DirectQuery, see the following resources: