Sdílet prostřednictvím


Použití jazyka kontrolního výrazu zabezpečení pro jednotné přihlašování z Power BI k místním zdrojům dat

Povolením jednotného přihlašování (SSO) můžete sestavám a řídicím panelům Power BI usnadnit aktualizaci dat z místních zdrojů, zatímco respektujete oprávnění na úrovni uživatele nakonfigurovaná pro tyto zdroje. Pokud chcete povolit bezproblémové připojení jednotného přihlašování, použijte protokol SAML (Security Assertion Markup Language).

Poznámka:

K jednomu zdroji dat se můžete připojit jenom pomocí SAML jednotného přihlašování s místní bránou dat. Pokud se chcete připojit k dalšímu zdroji dat pomocí SAML jednotného přihlašování, musíte použít jinou místní bránu dat.

Podporované zdroje dat pro SAML

Microsoft v současné době podporuje SAP HANA se SAML. Další informace o nastavení a konfiguraci jednotného přihlašování pro SAP HANA pomocí SAML najdete v tématu Jednotné přihlašování SAML pro platformu BI k HANA.

Podporujeme další zdroje dat s protokolem Kerberos (včetně SAP HANA).

Pro SAP HANA doporučujeme povolit šifrování před navázáním připojení s jednotným přihlašováním SAML. Pokud chcete povolit šifrování, nakonfigurujte server HANA tak, aby přijímal šifrovaná připojení, a pak bránu nakonfigurujte tak, aby používala šifrování ke komunikaci se serverem HANA. Vzhledem k tomu, že ovladač ODBC HANA ve výchozím nastavení nešifruje kontrolní výrazy SAML, odesílají se podepsané kontrolní výrazy SAML z brány na server HANA v nezašifrovaném stavu a jsou zranitelné vůči zachycení a opakovanému použití třetími stranami.

Důležité

Vzhledem k tomu, že SAP už OpenSSL nepodporuje, Společnost Microsoft také ukončila podporu. Vaše stávající připojení nadále fungují, ale už nemůžete vytvářet nová připojení. Místo toho použijte kryptografickou knihovnu SAP (CommonCryptoLib) nebo sapcrypto.

Konfigurace brány a zdroje dat

Pokud chcete používat SAML, musíte vytvořit vztah důvěryhodnosti mezi servery HANA, pro které chcete povolit jednotné přihlašování a bránu. V tomto scénáři brána slouží jako zprostředkovatel identity SAML (IdP). Tuto relaci můžete vytvořit různými způsoby. SAP doporučuje, abyste k dokončení kroků nastavení použili CommonCryptoLib. Další informace najdete v oficiální dokumentaci k SAP.

Vytvoření certifikátů

Vztah důvěryhodnosti mezi serverem HANA a zprostředkovatele identity brány můžete vytvořit podepsáním certifikátu X509 zprostředkovatele identity brány pomocí kořenové certifikační autority (CA), která je důvěryhodná serverem HANA.

Certifikáty vytvoříte takto:

  1. Na zařízení se systémem SAP HANA vytvořte prázdnou složku pro uložení certifikátů a přejděte do této složky.

  2. Vytvořte kořenové certifikáty spuštěním následujícího příkazu:

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

    Nezapomeňte zkopírovat a uložit heslo pro použití tohoto certifikátu k podepsání dalších certifikátů. Měli byste vidět vytvářené soubory CA_Cert.pem a CA_Key.pem .

  3. Vytvořte certifikáty zprostředkovatele identity spuštěním následujícího příkazu:

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

    Měli byste vidět vytvářené soubory IdP_Key.pem a IdP_Req.pem .

  4. Podepište certifikáty zprostředkovatele identity pomocí kořenových certifikátů:

    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
    

    Měli byste vidět, že se vytvářejí soubory CA_Cert.srl a IdP_Cert.pem . V tuto chvíli se zabýváte pouze souborem IdP_Cert.pem .

Vytvoření mapování pro certifikát zprostředkovatele identity SAML

Mapování pro certifikát zprostředkovatele identity SAML vytvoříte takto:

  1. V APLIKACI SAP HANA Studio klikněte pravým tlačítkem myši na název serveru SAP HANA a pak vyberte zprostředkovatele identity SAML konzoly>zabezpečení>otevřít zabezpečení.

  2. Vyberte možnost kryptografické knihovny SAP. Nepoužívejte možnost kryptografické knihovny OpenSSL, která je v SAP zastaralá.

    Screenshot of the

  3. Pokud chcete importovat podepsaný certifikát IdP_Cert.pem, vyberte modré tlačítko Importovat , jak je znázorněno na následujícím obrázku:

    Screenshot of the

  4. Nezapomeňte přiřadit název vašeho zprostředkovatele identity.

Import a vytvoření podepsaných certifikátů v HANA

Pokud chcete importovat a vytvořit podepsané certifikáty v HANA, postupujte takto:

  1. V APLIKACI SAP HANA Studio spusťte následující dotaz:

    CREATE CERTIFICATE FROM '<idp_cert_pem_certificate_content>'
    

    Tady je příklad:

    CREATE CERTIFICATE FROM
    '-----BEGIN CERTIFICATE-----
    MIIDyDCCArCgA...veryLongString...0WkC5deeawTyMje6
    -----END CERTIFICATE-----
    '
    
  2. Pokud neexistuje žádné osobní prostředí zabezpečení (PSE) s účelem SAML, vytvořte ho spuštěním následujícího dotazu v APLIKACI SAP HANA Studio:

    CREATE PSE SAMLCOLLECTION;
    set pse SAMLCOLLECTION purpose SAML;
    
  3. Spuštěním následujícího příkazu přidejte do PSE nově vytvořený podepsaný certifikát:

    alter pse SAMLCOLLECTION add CERTIFICATE <certificate_id>;
    

    Příklad:

    alter pse SAMLCOLLECTION add CERTIFICATE 1978320;
    

    Seznam vytvořených certifikátů můžete zkontrolovat spuštěním následujícího dotazu:

    select * from PUBLIC"."CERTIFICATES"
    

    Certifikát je teď správně nainstalovaný. Instalaci potvrdíte spuštěním následujícího dotazu:

    select * from "PUBLIC"."PSE_CERTIFICATES"
    

Mapování uživatele

Pokud chcete namapovat uživatele, postupujte takto:

  1. V APLIKACI SAP HANA Studio vyberte složku Zabezpečení .

    Screenshot of the Security folder structure on the left pane.

  2. Rozbalte položku Uživatelé a vyberte uživatele, na kterého chcete namapovat uživatele Power BI.

  3. Zaškrtněte políčko SAML a pak vyberte Konfigurovat, jak je znázorněno na následujícím obrázku:

    Screenshot of the

  4. Vyberte zprostředkovatele identity, kterého jste vytvořili v části Vytvořit mapování certifikátu zprostředkovatele identity SAML. Jako externí identitu zadejte hlavní název uživatele Power BI (obvykle e-mailovou adresu, kterou uživatel používá k přihlášení k Power BI) a pak vyberte Přidat.

    Screenshot of the

    Pokud jste bránu nakonfigurovali tak, aby používala možnost konfigurace ADUserNameReplacementProperty , zadejte hodnotu, která nahradí původní hlavní název uživatele Power BI. Pokud například nastavíte ADUserNameReplacementProperty na SAMAccountName, zadejte NÁZEV SAMAccountName uživatele.

Konfigurace brány

Teď, když jste nakonfigurovali certifikát a identitu brány, převeďte certifikát do formátu souboru PFX a pak bránu nakonfigurujte tak, aby používala certifikát následujícím způsobem:

  1. Převeďte certifikát do formátu PFX spuštěním následujícího příkazu. Tento příkaz pojmenuje výsledný soubor samlcert.pfx a nastaví kořenový adresář jako heslo, jak je znázorněno tady:

    openssl pkcs12 -export -out samltest.pfx -in IdP_Cert.pem -inkey IdP_Key.pem -passin pass:root -passout pass:root
    
  2. Zkopírujte soubor PFX do počítače brány:

    a. Poklikejte na samltest.pfx a pak vyberte Místní počítač>Next.

    b. Zadejte heslo a pak vyberte Další.

    c. Vyberte Umístit všechny certifikáty do následujícího úložiště a pak vyberte Procházet>osobní>OK.

    Screenshot of the

    d. Vyberte Další a pak vyberte Dokončit.

  3. Pokud chcete účtu služby brány udělit přístup k privátnímu klíči certifikátu, postupujte takto:

    a. Na počítači brány spusťte konzolu MMC (Microsoft Management Console).

    Screenshot of the gateway machine

    b. V konzole MMC vyberte >modul snap-in Přidat nebo odebrat soubor.

    Screenshot of the

    c. Vyberte Přidat certifikáty>a pak vyberte Další účet>počítače.

    d. Vyberte Tlačítko Ok dokončení>místního počítače.>

    e. Rozbalte položku Osobní>certifikáty> a vyhledejte certifikát.

    f. Klikněte pravým tlačítkem myši na certifikát a pak vyberte Všechny úlohy>Spravovat privátní klíče.

    Screenshot of the

    g. Přidejte do seznamu účet služby brány. Ve výchozím nastavení je účet NT SERVICE\PBIEgwService. Pokud chcete zjistit, který účet spouští službu brány, spusťte services.msc a pak vyhledejte službu místní brány dat.

    Screenshot of the

Nakonec přidejte kryptografický otisk certifikátu do konfigurace brány:

  1. Pokud chcete zobrazit seznam certifikátů na počítači, spusťte následující příkaz PowerShellu:

    Get-ChildItem -path cert:\LocalMachine\My
    
  2. Zkopírujte kryptografický otisk pro certifikát, který jste vytvořili.

  3. Ve výchozím nastavení přejděte do adresáře brány, což je C:\Program Files\On-premises data Gateway .

  4. Otevřete PowerBI.DataMovement.Pipeline.GatewayCore.dll.config a vyhledejte oddíl SapHanaSAMLCertThumbprint . Vložte kryptografický otisk, který jste zkopírovali v kroku 2.

  5. Restartujte službu brány.

Spuštění sestavy Power BI

Teď můžete ke konfiguraci zdroje dat SAP HANA použít stránku Spravovat bránu v Power BI. V části Rozšířené Nastavení povolte jednotné přihlašování prostřednictvím SAML. Tímto způsobem můžete publikovat sestavy a datové sady s vazbou na tento zdroj dat.

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

Poznámka:

Jednotné přihlašování používá ověřování systému Windows, takže se ujistěte, že má účet windows přístup k počítači brány. Pokud si nejste jistí, nezapomeňte do místní skupiny Users přidat nt-AUTHORITY\Authenticated Users (S-1-5-11).

Řešení potíží s používáním SAML pro jednotné přihlašování k SAP HANA

Tato část obsahuje rozsáhlé kroky pro řešení potíží s používáním SAML pro jednotné přihlašování k SAP HANA. Pomocí těchto kroků můžete sami diagnostikovat a opravit případné problémy, se kterým se můžete setkat.

Odmítnuté přihlašovací údaje

Po konfiguraci jednotného přihlašování založeného na SAML se na portálu Power BI může zobrazit následující chyba: Zadané přihlašovací údaje nelze použít pro zdroj SapHana. Tato chyba značí, že SAP HANA odmítl přihlašovací údaje SAML.

Trasování ověřování na straně serveru poskytuje podrobné informace pro řešení potíží s přihlašovacími údaji v SAP HANA. Pokud chcete nakonfigurovat trasování pro server SAP HANA, postupujte takto:

  1. Na serveru SAP HANA zapněte trasování ověřování spuštěním následujícího dotazu:

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') set ('trace', 'authentication') = 'debug' with reconfigure 
    
  2. Reprodukujte problém.

  3. V aplikaci SAP HANA Studio otevřete konzolu pro správu a pak vyberte kartu Soubory diagnostiky .

  4. Otevřete nejnovější trasování indexového serveru a vyhledejte SAMLAuthenticator.cpp.

    Měli byste najít podrobnou chybovou zprávu, která označuje původní příčinu, jak je znázorněno v následujícím příkladu:

    [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. Po dokončení řešení potíží vypněte trasování ověřování spuštěním následujícího dotazu:

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

Ověření a řešení chyb brány

Pokud chcete postupovat podle postupů v této části, musíte shromáždit protokoly brány.

Chyba SSL (certifikát)

Příznaky chyb

Tento problém má několik příznaků. Když se pokusíte přidat nový zdroj dat, může se zobrazit chybová zpráva podobná této:

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

Při pokusu o vytvoření nebo aktualizaci sestavy se může zobrazit chybová zpráva podobná té na následujícím obrázku:

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

Když prozkoumáte Mashup[date]*.log, zobrazí se následující chybová zpráva:

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

Řešení

Pokud chcete tuto chybu SSL vyřešit, přejděte do připojení ke zdroji dat a potom v rozevíracím seznamu Ověřit certifikát serveru vyberte Ne, jak je znázorněno na následujícím obrázku:

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

Po výběru tohoto nastavení se už chybová zpráva nezobrazí.

Chyba SignXML brány

Chyba SignXML brány může být výsledkem nesprávného nastavení SapHanaSAMLCertThumbprint nebo může být problém se serverem HANA. Položky v protokolech brány pomáhají identifikovat, kde se problém nachází, a jak ho vyřešit.

Příznaky chyb

Položky protokolu pro SignXML: Found the cert...: Pokud soubor GatewayInfo[date].log obsahuje tuto chybu, byl nalezen certifikát SignXML a vaše úsilí o řešení potíží by se mělo zaměřit na kroky, které najdete v části Ověření a řešení potíží na straně serveru HANA.

Položky protokolu pro Couldn't find saml cert: Pokud váš soubor GatewayInfo[date].log obsahuje tuto chybu, sapHanaSAMLCertThumbprint je nesprávně nastaven. Následující část řešení popisuje, jak tento problém vyřešit.

Řešení

Pokud chcete správně nastavit SapHanaSAMLCertThumbprint, postupujte podle pokynů v části Konfigurace brány . Pokyny začínají na Finally a přidejte kryptografický otisk certifikátu do konfigurace brány.

Po změně konfiguračního souboru je potřeba restartovat službu brány, aby se změna projevila.

Ověření

Pokud je sapHanaSAMLCertThumbprint správně nastavený, protokoly brány budou obsahovat položky, které zahrnují SignXML: Found the cert.... V tomto okamžiku byste měli být schopni přejít k části Ověření a řešení potíží se serverem HANA.

Pokud brána nemůže použít certifikát k podepsání kontrolního výrazu SAML, může se v protokolech zobrazit chyba podobná této:

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.

Pokud chcete tuto chybu vyřešit, postupujte podle pokynů od kroku 3 v části Konfigurace brány .

Po změně konfigurace restartujte službu brány, aby se změna projevila.

Ověření a řešení potíží na straně serveru HANA

Řešení v této části použijte, pokud brána najde certifikát a podepíše kontrolní výraz SAML, ale stále dochází k chybám. Budete muset shromáždit trasování ověřování HANA, jak je popsáno výše v části Odmítnuté přihlašovací údaje.

Zprostředkovatel identity SAML

Found SAML provider Přítomnost řetězce v trasování ověřování HANA značí, že je správně nakonfigurovaný zprostředkovatel identity SAML. Pokud řetězec není k dispozici, konfigurace je nesprávná.

Řešení

Nejprve určete, jestli vaše organizace používá OpenSSL nebo commoncrypto jako sslcryptoprovider. Pokud chcete zjistit, který zprostředkovatel se používá, postupujte takto:

  1. Otevřete SAP HANA Studio.

  2. Otevřete konzolu Správa istrace pro tenanta, kterého používáte.

  3. Vyberte kartu Konfigurace a jako filtr použijte sslcryptoprovider, jak je znázorněno na následujícím obrázku:

    Screenshot of the sslcryptoprovider information in SAP HANA Studio.

Dále ověřte, že je kryptografická knihovna správně nastavená, a to následujícím postupem:

  1. Přejděte do konzoly zabezpečení v APLIKACI SAP HANA Studio tak , že vyberete kartu Zprostředkovatelé identity SAML a provedete jednu z následujících akcí:

    • Pokud je sslcryptoprovider OpenSSL, vyberte kryptografickou knihovnu OpenSSL.
    • Pokud je šifrování sslcryptoprovider commonCrypto, vyberte kryptografickou knihovnu SAP.

    Na následujícím obrázku je vybraná kryptografická knihovna SAP:

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

  2. Změny nasaďte tak , že v pravém horním rohu vyberete tlačítko Nasadit , jak je znázorněno na následujícím obrázku:

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

Ověření

Pokud jsou trasování správně nakonfigurovaná, budou hlásit a nebudou hlásit Found SAML providerSAML Provider not found. Můžete přejít k další části Řešení potíží s podpisem kontrolního výrazu SAML.

Pokud je kryptografický zprostředkovatel nastavený, ale SAML Provider not found stále se hlásí, vyhledejte v trasování řetězec, který začíná následujícím textem:

Search SAML provider for certificate with subject =

V daném řetězci zajistěte, aby subjekt a vystavitel byly úplně stejné jako na kartě zprostředkovatele identity SAML v konzole zabezpečení. Rozdíl dokonce jednoho znaku může způsobit problém. Pokud zjistíte rozdíl, můžete problém vyřešit v kryptografické knihovně SAP tak, aby se položky přesně shodovaly.

Pokud změna kryptografické knihovny SAP problém nevyřeší, můžete pole Vystavené a Vystavené ručně upravit jednoduše tak, že na ně poklikáním.

Řešení potíží s podpisem kontrolního výrazu SAML

Můžete najít trasování ověřování HANA, které obsahují položky podobné následujícímu:

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

Přítomnost takových položek znamená, že podpis není důvěryhodný.

Řešení

Pokud jako svého poskytovatele sslcryptoprovider používáte OpenSSL , zkontrolujte, jestli jsou soubory trust.pem a key.pem v adresáři SSL. Další informace najdete v blogu SAP Blog Zabezpečení komunikace mezi SAP HANA Studio a SAP HANA Serverem prostřednictvím SSL.

Pokud jako poskytovatele sslcrypto používáte commoncrypto , zkontrolujte, jestli v tenantovi existuje kolekce s vaším certifikátem.

Ověření

Pokud jsou trasování správně nakonfigurovaná, budou hlásit Found valid XML signature.

Řešení potíží s mapováním hlavního názvu uživatele (UPN)

Můžete najít trasování HANA, které obsahují položky podobné následujícímu:

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

Tato chyba značí, že v kontrolních výrazech SAML se nachází nameId johnny@contoso.com , ale na serveru HANA neexistuje nebo není správně namapovaný.

Řešení

Přejděte na uživatele databáze HANA a pod vybraným zaškrtávacím polem SAML vyberte odkaz Konfigurovat . Zobrazí se následující okno:

Screenshot showing that the incorrect user name is displayed.

Jak popisuje chybová zpráva, HANA se snažila najít johnny@contoso.com, ale externí identita se zobrazí jenom jako johnny. Tyto dvě hodnoty se musí shodovat. Pokud chcete tento problém vyřešit, změňte v části Externí identita hodnotu na johnny@contoso.com. Všimněte si, že tato hodnota rozlišují malá a velká písmena.

Další informace o místní bráně dat a DirectQuery najdete v následujících zdrojích informací: