Jednotné přihlašování kerberos pro jednotné přihlašování k SAP BW pomocí knihovny CommonCryptoLib (sapcrypto.dll)
Tento článek popisuje, jak nakonfigurovat zdroj dat SAP BW tak, aby umožňoval jednotné přihlašování z služba Power BI pomocí knihovny CommonCryptoLib (sapcrypto.dll).
Poznámka:
Než se pokusíte aktualizovat sestavu založenou na SAP BW, která používá jednotné přihlašování kerberos, proveďte kroky uvedené v tomto článku i kroky konfigurace jednotného přihlašování založeného na protokolu Kerberos. Použití knihovny CommonCryptoLib jako knihovny SNC (Secure Network Communications) umožňuje připojení jednotného přihlašování k aplikačním serverům SAP BW i serverům zpráv SAP BW.
Poznámka:
Konfigurace obou knihoven (sapcrypto i gx64krb5) na stejném serveru brány je nepodporovaný scénář. Nedoporučuje se konfigurovat obě knihovny na stejném serveru brány, protože to povede ke kombinaci knihoven. Pokud chcete použít obě knihovny, zcela oddělte server brány. Například nakonfigurujte gx64krb5 pro server A a pak sapcrypto pro server B. Mějte na paměti, že všechna selhání na serveru A, který používá gx64krb5, není podporována, protože sap a Microsoft už gx64krb5 nepodporují.
Konfigurace SAP BW pro povolení jednotného přihlašování pomocí knihovny CommonCryptoLib
Poznámka:
Místní brána dat je 64bitový software, a proto k provedení jednotného přihlašování BW vyžaduje 64bitovou verzi knihovny CommonCryptoLib (sapcrypto.dll). Pokud plánujete otestovat připojení jednotného přihlašování k serveru SAP BW v grafickém uživatelském rozhraní SAP před pokusem o připojení přes jednotné přihlašování přes bránu (doporučeno), budete také potřebovat 32bitovou verzi knihovny CommonCryptoLib, protože SAP GUI je 32bitový software.
Ujistěte se, že je váš server BW správně nakonfigurovaný pro jednotné přihlašování přes Kerberos pomocí knihovny CommonCryptoLib. Pokud ano, můžete použít jednotné přihlašování pro přístup k vašemu serveru BW (buď přímo, nebo prostřednictvím serveru zpráv SAP BW) pomocí nástroje SAP, jako je SAP GUI, který je nakonfigurovaný tak, aby používal CommonCryptoLib.
Další informace o krocích nastavení najdete v tématu Jednotné přihlašování SAP: Ověřování pomocí protokolu Kerberos/SPNEGO. Váš server BW by měl jako knihovnu SNC používat CommonCryptoLib a má název SNC, který začíná cn=, například CN=BW1. Další informace o požadavcích na název SNC (konkrétně parametr snc/identity/as) najdete v tématu Parametry SNC pro konfiguraci protokolu Kerberos.
Pokud jste to ještě neudělali, nainstalujte na počítač, na který je brána nainstalovaná, verzi x64 konektoru SAP .NET.
Pokud se pokusíte připojit k serveru BW v Power BI Desktopu z počítače brány, můžete zkontrolovat, jestli je komponenta nainstalovaná. Pokud se nemůžete připojit pomocí implementace 2.0, konektor .NET není nainstalovaný nebo nebyl nainstalován do globální mezipaměti sestavení.
Ujistěte se, že na počítači, na kterém je nainstalovaná brána, není spuštěný klient SAP SLC (Secure Login Client).
SLC ukládá lístky protokolu Kerberos do mezipaměti způsobem, který může narušit schopnost brány používat Kerberos pro jednotné přihlašování.
Pokud je SLC nainstalovaný, odinstalujte ho nebo se ujistěte, že ukončete klienta SAP Secure Login Client. Klikněte pravým tlačítkem myši na ikonu na hlavním panelu systému a před pokusem o připojení přes jednotné přihlašování pomocí brány vyberte Odhlásit se a ukončit .
SLC se nepodporuje pro použití na počítačích s Windows Serverem. Další informace najdete v tématu SAP Note 2780475 (vyžaduje se s-uživatel).
Pokud odinstalujete SLC nebo vyberete Odhlásit se a ukončit, otevřete okno cmd a před pokusem o připojení přes bránu vymažte
klist purge
všechny lístky Kerberos uložené v mezipaměti.Z launchpadu SAP stáhněte 64bitovou verzi CommonCryptoLib (sapcrypto.dll) verze 8.5.25 nebo vyšší a zkopírujte ji do složky na počítači brány. Ve stejném adresáři, do kterého jste zkopírovali sapcrypto.dll, vytvořte soubor s názvem sapcrypto.ini s následujícím obsahem:
ccl/snc/enable_kerberos_in_client_role = 1
Soubor .ini obsahuje informace o konfiguraci vyžadované službou CommonCryptoLib k povolení jednotného přihlašování ve scénáři brány.
Poznámka:
Tyto soubory musí být uloženy ve stejném umístění; jinými slovy, /path/to/sapcrypto/ by měl obsahovat sapcrypto.ini i sapcrypto.dll.
Uživatel služby brány i uživatel Active Directory (AD), kterého bude uživatel služby zosobňovat, potřebují k oběma souborům oprávnění ke čtení a spuštění. Doporučujeme udělit oprávnění pro soubory .ini i .dll skupině Authenticated Users. Pro účely testování můžete tato oprávnění explicitně udělit uživateli služby brány i uživateli ad, který používáte k testování. Na následujícím snímku obrazovky jsme udělili skupině Ověření uživatelé oprávnění číst a spouštět pro sapcrypto.dll:
Pokud ještě nemáte zdroj dat SAP BW přidružený k bráně, kterou má připojení přes jednotné přihlašování procházet, přidejte ho na stránce Spravovat připojení a brány v služba Power BI. Pokud už takový zdroj dat máte, upravte ho:
- Pokud chcete vytvořit připojení jednotného přihlašování k aplikačnímu serveru BW, zvolte jako typ zdroje dat SAP Business Warehouse.
- Pokud chcete vytvořit připojení jednotného přihlašování k serveru zpráv BW, vyberte Sap Business Warehouse Message Server .
Pro knihovnu SNC vyberte SNC_LIB nebo SNC_LIB_64 proměnnou prostředí nebo vlastní.
Pokud vyberete SNC_LIB, musíte na počítači brány nastavit hodnotu proměnné prostředí SNC_LIB_64 na absolutní cestu 64bitové kopie sapcrypto.dll na počítači brány. Například C:\Users\Test\Desktop\sapcrypto.dll.
Pokud zvolíte Možnost Vlastní, vložte absolutní cestu k sapcrypto.dll do pole Cesta k vlastní knihovně SNC, které se zobrazí na stránce Spravovat brány.
Jako název partnera SNC zadejte název SNC serveru BW. V části Upřesnit nastavení se ujistěte, že je zaškrtnuté políčko Použít jednotné přihlašování přes Kerberos pro dotazy DirectQuery. Vyplňte další pole, jako kdybyste navazovali připojení ověřování systému Windows z PBI Desktopu.
Vytvořte proměnnou systémového prostředí CCL_PROFILE a nastavte její hodnotu na cestu k sapcrypto.ini.
Soubory sapcrypto .dll a .ini musí existovat ve stejném umístění. V předchozím příkladu jsou sapcrypto.ini i sapcrypto.dll umístěné na ploše.
Restartujte službu brány.
Řešení problému
Pokud nemůžete aktualizovat sestavu v služba Power BI, můžete k diagnostice problému použít trasování brány, trasování CPIC a trasování knihovny CommonCryptoLib. Protože trasování CPIC a CommonCryptoLib jsou produkty SAP, Microsoft pro ně nemůže poskytovat podporu.
Protokoly brány
Reprodukujte problém.
Otevřete aplikaci brány a na kartě Diagnostika vyberte Exportovat protokoly.
Trasování CPIC
Pokud chcete povolit trasování CPIC, nastavte dvě proměnné prostředí: CPIC_TRACE a CPIC_TRACE_DIR.
První proměnná nastaví úroveň trasování a druhá proměnná nastaví adresář trasovacího souboru. Adresář musí být umístění, do kterého můžou zapisovat členové skupiny Authenticated Users.
Nastavte CPIC_TRACE na hodnotu 3 a CPIC_TRACE_DIR na adresář, do kterého chcete trasovací soubory zapisovat. Příklad:
Reprodukujte problém a ujistěte se, že CPIC_TRACE_DIR obsahuje trasovací soubory.
Trasování CPIC může diagnostikovat problémy na vyšší úrovni, jako je selhání načtení knihovny sapcrypto.dll. Tady je například fragment kódu z trasovacího souboru CPIC, kde došlo k chybě .dll načtení:
[Thr 7228] *** ERROR => DlLoadLib()==DLENOACCESS - LoadLibrary("C:\Users\test\Desktop\sapcrypto.dll") Error 5 = "Access is denied." [dlnt.c 255]
Pokud narazíte na takové selhání, ale u sapcrypto.dll a sapcrypto.ini jste nastavili oprávnění ke čtení a spuštění, jak je popsáno v předchozí části, zkuste u složky obsahující soubory nastavit stejná oprávnění ke čtení a provedení.
Pokud stále nemůžete načíst .dll, zkuste zapnout auditování souboru. Prozkoumání výsledných protokolů auditu ve Windows Prohlížeč událostí vám může pomoct určit, proč se soubor nenačítá. Vyhledejte položku selhání iniciovanou zosobněným uživatelem AD. Například pro zosobněného uživatele
MYDOMAIN\mytestuser
by selhání v protokolu auditu vypadalo přibližně takto:A handle to an object was requested. Subject: Security ID: MYDOMAIN\mytestuser Account Name: mytestuser Account Domain: MYDOMAIN Logon ID: 0xCF23A8 Object: Object Server: Security Object Type: File Object Name: <path information>\sapcrypto.dll Handle ID: 0x0 Resource Attributes: - Process Information: Process ID: 0x2b4c Process Name: C:\Program Files\On-premises data gateway\Microsoft.Mashup.Container.NetFX45.exe Access Request Information: Transaction ID: {00000000-0000-0000-0000-000000000000} Accesses: ReadAttributes Access Reasons: ReadAttributes: Not granted Access Mask: 0x80 Privileges Used for Access Check: - Restricted SID Count: 0
Trasování knihovny CommonCryptoLib
Zapněte trasování knihovny CommonCryptoLib přidáním těchto řádků do souboru sapcrypto.ini, který jste vytvořili dříve:
ccl/trace/level=5 ccl/trace/directory=<drive>:\logs\sectrace
ccl/trace/directory
Změňte možnost na umístění, do kterého můžou zapisovat členové skupiny Authenticated Users.Můžete také vytvořit nový soubor .ini, který toto chování změní. Ve stejném adresáři jako sapcrypto.ini a sapcrypto.dll vytvořte soubor s názvem sectrace.ini s následujícím obsahem.
DIRECTORY
Nahraďte možnost umístěním na vašem počítači, do kterého můžou zapisovat členové skupiny Authenticated Users:LEVEL = 5 DIRECTORY = <drive>:\logs\sectrace
Reprodukujte problém a ověřte, že umístění, na které odkazuje adresář , obsahuje trasovací soubory.
Až budete hotovi, vypněte trasování CPIC a CCL.
Další informace o trasování knihovny CommonCryptoLib najdete v tématu SAP Note 2491573 (vyžaduje se sap s-user).
Zosobnění
Tato část popisuje řešení potíží s příznaky a kroky řešení problémů se zosobněním.
Příznak: Při pohledu na GatewayInfo[date].log najdete položku podobnou této: Informace o zosobnění uživatele DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: ImpersonationLevel: Impersonation). Pokud se hodnota ImpersonationLevel liší od zosobnění, neprobíhá zosobnění správně.
Řešení: Postupujte podle kroků uvedených v článku o udělení oprávnění místních zásad účtu služby brány v článku o počítači brány. Po změně konfigurace restartujte službu brány.
Ověření: Aktualizujte nebo vytvořte sestavu a shromážděte gatewayInfo[datum].log. Otevřete nejnovější soubor protokolu GatewayInfo a znovu zkontrolujte řetězec O zosobnění user DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: ImpersonationLevel: Impersonation), abyste zajistili, že hodnota zosobněníLevel odpovídá zosobnění.
Delegování
Problémy s delegování se obvykle zobrazují v služba Power BI jako obecné chyby. Pokud chcete zjistit, jestli se jedná o problém delegování, je užitečné shromáždit trasování Wireshark a použít protokol Kerberos jako filtr. Informace o chybách protokolu Kerberos najdete v tomto blogovém příspěvku. Zbývající část této části popisuje řešení potíží s příznaky a kroky řešení problémů s delegováním.
Příznak: V služba Power BI se může zobrazit neočekávaná chyba podobná té na následujícím snímku obrazovky. V gatewayInfo[date].log během pokusu o spuštění dotazu ADO pro clientPipelineId uvidíte výjimku [DM.GatewayCore] a import [0D_NW_CHANN] neodpovídá žádnému exportu.
V mashup[date].log se zobrazí obecná chyba GSS-API(maj): Nebyly zadány žádné přihlašovací údaje.
Když se podíváte na trasování CPIC (sec-Microsoft.Mashup.trc*), uvidíte něco podobného jako v následujícím příkladu:
[Thr 4896] *** ERROR => SncPEstablishContext() failed for target='p:CN=BW5' [sncxxall.c 3638]
[Thr 4896] *** ERROR => SncPEstablishContext()==SNCERR_GSSAPI [sncxxall.c 3604]
[Thr 4896] GSS-API(maj): No credentials were supplied
[Thr 4896] Unable to establish the security context
[Thr 4896] target="p:CN=BW5"
[Thr 4896] <<- SncProcessOutput()==SNCERR_GSSAPI
[Thr 4896]
[Thr 4896] LOCATION CPIC (TCP/IP) on local host HNCL2 with Unicode
[Thr 4896] ERROR GSS-API(maj): No credentials were supplied
[Thr 4896] Unable to establish the security context
[Thr 4896] target="p:CN=BW5"
[Thr 4896] TIME Thu Oct 15 20:49:31 2020
[Thr 4896] RELEASE 721
[Thr 4896] COMPONENT SNC (Secure Network Communication)
[Thr 4896] VERSION 6
[Thr 4896] RC -4
[Thr 4896] MODULE sncxxall.c
[Thr 4896] LINE 3604
[Thr 4896] DETAIL SncPEstablishContext
[Thr 4896] SYSTEM CALL gss_init_sec_context
[Thr 4896] COUNTER 3
[Thr 4896]
[Thr 4896] *** ERROR => STISEND:STISncOut failed 20 [r3cpic.c 9834]
[Thr 4896] STISearchConv: found conv without search
Chyba se v sectraces z počítače brány sec-Microsoft.Mashup.Con-[].trc:
[2020.10.15 20:31:38.396000][4][Microsoft.Mashup.Con][Kerberos ][ 3616] AcquireCredentialsHandleA called successfully.
[2020.10.15 20:31:38.396000][2][Microsoft.Mashup.Con][Kerberos ][ 3616] InitializeSecurityContextA returned -2146893053 (0x80090303). Preparation for kerberos failed!
[2020.10.15 20:31:38.396000][2][Microsoft.Mashup.Con][Kerberos ][ 3616] Getting kerberos ticket for 'SAP/BW5' failed (user name is affonso_v@HANABQ.COM)
[2020.10.15 20:31:38.396000][2][Microsoft.Mashup.Con][Kerberos ][ 3616] Error for requested algorithm 18: 0/C000018B The security database on the server does not have a computer account for this workstation trust relationship.
[2020.10.15 20:31:38.396000][2][Microsoft.Mashup.Con][Kerberos ][ 3616] Error for requested algorithm 17: 0/C000018B The security database on the server does not have a computer account for this workstation trust relationship.
[2020.10.15 20:31:38.396000][2][Microsoft.Mashup.Con][Kerberos ][ 3616] Error for requested algorithm 23: 0/C000018B The security database on the server does not have a computer account for this workstation trust relationship.
[2020.10.15 20:31:38.396000][2][Microsoft.Mashup.Con][Kerberos ][ 3616] Error for requested algorithm 3: 0/C000018B The security database on the server does not have a computer account for this workstation trust relationship.
Pokud se podíváte na trasování WireShark, můžete se také podívat na problém.
Poznámka:
Ostatní chyby KRB5KDC_ERR_PREAUTH_REQUIRED je možné bezpečně ignorovat.
Řešení: Do účtu služby musíte přidat SPN SAP/BW5. Podrobné informace a kroky jsou k dispozici v dokumentaci k SAP.
Můžete narazit na podobnou, ale ne identickou chybu, která se projevuje v trasování WireShark jako následující chyba KRB5KDC_ERR_BADOPTION:
Tato chyba značí , že se dá najít hlavní název služby SAP/BW5 , ale není v části Služby, ke kterým může tento účet předložit delegovaná pověření na kartě Delegování pro účet služby brány. Pokud chcete tento problém vyřešit, nakonfigurujte účet služby brány pro standardní omezené delegování kerberos.
Ověření: Správná konfigurace zabrání zobrazení obecných nebo neočekávaných chyb bránou. Pokud se stále zobrazují chyby, zkontrolujte konfiguraci samotné brány nebo konfiguraci serveru BW.
Chyby přihlašovacích údajů
Tato část popisuje řešení potíží s příznaky a kroky řešení problémů s chybami přihlašovacích údajů. V služba Power BI se také můžou zobrazovat obecné chyby, jak je popsáno v předchozí části o delegování.
Na základě příznaků, které vidíte ve zdroji dat (SAP BW), existují různá řešení, takže se podíváme na obojí.
Příznak 1: V souboru sec-disp+work[].trc ze serveru BW se zobrazí trasování podobné následujícímu:
[2020.05.26 14:21:28.668325][4][disp+work ][SAPCRYPTOLIB][435584] { gss_display_name [2020.05.26 14:21:28.668338][4][disp+work ][GSS ][435584] gss_display_name output buffer (41 bytes) [2020.05.26 14:21:28.668338][4][disp+work ][GSS ][435584] CN=DAVID@XS.CONTOSO.COM@CONTOSO.COM
Řešení: V případě potřeby dokončete kroky konfigurace pro nastavení parametrů konfigurace mapování uživatelů na počítači brány. Tyto kroky budete muset dokončit, i když už máte nakonfigurovaný Microsoft Entra Connect.
Ověření: Sestavu budete moct úspěšně načíst do služba Power BI. Pokud sestavu nemůžete načíst, přečtěte si kroky v části Příznaky 2.
Příznak 2: V souboru sec-disp+work[].trc ze serveru BW se zobrazí trasování podobné následujícímu:
[2020.10.19 23:10:15.469000][4][disp+work.EXE ][SAPCRYPTOLIB][ 4460] { gss_display_name
[2020.10.19 23:10:15.469000][4][disp+work.EXE ][GSS ][ 4460] gss_display_name output buffer (23 bytes)
[2020.10.19 23:10:15.469000][4][disp+work.EXE ][GSS ][ 4460] CN=DAVID@CONTOSO.COM
Řešení: Zkontrolujte, jestli externí ID kerberos pro uživatele odpovídá tomu, co se zobrazuje.
- Otevřete SAP Logon.
- Použijte transakci SU01.
- Upravte uživatele.
- Přejděte na kartu SNC a ověřte, že název SNC odpovídá tomu, co se zobrazuje v protokolech.
Ověření: Po správném dokončení budete moct vytvářet a aktualizovat sestavy v služba Power BI.
Související obsah
Další informace o místní bráně dat a DirectQuery najdete v následujících zdrojích informací: