Bruk Kerberos enkel pålogging for SSO til SAP BW ved hjelp av CommonCryptoLib (sapcrypto.dll)
Denne artikkelen beskriver hvordan du konfigurerer SAP BW-datakilden til å aktivere enkel pålogging (SSO) fra Power Bi-tjeneste ved hjelp av CommonCryptoLib (sapcrypto.dll).
Merk
Før du prøver å oppdatere en SAP BW-basert rapport som bruker Kerberos SSO, må du fullføre både trinnene i denne artikkelen og trinnene i Konfigurer Kerberos-basert SSO. Bruk av CommonCryptoLib som SNC-bibliotek (Secure Network Communications) aktiverer SSO-tilkoblinger til både SAP BW-programservere og SAP BW-meldingsservere.
Merk
Konfigurering av både biblioteker(sapcrypto og gx64krb5) på samme gateway-server er et scenario som ikke støttes. Det anbefales ikke å konfigurere begge bibliotekene på samme gateway-server, da det fører til en blanding av biblioteker. Hvis du vil bruke begge bibliotekene, må du skille gatewayserveren fullstendig. Konfigurer for eksempel gx64krb5 for server A og sapcrypto for server B. Husk at eventuelle feil på server A som bruker gx64krb5 ikke støttes, da gx64krb5 ikke lenger støttes av SAP og Microsoft.
Konfigurer SAP BW for å aktivere SSO ved hjelp av CommonCryptoLib
Merk
Den lokale datagatewayen er 64-biters programvare og krever derfor 64-biters versjonen av CommonCryptoLib (sapcrypto.dll) for å utføre BW SSO. Hvis du planlegger å teste SSO-tilkoblingen til SAP BW-serveren i SAP GUI før du prøver en SSO-tilkobling via gatewayen (anbefales), trenger du også 32-biters versjonen av CommonCryptoLib, siden SAP GUI er 32-biters programvare.
Kontroller at BW-serveren er riktig konfigurert for Kerberos SSO ved hjelp av CommonCryptoLib. Hvis det er det, kan du bruke SSO til å få tilgang til BW-serveren (enten direkte eller via en SAP BW-meldingsserver) med et SAP-verktøy som SAP GUI som er konfigurert til å bruke CommonCryptoLib.
Hvis du vil ha mer informasjon om konfigurasjonstrinn, kan du se SAP Enkel pålogging: Godkjenne med Kerberos/SPNEGO. BW-serveren bør bruke CommonCryptoLib som SNC-bibliotek og ha et SNC-navn som starter med CN=, for eksempel CN=BW1. Hvis du vil ha mer informasjon om SNC-navnekrav (spesielt snc/identity/as-parameteren), kan du se SNC-parametere for Kerberos Configuration.
Hvis du ikke allerede har gjort det, installerer du x64-versjonen av SAP .NET Connector på datamaskinen gatewayen er installert på.
Du kan kontrollere om komponenten er installert ved å prøve å koble til BW-serveren i Power BI Desktop fra gateway-datamaskinen. Hvis du ikke kan koble til ved hjelp av 2.0-implementeringen, er ikke .NET Connector installert eller er ikke installert i den globale samlingsbufferen.
Sørg for at SAP Secure Login Client (SLC) ikke kjører på datamaskinen gatewayen er installert på.
SLC bufrer Kerberos-billetter på en måte som kan påvirke gatewayens mulighet til å bruke Kerberos for SSO.
Hvis SLC er installert, avinstallerer du det eller kontrollerer at du avslutter sap sikker påloggingsklient. Høyreklikk ikonet i systemstatusfeltet, og velg Logg av og av før du prøver en SSO-tilkobling ved hjelp av gatewayen.
SLC støttes ikke for bruk på Windows Server-maskiner. Hvis du vil ha mer informasjon, kan du se SAP Note 2780475 (s-user required).
Hvis du avinstallerer SLC eller velger Logg av og av, åpner du et cmd-vindu og skriver inn
klist purge
for å fjerne eventuelle bufrede Kerberos-billetter før du prøver en SSO-tilkobling gjennom gatewayen.Last ned 64-biters CommonCryptoLib (sapcrypto.dll) versjon 8.5.25 eller nyere fra SAP Launchpad, og kopier den til en mappe på gateway-maskinen. Opprett en fil med navnet sapcrypto.ini i samme katalog der du kopierte sapcrypto.dll, med følgende innhold:
ccl/snc/enable_kerberos_in_client_role = 1
Den .ini filen inneholder konfigurasjonsinformasjon som kreves av CommonCryptoLib for å aktivere SSO i gatewayscenarioet.
Merk
Disse filene må lagres på samme plassering. med andre ord, /path/to/sapcrypto/ bør inneholde både sapcrypto.ini og sapcrypto.dll.
Både brukeren av gateway-tjenesten og brukeren av Active Directory (AD) som tjenestebrukeren representerer, trenger lese- og kjøre-tillatelser for begge filene. Vi anbefaler at du gir tillatelser for både .ini og .dll filer til gruppen Godkjente brukere. For testformål kan du også eksplisitt gi disse tillatelsene til både gateway-tjenestebrukeren og AD-brukeren du bruker til testing. I skjermbildet nedenfor har vi gitt gruppen Godkjente brukere lese- og kjøretillatelser for sapcrypto.dll:
Hvis du ikke allerede har en SAP BW-datakilde som er knyttet til gatewayen du vil at SSO-tilkoblingen skal flyte gjennom, legger du til en på siden Behandle tilkoblinger og gatewayer i Power Bi-tjeneste. Hvis du allerede har en slik datakilde, kan du redigere den:
- Velg SAP Business Warehouse som datakildetype hvis du vil opprette en SSO-tilkobling til en BW-programserver.
- Velg Meldingsserver for Sap Business Warehouse hvis du vil opprette en SSO-tilkobling til en BW-meldingsserver.
Velg enten SNC_LIB- eller SNC_LIB_64 miljøvariabelen for SNC-bibliotek, eller Egendefinert.
Hvis du velger SNC_LIB, må du angi verdien for miljøvariabelen SNC_LIB_64 på gatewaymaskinen til den absolutte banen til 64-biters kopien av sapcrypto.dll på gateway-maskinen. For eksempel C:\Brukere\Test\Skrivebord\sapcrypto.dll.
Hvis du velger Egendefinert, limer du inn den absolutte banen for å sapcrypto.dll i feltet Egendefinert bane for SNC-bibliotek, som vises på siden Behandle gatewayer .
Skriv inn SNC-navnet på BW-serveren for SNC-partnernavnet. Kontroller at Det er merket av for Bruk SSO via Kerberos for DirectQuery-spørringer under Avanserte innstillinger. Fyll ut de andre feltene som om du opprettet en Windows-godkjenningstilkobling fra PBI Desktop.
Opprett en CCL_PROFILE systemmiljøvariabel, og angi verdien til banen til sapcrypto.ini.
Sapcrypto-.dll- og .ini-filene må finnes på samme plassering. I eksemplet ovenfor er både sapcrypto.ini og sapcrypto.dll plassert på skrivebordet.
Start gateway-tjenesten på nytt.
Feilsøking
Hvis du ikke kan oppdatere rapporten i Power Bi-tjeneste, kan du bruke gatewaysporing, CPIC-sporing og CommonCryptoLib-sporing for å diagnostisere problemet. Siden CPIC-sporing og CommonCryptoLib er SAP-produkter, kan ikke Microsoft gi støtte for dem.
Gatewaylogger
Reprodusere problemet.
Åpne gateway-appen, og velg Eksporter logger fra Diagnostikk-fanen.
CPIC-sporing
Hvis du vil aktivere CPIC-sporing, angir du to miljøvariabler: CPIC_TRACE og CPIC_TRACE_DIR.
Den første variabelen angir sporingsnivået, og den andre variabelen angir sporingsfilkatalogen. Katalogen må være en plassering som medlemmer av gruppen Godkjente brukere kan skrive til.
Angi CPIC_TRACE til 3 og CPIC_TRACE_DIR til hvilken katalog du vil spore filene skrevet til. Eksempel:
Reprodusere problemet og sikre at CPIC_TRACE_DIR inneholder sporingsfiler.
CPIC-sporing kan diagnostisere problemer på høyere nivå, for eksempel en feil under innlasting av sapcrypto.dll biblioteket. Her er for eksempel en kodesnutt fra en CPIC-sporingsfil der det oppstod en .dll innlastingsfeil:
[Thr 7228] *** ERROR => DlLoadLib()==DLENOACCESS - LoadLibrary("C:\Users\test\Desktop\sapcrypto.dll") Error 5 = "Access is denied." [dlnt.c 255]
Hvis du støter på en slik feil, men du har angitt lese- og kjøringstillatelsene på sapcrypto.dll og sapcrypto.ini som beskrevet i delen ovenfor, kan du prøve å angi de samme lese- og kjøringstillatelsene i mappen som inneholder filene.
Hvis du fremdeles ikke kan laste inn .dll, kan du prøve å aktivere overvåking for filen. Hvis du undersøker de resulterende overvåkingsloggene i Windows Hendelsesliste kan det hjelpe deg med å finne ut hvorfor filen ikke lastes inn. Se etter en feiloppføring initiert av den representerte AD-brukeren. For den representerte brukeren
MYDOMAIN\mytestuser
vil for eksempel en feil i overvåkingsloggen se omtrent slik ut: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
CommonCryptoLib-sporing
Aktiver CommonCryptoLib-sporing ved å legge til disse linjene i den sapcrypto.ini filen du opprettet tidligere:
ccl/trace/level=5 ccl/trace/directory=<drive>:\logs\sectrace
ccl/trace/directory
Endre alternativet til en plassering som medlemmer av gruppen Godkjente brukere kan skrive til.Du kan også opprette en ny .ini fil for å endre denne virkemåten. Opprett en fil med navnet sectrace.ini med følgende innhold i samme katalog som sapcrypto.ini og sapcrypto.dll.
DIRECTORY
Erstatt alternativet med en plassering på maskinen som medlemmer av gruppen Godkjente brukere kan skrive til:LEVEL = 5 DIRECTORY = <drive>:\logs\sectrace
Reprodusere problemet og kontroller at plasseringen som katalogen peker på, inneholder sporingsfiler.
Når du er ferdig, deaktiverer du CPIC- og CCL-sporing.
Hvis du vil ha mer informasjon om CommonCryptoLib-sporing, kan du se SAP Note 2491573 (SAP s-user required).
Representasjon
Denne delen beskriver feilsøking av symptomer og løsningstrinn for representasjonsproblemer.
Symptom: Når du ser på GatewayInfo[date].log finner du en oppføring som ligner på følgende: Om å representere brukeren DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation). Hvis verdien for ImpersonationLevel er forskjellig fra representasjon, skjer ikke representasjonen riktig.
Løsning: Følg trinnene i å gi gateway-tjenestekontoen lokale policyrettigheter i artikkelen gateway-maskin . Start gateway-tjenesten på nytt etter at du har endret konfigurasjonen.
Validering: Oppdater eller opprett rapporten, og samle gatewayInfo [date].log. Åpne den nyeste gatewayInfo-loggfilen, og kontroller igjen strengen Om å representere brukeren DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation) for å sikre at verdien for ImpersonationLevel samsvarer med representasjon.
Delegering
Delegeringsproblemer vises vanligvis i Power Bi-tjeneste som generiske feil. Hvis du vil finne ut om delegering er problemet, er det nyttig å samle inn Wireshark-sporingene og bruke Kerberos som filter. Se dette blogginnlegget for Kerberos-feilreferanse. Resten av denne delen beskriver feilsøking av symptomer og løsningstrinn for delegeringsproblemer.
Symptom: I Power Bi-tjeneste kan det oppstå en uventet feil som ligner på den i skjermbildet nedenfor. I GatewayInfo[date].log ser du at [DM.GatewayCore] inntar et unntak under kjøringsforsøket for ADO-spørringen for clientPipelineId , og importen [0D_NW_CHANN] samsvarer med ingen eksporter.
I Mashup[date].log ser du den generiske feilen GSS-API(maj): Ingen legitimasjon ble angitt.
Når du ser på CPIC-sporingene (sec-Microsoft.Mashup.trc*), ser du noe som ligner på 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
Feilen blir klarere i sectraces fra gateway-maskinen 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 ser på WireShark-sporinger.
Merk
De andre feilene KRB5KDC_ERR_PREAUTH_REQUIRED kan trygt ignoreres.
Løsning: Du må legge til en SPN SAP/BW5 i en tjenestekonto. Detaljert informasjon og trinn er tilgjengelig i SAP-dokumentasjonen.
Du kan støte på en lignende, men ikke identisk feil som manifesterer seg i WireShark-sporinger som følgende feil KRB5KDC_ERR_BADOPTION:
Denne feilen indikerer at SPN SAP/BW5 ble funnet, men den er ikke under Tjenester som denne kontoen kan presentere delegerte legitimasjoner i delegeringsfanen for gateway-tjenestekontoen. Hvis du vil løse dette problemet, følger du fremgangsmåten for å konfigurere gateway-tjenestekontoen for standard kerberos-avgrenset delegering.
Validering: Riktig konfigurasjon vil hindre generiske eller uventede feil fra å bli presentert av gatewayen. Hvis du fremdeles ser feil, kontrollerer du konfigurasjonen av selve gatewayen eller konfigurasjonen av BW-serveren.
Legitimasjonsfeil
Denne delen beskriver feilsøking av symptomer og løsningstrinn for feilproblemer med legitimasjon. Du kan også se generelle feil fra Power Bi-tjeneste, som beskrevet i den tidligere delen om delegering.
Det finnes ulike løsninger, basert på symptomene du ser i datakilden (SAP BW), så vi vil se gjennom begge.
Symptom 1: I sectraces sec-disp+work[].trc-filen fra BW-serveren ser du sporinger som ligner på 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: Fullfør konfigurasjonstrinnene for å angi konfigurasjonsparametere for brukertilordning på gatewaymaskinen om nødvendig. Du må fullføre disse trinnene selv om du allerede har konfigurert Microsoft Entra Connect.
Validering: Du kan laste inn rapporten i Power Bi-tjeneste. Hvis du ikke kan laste inn rapporten, kan du se trinnene i Symptom 2.
Symptom 2: I sectraces sec-disp+work[].trc-filen fra BW-serveren ser du sporinger som ligner på 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: Kontroller om Den eksterne Kerberos-ID-en for brukeren samsvarer med hva setracene vises.
- Åpne SAP-pålogging.
- Bruk SU01-transaksjonen.
- Rediger brukeren.
- Gå til SNC-fanen , og kontroller at SNC-navnet samsvarer med det som vises i loggene.
Validering: Når den er riktig fullført, kan du opprette og oppdatere rapporter i Power Bi-tjeneste.
Relatert innhold
Hvis du vil ha mer informasjon om den lokale datagatewayen og DirectQuery, kan du se følgende ressurser: