Använda Security Assertion Markup Language för enkel inloggning från Power BI till lokala datakällor

Genom att aktivera enkel inloggning (SSO) kan du göra det enkelt för Power BI-rapporter och instrumentpaneler att uppdatera data från lokala källor samtidigt som du respekterar behörigheter på användarnivå som är konfigurerade på dessa källor. Om du vill aktivera sömlös SSO-anslutning använder du SAML (Security Assertion Markup Language).

Kommentar

Du kan bara ansluta till en datakälla med saml med enkel inloggning med en lokal datagateway. Om du vill ansluta till ytterligare en datakälla med saml med enkel inloggning måste du använda en annan lokal datagateway.

Datakällor som stöds för SAML

Microsoft stöder för närvarande SAP HANA med SAML. Mer information om hur du konfigurerar enkel inloggning för SAP HANA med hjälp av SAML finns i SAML SSO for BI Platform to HANA (SAML SSO for BI Platform to HANA).

Vi stöder ytterligare datakällor med Kerberos (inklusive SAP HANA).

För SAP HANA rekommenderar vi att du aktiverar kryptering innan du upprättar en SAML SSO-anslutning. Om du vill aktivera kryptering konfigurerar du HANA-servern så att den accepterar krypterade anslutningar och konfigurerar sedan gatewayen så att den använder kryptering för att kommunicera med HANA-servern. Eftersom HANA ODBC-drivrutinen inte krypterar SAML-försäkran som standard skickas det signerade SAML-försäkran från gatewayen till HANA-servern i klartext och är sårbar för avlyssning och återanvändning av tredje part.

Viktigt!

Eftersom SAP inte längre stöder OpenSSL har Microsoft också upphört med sin support. Dina befintliga anslutningar fortsätter att fungera, men du kan inte längre skapa nya anslutningar. Använd SAP Cryptographic Library (CommonCryptoLib) eller sapcrypto i stället.

Konfigurera gatewayen och datakällan

Om du vill använda SAML måste du upprätta en förtroenderelation mellan de HANA-servrar som du vill aktivera enkel inloggning för och gatewayen för. I det här scenariot fungerar gatewayen som SAML-identitetsprovider (IdP). Du kan upprätta den här relationen på olika sätt. SAP rekommenderar att du använder CommonCryptoLib för att slutföra installationsstegen. Mer information finns i den officiella SAP-dokumentationen.

Skapa certifikaten

Du kan upprätta en förtroenderelation mellan en HANA-server och gateway-IdP:t genom att signera gateway-IdP:ts X509-certifikat med en rotcertifikatutfärdare (CA) som är betrodd av HANA-servern.

Gör följande för att skapa certifikaten:

  1. På den enhet som kör SAP HANA skapar du en tom mapp för att lagra dina certifikat och går sedan till den mappen.

  2. Skapa rotcertifikaten genom att köra följande kommando:

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

    Se till att kopiera och spara lösenfrasen för att använda det här certifikatet för att signera andra certifikat. Du bör se filerna CA_Cert.pem och CA_Key.pem som skapas.

  3. Skapa IdP-certifikaten genom att köra följande kommando:

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

    Du bör se filerna IdP_Key.pem och IdP_Req.pem som skapas.

  4. Signera IdP-certifikaten med rotcertifikaten:

    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
    

    Du bör se filerna CA_Cert.srl och IdP_Cert.pem som skapas. Just nu bryr du dig bara om filen IdP_Cert.pem .

Skapa mappning för SAML-identitetsprovidercertifikatet

Gör följande för att skapa mappning för SAML Identity Provider-certifikatet:

  1. I SAP HANA Studio högerklickar du på ditt SAP HANA-servernamn och väljer sedan Security Open Security Console SAML Identity Provider (Säkerhets>öppna säkerhetskonsolens>SAML-identitetsprovider).

  2. Välj alternativet SAP Kryptografiskt bibliotek. Använd inte alternativet OpenSSL Cryptographic Library, som är inaktuellt av SAP.

    Screenshot of the

  3. Om du vill importera det signerade certifikatet IdP_Cert.pem väljer du den blå importknappen enligt följande bild:

    Screenshot of the

  4. Kom ihåg att tilldela ett namn för din identitetsprovider.

Importera och skapa de signerade certifikaten i HANA

Om du vill importera och skapa de signerade certifikaten i HANA gör du följande:

  1. Kör följande fråga i SAP HANA Studio:

    CREATE CERTIFICATE FROM '<idp_cert_pem_certificate_content>'
    

    Här är ett exempel:

    CREATE CERTIFICATE FROM
    '-----BEGIN CERTIFICATE-----
    MIIDyDCCArCgA...veryLongString...0WkC5deeawTyMje6
    -----END CERTIFICATE-----
    '
    
  2. Om det inte finns någon personlig säkerhetsmiljö (PSE) med syftet SAML skapar du en genom att köra följande fråga i SAP HANA Studio:

    CREATE PSE SAMLCOLLECTION;
    set pse SAMLCOLLECTION purpose SAML;
    
  3. Lägg till det nyligen skapade signerade certifikatet i PSE genom att köra följande kommando:

    alter pse SAMLCOLLECTION add CERTIFICATE <certificate_id>;
    

    Till exempel:

    alter pse SAMLCOLLECTION add CERTIFICATE 1978320;
    

    Du kan kontrollera listan över skapade certifikat genom att köra följande fråga:

    select * from PUBLIC"."CERTIFICATES"
    

    Certifikatet är nu korrekt installerat. För att bekräfta installationen kan du köra följande fråga:

    select * from "PUBLIC"."PSE_CERTIFICATES"
    

Mappa användaren

Gör följande för att mappa användaren:

  1. I SAP HANA Studio väljer du mappen Säkerhet .

    Screenshot of the Security folder structure on the left pane.

  2. Expandera Användare och välj sedan den användare som du vill mappa din Power BI-användare till.

  3. Markera kryssrutan SAML och välj sedan Konfigurera enligt följande bild:

    Screenshot of the

  4. Välj den identitetsprovider som du skapade i avsnittet Skapa mappning för CERTIFIKAT för SAML-identitetsprovider . För Extern identitet anger du Power BI-användarens UPN (vanligtvis den e-postadress som användaren använder för att logga in på Power BI) och väljer sedan Lägg till.

    Screenshot of the

    Om du har konfigurerat din gateway att använda konfigurationsalternativet ADUserNameReplacementProperty anger du det värde som ska ersätta Power BI-användarens ursprungliga UPN. Om du till exempel anger ADUserNameReplacementProperty till SAMAccountName anger du användarens SAMAccountName.

Konfigurera gatewayen

Nu när du har konfigurerat gatewaycertifikatet och -identiteten konverterar du certifikatet till ett PFX-filformat och konfigurerar sedan gatewayen så att den använder certifikatet genom att göra följande:

  1. Konvertera certifikatet till PFX-format genom att köra följande kommando. Det här kommandot namnger den resulterande filen samlcert.pfx och anger roten som dess lösenord, som du ser här:

    openssl pkcs12 -export -out samltest.pfx -in IdP_Cert.pem -inkey IdP_Key.pem -passin pass:root -passout pass:root
    
  2. Kopiera PFX-filen till gatewaydatorn:

    a. Dubbelklicka på samltest.pfx och välj sedan Lokal dator>nästa.

    b. Ange lösenordet och välj sedan Nästa.

    c. Välj Placera alla certifikat i följande arkiv och välj sedan Bläddra personligt>>OK.

    Screenshot of the

    d. Välj Nästa och sedan Slutför.

  3. Om du vill ge gatewaytjänstkontot åtkomst till certifikatets privata nyckel gör du följande:

    a. Kör Microsoft Management Console (MMC) på gatewaydatorn.

    Screenshot of the gateway machine

    b. I MMC väljer du Lägg till/ta bort snapin-modul för fil>.

    Screenshot of the

    c. Välj Certifikat>Lägg till och välj sedan Datorkonto>Nästa.

    d. Välj Lokal dator>Slutför>OK.

    e. Expandera Personliga>certifikat för certifikat>och leta sedan efter certifikatet.

    f. Högerklicka på certifikatet och välj sedan Alla uppgifter>Hantera privata nycklar.

    Screenshot of the

    g. Lägg till gatewaytjänstkontot i listan. Som standard är kontot NT SERVICE\PBIEgwService. Du kan ta reda på vilket konto som kör gatewaytjänsten genom att köra services.msc och sedan leta efter en lokal datagatewaytjänst.

    Screenshot of the

Lägg slutligen till certifikatets tumavtryck i gatewaykonfigurationen:

  1. Kör följande PowerShell-kommando för att lista certifikaten på datorn:

    Get-ChildItem -path cert:\LocalMachine\My
    
  2. Kopiera tumavtrycket för certifikatet du skapade.

  3. Gå till gatewaykatalogen, som är C:\Program Files\On-premises data gateway som standard.

  4. Öppna PowerBI.DataMovement.Pipeline.GatewayCore.dll.config och leta sedan efter avsnittet SapHanaSAMLCertThumbprint . Klistra in tumavtrycket som du kopierade i steg 2.

  5. Starta om gatewaytjänsten.

Köra en Power BI-rapport

Nu kan du använda sidan Hantera gateway i Power BI för att konfigurera SAP HANA-datakällan. Under Avancerat Inställningar aktiverar du enkel inloggning via SAML. På så sätt kan du publicera rapporter och datauppsättningar som binds till datakällan.

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

Kommentar

Enkel inloggning använder Windows-autentisering så se till att Windows-kontot kan komma åt gatewaydatorn. Om du inte är säker måste du lägga till NT-AUTHORITY\Authenticated Users (S-1-5-11) i den lokala gruppen "Användare".

Felsöka användning av SAML för enkel inloggning till SAP HANA

Det här avsnittet innehåller omfattande steg för att felsöka med SAML för enkel inloggning till SAP HANA. Med hjälp av de här stegen kan du själv diagnostisera och åtgärda eventuella problem som du kan stöta på.

Avvisade autentiseringsuppgifter

När du har konfigurerat SAML-baserad enkel inloggning kan du se följande fel i Power BI-portalen: "De angivna autentiseringsuppgifterna kan inte användas för SapHana-källan." Det här felet anger att SAML-autentiseringsuppgifterna avvisades av SAP HANA.

Autentiseringsspårningar på serversidan innehåller detaljerad information för felsökning av problem med autentiseringsuppgifter i SAP HANA. Gör följande för att konfigurera spårning för SAP HANA-servern:

  1. På SAP HANA-servern aktiverar du autentiseringsspårningen genom att köra följande fråga:

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') set ('trace', 'authentication') = 'debug' with reconfigure 
    
  2. Återskapa problemet.

  3. Öppna administrationskonsolen i SAP HANA Studio och välj sedan fliken Diagnosfiler .

  4. Öppna den senaste indexserverspårningen och sök sedan efter SAMLAuthenticator.cpp.

    Du bör hitta ett detaljerat felmeddelande som anger rotorsaken, som du ser i följande exempel:

    [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. När du är klar med felsökningen inaktiverar du autentiseringsspårningen genom att köra följande fråga:

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

Verifiera och felsöka gatewayfel

Om du vill följa procedurerna i det här avsnittet måste du samla in gatewayloggar.

SSL-fel (certifikat)

Felsymptom

Det här problemet har flera symtom. När du försöker lägga till en ny datakälla kan du se ett felmeddelande som liknar följande:

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."

När du försöker skapa eller uppdatera en rapport kan ett felmeddelande visas som det i följande bild:

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

När du undersöker Mashup[date]*.log visas följande felmeddelande:

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

Lösning

Lös det här SSL-felet genom att gå till datakällanslutningen och i listrutan Verifiera servercertifikat väljer du Nej, enligt följande bild:

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

När du har valt den här inställningen visas inte längre felmeddelandet.

Gateway SignXML-fel

Gatewayens SignXML-fel kan bero på felaktiga SapHanaSAMLCertThumbprint-inställningar , eller så kan det vara ett problem med HANA-servern. Poster i gatewayloggarna hjälper dig att identifiera var problemet finns och hur du löser det.

Felsymptom

Loggposter för SignXML: Found the cert...: Om din GatewayInfo[date].log fil innehåller det här felet hittades SignXML-certifikatet och felsökningen bör fokusera på de steg som finns i avsnittet "Verifiera och felsöka HANA-serversidan" .

Loggposter för Couldn't find saml cert: Om din GatewayInfo[date].log fil innehåller det här felet anges SapHanaSAMLCertThumbprint felaktigt. I följande lösningsavsnitt beskrivs hur du löser problemet.

Lösning

Om du vill ange SapHanaSAMLCertThumbprint korrekt följer du anvisningarna i avsnittet "Konfigurera gatewayen" . Anvisningarna börjar med Slutligen lägger du till certifikatets tumavtryck i gatewaykonfigurationen.

När du har ändrat konfigurationsfilen måste du starta om gatewaytjänsten för att ändringen ska börja gälla.

Validering

När SapHanaSAMLCertThumbprint har angetts korrekt har gatewayloggarna poster som innehåller SignXML: Found the cert.... Nu bör du kunna gå vidare till avsnittet "Verifiera och felsöka HANA-serversidan" .

Om gatewayen inte kan använda certifikatet för att signera SAML-försäkran kan du se ett fel i loggarna som liknar följande:

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.

Lös det här felet genom att följa anvisningarna från och med steg 3 i avsnittet "Konfigurera gatewayen" .

När du har ändrat konfigurationen startar du om gatewaytjänsten för att ändringen ska börja gälla.

Verifiera och felsökA HANA-serversidan

Använd lösningarna i det här avsnittet om gatewayen kan hitta certifikatet och signera SAML-försäkran, men du fortfarande har fel. Du måste samla in HANA-autentiseringsspårningar enligt beskrivningen tidigare i avsnittet "Avvisade autentiseringsuppgifter".

SAML-identitetsprovidern

Förekomsten av strängen Found SAML provider i HANA-autentiseringsspårningarna anger att SAML-identitetsprovidern är korrekt konfigurerad. Om strängen inte finns är konfigurationen felaktig.

Lösning

Bestäm först om din organisation använder OpenSSL eller commoncrypto som sslcryptoprovider. Gör följande för att avgöra vilken provider som används:

  1. Öppna SAP HANA Studio.

  2. Öppna administrationskonsolen för den klientorganisation som du använder.

  3. Välj fliken Konfiguration och använd sslcryptoprovider som ett filter, som du ser i följande bild:

    Screenshot of the sslcryptoprovider information in SAP HANA Studio.

Kontrollera sedan att det kryptografiska biblioteket har angetts korrekt genom att göra följande:

  1. Gå till Säkerhetskonsolen i SAP HANA Studio genom att välja fliken SAML-identitetsproviders och gör något av följande:

    • Om sslcryptoprovider är OpenSSL väljer du OpenSSL Cryptographic Library.
    • Om sslcryptoprovider är commonCrypto väljer du SAP Cryptographic Library.

    I följande bild är SAP Cryptographic Library valt:

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

  2. Distribuera dina ändringar genom att välja knappen Distribuera längst upp till höger, enligt följande bild:

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

Validering

När spårningarna är korrekt konfigurerade rapporterar Found SAML provider de och rapporterar SAML Provider not foundinte . Du kan gå vidare till nästa avsnitt, "Felsöka SAML-försäkransignaturen".

Om kryptografiprovidern har angetts men SAML Provider not found fortfarande rapporteras söker du efter en sträng i spårningen som börjar med följande text:

Search SAML provider for certificate with subject =

I strängen kontrollerar du att ämnet och utfärdaren är exakt samma som på fliken SAML-identitetsprovider i Säkerhetskonsolen. En skillnad mellan ett och samma tecken kan orsaka problemet. Om du hittar en skillnad kan du åtgärda problemet i SAP Cryptographic Library så att posterna matchar exakt.

Om du inte åtgärdar problemet genom att ändra SAP Cryptographic Library kan du manuellt redigera fälten Utfärdad till och Utfärdad av genom att dubbelklicka på dem.

Felsöka SAML-försäkransignaturen

Du kan hitta HANA-autentiseringsspårningar som innehåller poster som liknar följande:

[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!

Förekomsten av sådana poster innebär att signaturen inte är betrodd.

Lösning

Om du använder OpenSSL som sslcryptoprovider kontrollerar du om filerna trust.pem och key.pem finns i SSL-katalogen. Mer information finns i SAP-bloggen Skydda kommunikationen mellan SAP HANA Studio och SAP HANA Server via SSL.

Om du använder commoncrypto som sslcryptoprovider kontrollerar du om det finns en samling med certifikatet i klientorganisationen.

Validering

När spårningarna är korrekt konfigurerade rapporterar Found valid XML signaturede .

Felsöka UPN-mappningen

Du kan hitta HANA-spårningar som innehåller poster som liknar följande:

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

Felet anger att nameId johnny@contoso.com finns i SAML-försäkran, men det finns inte eller är inte korrekt mappat i HANA Server.

Lösning

Gå till HANA-databasanvändaren och välj länken Konfigurera under den valda SAML-kryssrutan. Följande fönster visas:

Screenshot showing that the incorrect user name is displayed.

Som felmeddelandet beskriver försökte HANA hitta johnny@contoso.com, men den externa identiteten visas endast som johnny. Dessa två värden måste matcha. Lös problemet genom att under Extern identitet ändra värdet till johnny@contoso.com. Observera att det här värdet är skiftlägeskänsligt.

Mer information om den lokala datagatewayen och DirectQuery finns i följande resurser: