Kerberoksen kertakirjautumisen käyttäminen kertakirjautumista varten SAP BW:hen CommonCryptoLibin (sapcrypto.dll) avulla
Tässä artikkelissa kerrotaan, miten voit määrittää SAP BW -tietolähteesi ottamaan käyttöön kertakirjautumisen (SSO) Power BI -palvelusta CommonCryptoLibin (sapcrypto.dll) avulla.
Muistiinpano
Ennen kuin yrität päivittää SAP BW -pohjaisen raportin, joka käyttää Kerberos-kertakirjautumista, tee sekä tässä artikkelissa olevat vaiheet että artikkelissa Kerberos-pohjaisen kertakirjautumisen määrittäminen olevat vaiheet. CommonCryptoLibin käyttäminen SNC-kirjastona mahdollistaa kertakirjautumisyhteydet sekä SAP BW -sovelluspalvelimiin että SAP BW -viestipalvelimiin.
Muistiinpano
Molempien kirjastojen (sapcrypto ja gx64krb5) määrittäminen samalle yhdyskäytäväpalvelimelle on skenaario, jota ei tueta. Molempien kirjastojen määrittämistä samalle yhdyskäytäväpalvelimelle ei suositella, koska se johtaa kirjastojen yhdistelmään. Jos haluat käyttää molempia kirjastoja, erota yhdyskäytäväpalvelin kokonaan toisistaan. Määritä esimerkiksi gx64krb5 palvelimelle A ja sitten sapcrypto palvelimelle B. Muista, että palvelimessa A, joka käyttää gx64krb5:tä, ei tueta, koska SAP ja Microsoft eivät enää tue gx64krb5:tä.
SAP BW:n määrittäminen kertakirjautumista varten CommonCryptoLibiä käyttämällä
Muistiinpano
Paikallinen tietoyhdyskäytävä on 64-bittinen ohjelmisto, ja se edellyttää siksi 64-bittistä versiota CommonCryptoLibistä (sapcrypto.dll) BW SSO:n suorittamiseen. Jos aiot testata kertakirjautumisyhteyttä SAP BW -palvelimeen SAP GUIssa ennen kertakirjautumisyhteyden muodostamista yhdyskäytävän kautta (suositus), tarvitset myös CommonCryptoLibin 32-bittisen version, koska SAP GUI on 32-bittinen ohjelmisto.
Varmista, että BW-palvelimesi on määritetty oikein Kerberos-kertakirjautumista varten CommonCryptoLibin avulla. Jos näin on, pääset BW-palvelimeen kertakirjautumista käyttämällä (joko suoraan tai SAP BW -viestipalvelimen kautta) SAP GUIn kaltaisella SAP-työkalulla, joka on määritetty käyttämään CommonCryptoLibiä.
Lisätietoja asennusvaiheista on kohdassa SAP-kertakirjautuminen: Todentaminen Kerberoksen/SPNEGOn avulla. BW-palvelimesi tulee käyttää CommonCryptoLibiä sen SNC-kirjastona, ja sillä tulee olla SNC-nimi, joka alkaa merkkijonolla CN=, esimerkiksi CN=BW1. Lisätietoja SNC-nimen vaatimuksista (erityisesti snc/identity/as parameter) on kohdassa Kerberos-määrityksen SNC-parametrit.
Jos et ole vielä tehnyt niin, asenna SAP .NET Connectorin x64-versio tietokoneeseen, johon yhdyskäytävä on asennettu.
Voit tarkistaa, onko osa asennettu, yrittämällä muodostaa yhteyden BW-palvelimeen Power BI Desktopissa yhdyskäytävän tietokoneesta. Jos et voi muodostaa yhteyttä 2.0-toteutuksen avulla, .NET Connectoria ei ole asennettu tai sitä ei ole asennettu yleiseen kokoonpanon välimuistiin.
Varmista, että SAP Secure Login Client (SLC) ei ole käynnissä tietokoneessa, johon yhdyskäytävä on asennettu.
SLC tallentaa Kerberos-liput välimuistiin tavalla, joka voi häiritä yhdyskäytävän kykyä käyttää Kerberos-kertakirjautumista.
Jos SLC on asennettu, poista sen asennus tai varmista, että suljet SAP Secure Login Clientin. Napsauta hiiren kakkospainikkeella ilmaisinalueella olevaa kuvaketta ja valitse Kirjaudu ulos ja Lopeta , ennen kuin yrität kertakirjautumisyhteyttä yhdyskäytävän avulla.
SLC:n käyttöä ei tueta Windows Server -koneissa. Lisätietoja on kohdassa SAP Note 2780475 (s-käyttäjä vaaditaan).
Jos poistat SLC-asennuksen tai valitset Kirjaudu ulos ja Lopeta, avaa cmd-ikkuna ja kirjoita
klist purge
poistaaksesi välimuistissa olevat Kerberos-liput, ennen kuin yrität kertakirjautumisyhteyden muodostamista yhdyskäytävän kautta.Lataa 64-bittinen CommonCryptoLib (sapcrypto.dll) -versio 8.5.25 tai uudempi SAP Launchpadista ja kopioi se yhdyskäytäväkoneesi kansioon. Luo samassa hakemistossa, johon kopioit sapcrypto.dll, tiedosto nimeltä sapcrypto.ini käyttäen seuraavaa sisältöä:
ccl/snc/enable_kerberos_in_client_role = 1
.ini sisältää CommonCryptoLibin edellyttämät määritystiedot, jotka mahdollistavat kertakirjautumisen yhdyskäytäväskenaariossa.
Muistiinpano
Nämä tiedostot on tallennettava samaan sijaintiin. toisin sanoen / path/to/sapcrypto/ -ohjausobjektin tulee sisältää sekä sapcrypto.ini että sapcrypto.dll.
Sekä yhdyskäytäväpalvelun käyttäjä että Active Directory (AD) -käyttäjä, joksi palvelun käyttäjä tekeytyy, tarvitsee kummankin tiedoston luku- ja suoritus-oikeuden. Suosittelemme käyttöoikeuksien myöntämistä sekä .ini- että .dll-tiedostoille Todennetut käyttäjät -ryhmälle. Testausta varten voit myös erikseen myöntää nämä oikeudet sekä yhdyskäytäväpalvelun käyttäjälle että AD-käyttäjälle, joita käytät testissä. Seuraavassa näyttökuvassa olemme myöntäneet Todennetut käyttäjät -ryhmälle sapcrypto.dll luku- ja suoritusoikeudet :
Jos sinulla ei vielä ole kertakirjautumisyhteyden läpikulkuun haluamaasi yhdyskäytävään liitettyä SAP BW -tietolähdettä, lisää sellainen Yhteyksien ja yhdyskäytäviä -sivulla Power BI -palvelussa. Jos tällainen tietolähde on jo, muokkaa sitä:
- Valitse SAP Business Warehouse tietolähteen tyypiksi , jos haluat luoda kertakirjautumisyhteyden BW-sovelluspalvelimeen.
- Valitse Sap Business Warehouse -viestipalvelin , jos haluat luoda kertakirjautumisyhteyden BW-viestipalvelimeen.
SNC-kirjaston kohdalla valitse joko SNC_LIB- tai SNC_LIB_64 -ympäristömuuttuja tai Mukautettu.
Jos valitset SNC_LIB, määritä SNC_LIB_64 ympäristömuuttujan arvo yhdyskäytäväkoneessa yhdyskäytäväkoneen 64-bittisen sapcrypto.dll absoluuttiseen polkuun. Esimerkiksi C:\Users\Test\Desktop\sapcrypto.dll.
Jos valitset Mukautettu, liitä sapcrypto.dll absoluuttinen polku Mukautetun SNC-kirjaston polku -kenttään, joka näkyy Yhdyskäytäviä hallinta -sivulla.
Kirjoita SNC-kumppanin nimi -kohtaan BW-palvelimen SNC-nimi. Varmista Lisäasetukset-kohdassa, että Käytä DirectQuery-kyselyissä kertakirjautumista Kerberoksen kautta -kohta on valittuna. Täytä muut kentät samalla tavalla kuin Windows-todentamisen yhteyttä muodostettaessa PBI Desktopista.
Luo CCL_PROFILE järjestelmän ympäristömuuttuja ja määritä sen arvoksi polku sapcrypto.ini.
Sapcrypto-.dll- ja .ini-tiedostojen on oltava samassa sijainnissa. Yllä olevassa esimerkissä sekä sapcrypto.ini että sapcrypto.dll sijaitsevat työpöydällä.
Käynnistä yhdyskäytäväpalvelu uudelleen.
Vianmääritys
Jos et pysty päivittämään raporttia Power BI -palvelussa, voit käyttää ongelman diagnosoinnissa yhdyskäytävän jäljitystä, CPIC-jäljitystä ja CommonCryptoLib-jäljitystä. Koska CPIC-jäljitys ja CommonCryptoLib ovat SAP-tuotteita, Microsoft ei tarjoa niille tukea.
Yhdyskäytävän lokit
Yritä toistaa ongelma.
Avaa yhdyskäytäväsovellus ja valitse Vie lokitDiagnostiikka-välilehdeltä.
CPIC-jäljitys
Jos haluat ottaa CPIC-jäljityksen käyttöön, määritä kaksi ympäristömuuttujaa: CPIC_TRACE ja CPIC_TRACE_DIR.
Ensimmäinen muuttuja määrittää jäljitystason, ja toinen muuttuja määrittää jäljitystiedoston hakemiston. Hakemiston on oltava sijainti, johon Todennetut käyttäjät -ryhmän jäsenet voivat kirjoittaa.
Määritä CPIC_TRACE arvoksi 3 ja CPIC_TRACE_DIR mihin tahansa hakemistoon, johon haluat kirjoittaa jäljitystiedostot. Esimerkkejä:
Yritä toistaa ongelma ja varmista, että CPIC_TRACE_DIR sisältää jäljitystiedostoja.
CPIC-jäljitys voi diagnosoida ylemmän tason ongelmia, kuten sapcrypto.dll-kirjaston lataamisen epäonnistumisen. Tässä on esimerkiksi katkelma CPIC-jäljitystiedostosta, jossa ilmeni .dll latausvirhe:
[Thr 7228] *** ERROR => DlLoadLib()==DLENOACCESS - LoadLibrary("C:\Users\test\Desktop\sapcrypto.dll") Error 5 = "Access is denied." [dlnt.c 255]
Jos kohtaat tällaisen virheen, mutta olet määrittänyt luku- ja suoritusoikeudet sapcrypto.dll ja sapcrypto.ini yllä olevan osion ohjeiden mukaisesti, kokeile määrittää samat luku- ja suoritusoikeudet tiedostojen sisältävään kansioon.
Jos et edelleenkään pysty lataamaan .dll, kokeile ottaa tiedoston valvonta käyttöön. Valvontalokien tarkastelu Windowsin tapahtumienvalvonnassa voi auttaa selvittämään, miksi tiedoston lataaminen epäonnistuu. Etsi virhekirjaa, jonka on käynnistänyt toiseksi AD-käyttäjäksi tekeytynyt käyttäjä. Esimerkiksi käyttäjäksi
MYDOMAIN\mytestuser
tekeytyneen tilin virhe voi näyttää valvontalokissa seuraavankaltaisilta: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-jäljitys
Ota CommonCryptoLib-jäljitys käyttöön lisäämällä nämä rivit aiemmin luomaasi sapcrypto.ini tiedostoon:
ccl/trace/level=5 ccl/trace/directory=<drive>:\logs\sectrace
Muuta asetuksen
ccl/trace/directory
arvoksi sijainti, johon Todennetut käyttäjät -ryhmän jäsenet voivat kirjoittaa.Vaihtoehtoisesti voit luoda uuden .ini tiedoston toiminnan muuttamiseksi. Luo samassa hakemistossa, jossa sapcrypto.ini ja sapcrypto.dll, tiedosto nimeltä sectrace.ini käyttäen seuraavaa sisältöä. Korvaa -
DIRECTORY
asetus tietokoneessasi olevalla sijainnilla, jonne Todennetut käyttäjät -ryhmän jäsenet voivat kirjoittaa:LEVEL = 5 DIRECTORY = <drive>:\logs\sectrace
Yritä toistaa ongelma ja varmista, että HAKEMISTO-kohtaan määritetty sijainti sisältää jäljitystiedostoja.
Kun olet valmis, poista CPIC- ja CCL-jäljitys käytöstä.
Lisätietoja CommonCryptoLib-jäljitymisestä on kohdassa SAP Note 2491573 (SAP:n s-käyttäjä vaaditaan).
Tekeytyminen
Tässä osiossa kuvataan oireiden vianmääritystä ja tekeytymisongelmien ratkaisuvaiheita.
Oire: Kun katsot GatewayInfo[date].log näet seuraavan kaltaisen merkinnän: Tietoja käyttäjäksi tekeytymisestä DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation). Jos ImpersonationLevel-arvo eroaa Impersonation-arvosta, tekeytyminen ei toimi oikein.
Ratkaisu: Noudata ohjeita artikkelissa Paikallisen käytännön oikeuksien myöntäminen yhdyskäytävän palvelutilille yhdyskäytäväkoneessa . Käynnistä yhdyskäytäväpalvelu uudelleen määrityksen muuttamisen jälkeen.
Vahvistus: Päivitä tai luo raportti ja kerää GatewayInfo[date].log. Avaa uusin yhdyskäytävänfo-lokitiedosto ja tarkista uudelleen merkkijono Tietoja käyttäjäksi DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation) varmistaaksesi, että ImpersonationLevel-arvo vastaa Impersonation-funktiota.
Delegointi
Delegointiongelmat näkyvät yleensä Power BI -palvelussa yleisinä virheinä. Sen määrittämiseksi, onko delegointi ongelma, on hyödyllistä kerätä Wireshark-jäljitykset ja käyttää Kerberosta suodattimena. Lisätietoja Kerberos-virheistä saat tästä blogikirjoituksesta. Tässä osiossa kuvataan delegointiongelmien oireiden ja ratkaisuvaiheiden vianmääritys.
Oire: Power BI -palvelussa saattaa ilmetä odottamaton virhe, joka on samanlainen kuin seuraavassa näyttökuvassa. GatewayInfo[date].log näet [DM.GatewayCoren] havaitsevan poikkeuksen clientPipelineId-kohteen ADO-kyselyn suoritusyrityksen aikana, ja tuonti [0D_NW_CHANN] ei vastaa vientiä.
Näet Mashup[date].log yleisen virheen GSS-API(maj): Tunnistetietoja ei annettu.
Kun tutkit CPIC-jäljitystä (sec-Microsoft.Mashup.trc*), näet jotain seuraavantapaista:
[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
Virhe käy selkeämmäksi yhdyskäytäväkoneen sec-Microsoft.Mashup.Con-[].trc toimituksissa:
[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.
Voit myös nähdä ongelman, jos tarkastelet WireShark-jäljitystiedostoja.
Muistiinpano
Muut KRB5KDC_ERR_PREAUTH_REQUIRED virheet voidaan turvallisesti ohittaa.
Ratkaisu: Sinun on lisättävä SPN SAP/BW5 palvelutiliin. Tarkat tiedot ja osavaiheet ovat käytettävissä SAP-dokumentaatiossa.
Saatat kohdata samanlaisen, mutta ei identtisen virheen, joka ilmenee WireShark-jäljitystiedostossa, koska seuraava virhe KRB5KDC_ERR_BADOPTION:
Tämä virhe ilmaisee, että SPN SAP/BW5 löytyi, mutta se ei ole Palvelut-kohdassa , jolle tämä tili voi esittää delegoidut tunnistetiedot yhdyskäytävän palvelutilin Delegointi-välilehdessä. Voit korjata tämän ongelman määrittämällä yhdyskäytävän palvelutilin vakiomuotoiselle rajoitetulle kerberos-delegoinnille.
Vahvistus: kunnollinen määritys estää yleisten tai odottamattomien virheiden esittämisen yhdyskäytävässä. Jos näet edelleen virheitä, tarkista yhdyskäytävän määritys tai BW-palvelimen määritys.
Tunnistetietovirheet
Tässä osiossa kuvataan tunnistetietojen virheongelmien oireiden ja ratkaisuvaiheiden vianmääritys. Saatat saada myös yleisiä virheitä Power BI -palvelusta, kuten on kuvattu aiemmassa delegointia koskevassa osiossa.
Tarkkuudet vaihtelevat tietolähteessä (SAP BW) näkemiesi oireiden perusteella, joten tarkastelemme molempia.
Oire 1: Sectraces sec-disp+work[].trc-tiedosto BW-palvelimesta sisältää seuraavankaltaisia jäljitystiedostoja:
[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
Ratkaisu: Suorita määritysvaiheet määrittääksesi käyttäjän yhdistämisen määritysparametrit yhdyskäytäväkoneessa tarvittaessa. Sinun on suoritettava nämä vaiheet, vaikka sinulla olisi jo Microsoft Entra Connect määritettynä.
Vahvistus: Voit ladata raportin Onnistuneesti Power BI -palvelussa. Jos et pysty lataamaan raporttia, katso ohjeet kohdasta Oire 2.
Oire 2: Sectraces sec-disp+work[].trc-tiedostossa BW-palvelimesta näet seuraavankaltaisia jäljitystiedostoja:
[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
Ratkaisu: Tarkista, vastaako käyttäjän Kerberoksen ulkoinen tunnus mitä sectraces näyttää.
- Avaa SAP-kirjautuminen.
- Käytä SU01-tapahtumaa.
- Muokkaa käyttäjää.
- Siirry SNC-välilehteen ja varmista, että SNC-nimi vastaa lokeissa näkyvää nimeä.
Vahvistus: Kun tämä on valmis, voit luoda ja päivittää raportteja Power BI -palvelussa.
Liittyvä sisältö
Lisätietoja paikallisesta tietoyhdyskäytävästä ja DirectQuerysta on seuraavissa resursseissa: