Brug Kerberos enkeltlogon for SSO til SAP BW ved hjælp af CommonCryptoLib (sapcrypto.dll)
I denne artikel beskrives det, hvordan du konfigurerer din SAP BW-datakilde for at aktivere enkeltlogon (SSO) fra Power BI-tjeneste ved hjælp af CommonCryptoLib (sapcrypto.dll).
Bemærk
Før du forsøger at opdatere en SAP BW-baseret rapport, der bruger Kerberos SSO, skal du fuldføre både trinnene i denne artikel og trinnene i Konfigurer Kerberos-baseret SSO. Brug af CommonCryptoLib som dit SNC-bibliotek (Secure Network Communications) aktiverer SSO-forbindelser til både SAP BW-programservere og SAP BW-meddelelsesservere.
Bemærk
Konfiguration af begge biblioteker (sapcrypto og gx64krb5) på den samme gatewayserver understøttes ikke. Det anbefales ikke at konfigurere begge biblioteker på den samme gatewayserver, da det vil føre til en blanding af biblioteker. Hvis du vil bruge begge biblioteker, skal du adskille gatewayserveren helt. Konfigurer f.eks. gx64krb5 for server A og derefter sapcrypto for server B. Husk, at fejl på server A, der bruger gx64krb5, ikke understøttes, da gx64krb5 ikke længere understøttes af SAP og Microsoft.
Konfigurer SAP BW for at aktivere SSO ved hjælp af CommonCryptoLib
Bemærk
Datagatewayen i det lokale miljø er 64-bit software og kræver derfor 64-bit versionen af CommonCryptoLib (sapcrypto.dll) for at kunne udføre BW SSO. Hvis du planlægger at teste SSO-forbindelsen til din SAP BW-server i SAP GUI, før du forsøger at oprette en SSO-forbindelse via gatewayen (anbefales), skal du også bruge 32-bit versionen af CommonCryptoLib, da SAP GUI er 32-bit software.
Sørg for, at din BW-server er konfigureret korrekt til Kerberos SSO ved hjælp af CommonCryptoLib. Hvis det er, kan du bruge SSO til at få adgang til din BW-server (enten direkte eller via en SAP BW-meddelelsesserver) med et SAP-værktøj som SAP GUI, der er konfigureret til at bruge CommonCryptoLib.
Du kan finde flere oplysninger om konfigurationstrin i SAP Single Sign-On: Godkend med Kerberos/SPNEGO. BW-serveren skal bruge CommonCryptoLib som SNC-bibliotek og have et SNC-navn, der starter med CN=, f.eks . CN=BW1. Du kan få flere oplysninger om krav til SNC-navne (specifikt parameteren snc/identity/as) under SNC-parametre for Kerberos-konfiguration.
Hvis du ikke allerede har gjort det, skal du installere x64-versionen af SAP .NET Connector på den computer, som gatewayen er installeret på.
Du kan kontrollere, om komponenten er installeret, ved at forsøge at oprette forbindelse til din BW-server i Power BI Desktop fra gatewaycomputeren. Hvis du ikke kan oprette forbindelse ved hjælp af implementeringen af 2.0, er .NET Connector ikke installeret eller er ikke installeret i den globale assemblycache.
Sørg for, at SAP Secure logon Client (SLC) ikke kører på den computer, hvor gatewayen er installeret.
SLC cachelagrer Kerberos-billetter på en måde, der kan forstyrre gatewayens mulighed for at bruge Kerberos til SSO.
Hvis SLC er installeret, skal du fjerne den eller sørge for at afslutte SAP Secure Login Client. Højreklik på ikonet på proceslinjen, og vælg Log af og afslut , før du forsøger at oprette en SSO-forbindelse ved hjælp af gatewayen.
SLC understøttes ikke til brug på Windows Server-computere. Du kan få flere oplysninger under SAP Note 2780475 (s-bruger er påkrævet).
Hvis du fjerner SLC eller vælger Log af og afslut, skal du åbne et cmd-vindue og angive
klist purge
for at rydde alle cachelagrede Kerberos-billetter, før du forsøger at oprette en SSO-forbindelse via gatewayen.Download 64-bit CommonCryptoLib (sapcrypto.dll) version 8.5.25 eller nyere fra SAP Launchpad, og kopiér den til en mappe på gatewaycomputeren. I den samme mappe, hvor du kopierede sapcrypto.dll, skal du oprette en fil med navnet sapcrypto.ini med følgende indhold:
ccl/snc/enable_kerberos_in_client_role = 1
Filen .ini indeholder konfigurationsoplysninger, der kræves af CommonCryptoLib for at aktivere SSO i gatewayscenariet.
Bemærk
Disse filer skal gemmes på samme placering. med andre ord skal /path/to/sapcrypto/ indeholde både sapcrypto.ini og sapcrypto.dll.
Både brugeren af gatewaytjenesten og brugeren af Active Directory (AD), som brugeren af tjenesten repræsenterer, skal have læse- og udførelses-tilladelser til begge filer. Vi anbefaler, at du tildeler tilladelser til både .ini- og .dll-filer til gruppen Godkendte brugere. I forbindelse med test kan du også eksplicit tildele disse tilladelser til både den bruger af gatewaytjenesten og den AD-bruger, du bruger til test. På følgende skærmbillede har vi tildelt gruppen Godkendte brugere tilladelsen Læs og udfør for sapcrypto.dll:
Hvis du ikke allerede har en SAP BW-datakilde tilknyttet den gateway, du vil have SSO-forbindelsen til at flyde igennem, skal du tilføje en på siden Administrer forbindelser og gateways i Power BI-tjeneste. Hvis du allerede har en sådan datakilde, skal du redigere den:
- Vælg SAP Business Warehouse som datakildetype , hvis du vil oprette en SSO-forbindelse til en BW-programserver.
- Vælg Sap Business Warehouse Message Server , hvis du vil oprette en SSO-forbindelse til en BW-meddelelsesserver.
For SNC-bibliotek skal du vælge enten miljøvariablen SNC_LIB eller SNC_LIB_64 eller Brugerdefineret.
Hvis du vælger SNC_LIB, skal du angive værdien af miljøvariablen SNC_LIB_64 på gatewaycomputeren til den absolutte sti til 64-bit kopien af sapcrypto.dll på gatewaycomputeren. F.eks . C:\Users\Test\Desktop\sapcrypto.dll.
Hvis du vælger Brugerdefineret, skal du indsætte den absolutte sti for at sapcrypto.dll i feltet Sti til brugerdefineret SNC-bibliotek, der vises på siden Administrer gateways.
Angiv SNC-navnet på BW-serveren som SNC-partnernavn. Kontrollér, at Brug SSO via Kerberos til DirectQuery-forespørgsler er markeret under Avancerede indstillinger. Udfyld de andre felter, som om du skulle oprette en Windows-godkendelsesforbindelse fra PBI Desktop.
Opret en CCL_PROFILE systemmiljøvariabel, og angiv dens værdi til stien til sapcrypto.ini.
Sapcrypto-.dll- og .ini-filerne skal findes på samme placering. I ovenstående eksempel er sapcrypto.ini og sapcrypto.dll begge placeret på skrivebordet.
Genstart gatewaytjenesten.
Fejlfinding
Hvis du ikke kan opdatere rapporten i Power BI-tjeneste, kan du bruge sporing af gatewayen, sporing af CPIC og sporing af CommonCryptoLib til at diagnosticere problemet. Da sporing af CPIC og CommonCryptoLib er SAP-produkter, kan Microsoft ikke yde support til dem.
Gatewaylogge
CPIC-sporing
Hvis du vil aktivere sporing af CPIC, skal du angive to miljøvariabler: CPIC_TRACE og CPIC_TRACE_DIR.
Den første variabel angiver sporingsniveauet, og den anden variabel angiver mappen med sporingsfiler. Mappen skal være en placering, som medlemmer af gruppen Godkendte brugere kan skrive til.
Angiv CPIC_TRACE til 3 , og CPIC_TRACE_DIR til den mappe, sporingsfilerne skal skrives til. Eksempler:
Genskab problemet, og sørg for, at CPIC_TRACE_DIR indeholder sporingsfiler.
CPIC-sporing kan diagnosticere problemer på højere niveau, f.eks. en fejl under indlæsning af det sapcrypto.dll bibliotek. Her er f.eks. et kodestykke fra en CPIC-sporingsfil, hvor der opstod en .dll indlæsningsfejl:
[Thr 7228] *** ERROR => DlLoadLib()==DLENOACCESS - LoadLibrary("C:\Users\test\Desktop\sapcrypto.dll") Error 5 = "Access is denied." [dlnt.c 255]
Hvis du oplever en sådan fejl, men du har angivet læse- og udførelsestilladelserne for sapcrypto.dll og sapcrypto.ini som beskrevet i afsnittet ovenfor, kan du prøve at angive de samme læse- og kørselstilladelser til den mappe, der indeholder filerne.
Hvis du stadig ikke kan indlæse .dll, kan du prøve at aktivere overvågning for filen. Hvis du undersøger de resulterende overvågningslogge i Windows Logbog kan det hjælpe dig med at finde ud af, hvorfor filen ikke kan indlæses. Søg efter en fejlpost, der er startet af den repræsenterede AD-bruger. For den repræsenterede bruger
MYDOMAIN\mytestuser
vil en fejl i overvågningsloggen f.eks. se nogenlunde sådan ud: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
Sporing af CommonCryptoLib
Slå sporing af CommonCryptoLib til ved at føje disse linjer til den sapcrypto.ini fil, du oprettede tidligere:
ccl/trace/level=5 ccl/trace/directory=<drive>:\logs\sectrace
Skift indstillingen
ccl/trace/directory
til en placering, som medlemmer af gruppen Godkendte brugere kan skrive til.Du kan også oprette en ny .ini fil for at ændre denne funktionsmåde. Opret en fil med navnet sectrace.ini med følgende indhold i den samme mappe som sapcrypto.ini og sapcrypto.dll. Erstat indstillingen
DIRECTORY
med en placering på computeren, som medlemmer af gruppen Godkendte brugere kan skrive til:LEVEL = 5 DIRECTORY = <drive>:\logs\sectrace
Genskab problemet, og kontrollér, at den placering, der peges på af DIRECTORY , indeholder sporingsfiler.
Når du er færdig, skal du slå sporing af CPIC og CCL fra.
Du kan få flere oplysninger om sporing af CommonCryptoLib i SAP Note 2491573 (SAP s-bruger er påkrævet).
Personifikation
I dette afsnit beskrives fejlfinding af symptomer og løsningstrin i forbindelse med repræsentationsproblemer.
Symptom: Når du kigger på GatewayInfo[date].log finder du en post, der ligner følgende: Om at repræsentere bruger DOMÆNE\Bruger (IsAuthenticated: True, ImpersonationLevel: Impersonation). Hvis værdien for ImpersonationLevel er forskellig fra Repræsentation, sker repræsentationen ikke korrekt.
Løsning: Følg trinnene i artiklen Tildel gatewaytjenestekontoen lokale politikrettigheder på gatewaycomputeren . Genstart gatewaytjenesten, når du har ændret konfigurationen.
Validering: Opdater eller opret rapporten, og indsaml GatewayInfo[date].log. Åbn den nyeste GatewayInfo-logfil, og kontrollér igen strengen About to repersonate user DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation) for at sikre, at værdien for ImpersonationLevel svarer til Repræsentation.
Delegering
Delegeringsproblemer vises normalt i Power BI-tjeneste som generiske fejl. Hvis du vil finde ud af, om delegering er problemet, er det nyttigt at indsamle Wireshark-sporingerne og bruge Kerberos som et filter. Du kan finde reference til Kerberos-fejl i dette blogindlæg. I resten af dette afsnit beskrives fejlfindingssymptomer og løsningstrin for delegeringsproblemer.
Symptom: I Power BI-tjeneste kan der opstå en uventet fejl, der ligner den på følgende skærmbillede. I GatewayInfo[date].log kan du se , at [DM.GatewayCore] indtog en undtagelse under udførelsesforsøget på ADO-forespørgslen for clientPipelineId , og importen [0D_NW_CHANN] svarer til ingen eksporter.
I Mashup[date].log kan du se den generiske fejl GSS-API(maj): Der blev ikke angivet nogen legitimationsoplysninger.
Hvis du kigger på CPIC-sporene (sec-Microsoft.Mashup.trc*), kan du se noget, der ligner følgende:
[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
Fejlen bliver tydeligere i sektraces fra gatewaycomputeren 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.
Du kan også se problemet, hvis du kigger på WireShark-sporinger.
Bemærk
De andre fejl KRB5KDC_ERR_PREAUTH_REQUIRED kan ignoreres.
Løsning: Du skal føje et SPN SAP/BW5 til en tjenestekonto. Du kan finde detaljerede oplysninger og trin i SAP-dokumentationen.
Du støder muligvis på en lignende, men ikke identisk fejl, som manifester i WireShark sporer som følgende fejl KRB5KDC_ERR_BADOPTION:
Denne fejl angiver, at SPN SAP/BW5 blev fundet, men det er ikke under Tjenester, som denne konto kan præsentere delegerede legitimationsoplysninger til under fanen Delegering for gatewaytjenestekontoen. Du kan løse dette problem ved at følge trinnene for at konfigurere gatewaytjenestekontoen for begrænset kerberos-standarddelegering.
Validering: Korrekt konfiguration forhindrer generiske eller uventede fejl i at blive præsenteret af gatewayen. Hvis du stadig får vist fejl, skal du kontrollere konfigurationen af selve gatewayen eller konfigurationen af BW-serveren.
Fejl i legitimationsoplysninger
I dette afsnit beskrives fejlfindingssymptomer og løsningstrin for fejl i legitimationsoplysninger. Du kan også se generiske fejl fra Power BI-tjeneste, som beskrevet i det tidligere afsnit om delegering.
Der er forskellige løsninger baseret på de symptomer, du ser i datakilden (SAP BW), så vi gennemgår begge dele.
Symptom 1: I sectraces sec-disp+work[].trc-filen fra BW-serveren kan du se sporinger, der ligner følgende:
[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
Løsning: Fuldfør konfigurationstrinnene for at angive konfigurationsparametre for brugertilknytning på gatewaycomputeren, hvis det er nødvendigt. Du skal fuldføre disse trin, selvom du allerede har konfigureret Microsoft Entra Connect.
Validering: Du kan indlæse rapporten i Power BI-tjeneste. Hvis du ikke kan indlæse rapporten, kan du se trinnene i Symptom 2.
Symptom 2: I sectraces sec-disp+work[].trc-filen fra BW-serveren kan du se sporinger, der ligner følgende:
[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
Løsning: Kontrollér, om det eksterne Kerberos-id for brugeren stemmer overens med det, der vises i sectraces.
- Åbn SAP Logon.
- Brug SU01-transaktionen.
- Rediger brugeren.
- Gå til fanen SNC , og bekræft, at SNC-navnet stemmer overens med det, der vises i dine logge.
Validering: Når du er korrekt fuldført, kan du oprette og opdatere rapporter i Power BI-tjeneste.
Relateret indhold
Du kan finde flere oplysninger om datagatewayen i det lokale miljø og DirectQuery i følgende ressourcer: