Del via


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.

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

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

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

  4. 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).

    SAP-klient for sikker pålogging

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

  6. 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:

    Godkjente brukere

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

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

  10. Opprett en CCL_PROFILE systemmiljøvariabel, og angi verdien til banen til sapcrypto.ini.

    CCL_PROFILE systemmiljøvariabel

    Sapcrypto-.dll- og .ini-filene må finnes på samme plassering. I eksemplet ovenfor er både sapcrypto.ini og sapcrypto.dll plassert på skrivebordet.

  11. Start gateway-tjenesten på nytt.

    Start gateway-tjenesten på nytt

  12. Kjøre en Power BI-rapport

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

  1. Reprodusere problemet.

  2. Åpne gateway-appen, og velg Eksporter logger fra Diagnostikk-fanen.

    Eksporter gatewaylogger

CPIC-sporing

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

  2. Angi CPIC_TRACE til 3 og CPIC_TRACE_DIR til hvilken katalog du vil spore filene skrevet til. Eksempel:

    CPIC-sporing

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

  1. 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
    
  2. ccl/trace/directory Endre alternativet til en plassering som medlemmer av gruppen Godkjente brukere kan skrive til.

  3. 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
    
  4. Reprodusere problemet og kontroller at plasseringen som katalogen peker på, inneholder sporingsfiler.

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

Skjermbilde av uhjelpsom feil

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.

Skjermbilde av sporingsprogrammet som viser en feil

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:

Skjermbilde av WireShark-programmet som viser en annen feil

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.

  1. Åpne SAP-pålogging.
  2. Bruk SU01-transaksjonen.
  3. Rediger brukeren.
  4. 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.

Hvis du vil ha mer informasjon om den lokale datagatewayen og DirectQuery, kan du se følgende ressurser: