Usare Kerberos per l'accesso SSO a SAP HANA
Questo articolo descrive come configurare l'origine dati SAP HANA per abilitare Single Sign-On (SSO) dal servizio Power BI.
Importante
Poiché SAP non supporta più OpenSSL, Microsoft ha interrotto anche il supporto. Le connessioni esistenti continuano a funzionare, ma non è più possibile creare nuove connessioni. Usare invece SAP Cryptographic Library (CommonCryptoLib) o sapcrypto.
Nota
Prima di provare ad aggiornare un report basato su SAP HANA che usa l'accesso Single Sign-On Kerberos, completare i passaggi descritti sia in questo articolo sia in Configurare l'accesso SSO basato su Kerberos.
Abilitare SSO per SAP HANA
Per abilitare l'accesso SSO per SAP HANA, seguire questa procedura:
Verificare che nel server SAP HANA sia in esecuzione la versione minima richiesta. Ciò dipende dal livello della piattaforma del server SAP HANA:
Nel computer gateway installare il driver ODBC SAP HANA più recente. La versione minima è la versione ODBC per HANA 2.00.020.00 di agosto 2017.
Verificare che il server SAP HANA sia stato configurato per il Single Sign-On basato su Kerberos. Per altre informazioni sulla configurazione della funzionalità SSO per SAP HANA con Kerberos, vedere Single Sign-on tramite Kerberos. Vedere anche i collegamenti in tale pagina, in particolare SAP Note 1837331 - HOWTO HANA DBSSO Kerberos/Active Directory.
È consigliabile eseguire anche questi passaggi extra che possono contribuire a migliorare le prestazioni:
Nella directory di installazione del gateway cercare e aprire il file di configurazione: Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.
Cercare la proprietà
FullDomainResolutionEnabled
e impostarne il valore suTrue
.<setting name=" FullDomainResolutionEnabled " serializeAs="String"> <value>True</value> </setting>
Risoluzione dei problemi
Questa sezione fornisce istruzioni per la risoluzione dei problemi relativi all'uso di Kerberos per l'accesso Single Sign-On (SSO) a SAP HANA nel servizio Power BI. Usando questi passaggi per la risoluzione dei problemi, è possibile diagnosticare automaticamente e correggere molti problemi che potrebbero verificarsi.
Per seguire i passaggi descritti in questa sezione, è necessario raccogliere i log del gateway.
Errore TLS/SSL (certificato)
Questo problema presenta più sintomi.
Quando si tenta di aggiungere una nuova origine dati, è possibile che venga visualizzato un errore simile al seguente:
Unable to connect: We encountered an error while trying to connect to. Details: "We could not register this data source for any gateway instances within this cluster. Please find more details below about specific errors for each gateway instance."
Quando si tenta di creare o aggiornare un report, è possibile che venga visualizzato il messaggio di errore seguente:
Quando si esamina Mashup[date]*.log, viene visualizzato il messaggio di errore seguente:
A connection was successfully established with the server, but then an error occurred during the login process and the certificate chain was issued by an authority that is not trusted.
Risoluzione
Per risolvere questo errore TLS/SSL, passare alla connessione all'origine dati e quindi, nella sezione Convalida certificato server disabilitare l'impostazione, come illustrato nell'immagine seguente:
Dopo aver disabilitato questa impostazione, il messaggio di errore non viene più visualizzato.
Rappresentazione
Le voci di log per la rappresentazione contengono voci simili a:
About to impersonate user DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation).
L'elemento importante in questa voce di log è costituito dalle informazioni visualizzate dopo la voce ImpersonationLevel:
. Qualsiasi valore diverso da Impersonation
rivela che la rappresentazione non si verifica correttamente.
Risoluzione
È possibile configurare ImpersonationLevel
correttamente seguendo le istruzioni riportate in Concedere i diritti dei criteri locali dell'account del servizio gateway nel gateway.
Dopo aver modificato il file di configurazione, riavviare il servizio gateway per rendere effettiva la modifica.
Convalida
Aggiornare o creare il report e quindi raccogliere i log del gateway. Aprire il file GatewayInfo più recente e controllare la stringa seguente: About to impersonate user DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation)
. Assicurarsi che l'impostazione ImpersonationLevel
restituisca Impersonation
.
Delega
I problemi di delega vengono in genere visualizzati nel servizio Power BI come errori generici. Per assicurarsi che il problema non sia un problema di delega, raccogliere le tracce wireshark e usare Kerberos come filtro. Per altre informazioni su Wireshark e per informazioni sugli errori Kerberos, vedere Errori Kerberos nelle acquisizioni di rete.
I sintomi e i passaggi di risoluzione dei problemi seguenti possono aiutare a risolvere alcuni problemi comuni.
Problemi relativi al nome SPN
Se viene visualizzato l'errore seguente: The import [table] matches no exports. Did you miss a module reference?:
durante l'analisi del Mashup[date]*.log, si verificano problemi relativi al nome dell'entità servizio (SPN).
Quando si esaminano ulteriormente le tracce di Wireshark, si rivela l'errore KRB4KDC_ERR_S_PRINCIPAL_UNKOWN
, il che significa che il nome SPN non è stato trovato o non esiste. La figura seguente mostra un esempio:
Risoluzione
Per risolvere i problemi relativi al nome SPN, ad esempio questo problema, è necessario aggiungere un nome SPN a un account del servizio. Per altre informazioni, vedere la documentazione di SAP in Configurare Kerberos per gli host di database SAP HANA.
Seguire inoltre le istruzioni di risoluzione descritte nella sezione successiva.
Nessun problema di credenziali
Potrebbero non esserci sintomi chiari associati a questo problema. Quando si esamina Mashup[date]*.log, viene visualizzato l'errore seguente:
29T20:21:34.6679184Z","Action":"RemoteDocumentEvaluator/RemoteEvaluation/HandleException","HostProcessId":"1396","identity":"DirectQueryPool","Exception":"Exception:\r\nExceptionType: Microsoft.Mashup.Engine1.Runtime.ValueException, Microsoft.MashupEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\r\nMessage:
Quando si esamina ulteriormente lo stesso file, viene visualizzato l'errore seguente (non utile):
No credentials are available in the security package
L'acquisizione di tracce Wireshark rivela l'errore seguente: KRB5KDC_ERR_BADOPTION
.
In genere, questi errori indicano che è possibile trovare il file SPN hdb/hana2-s4-sso2.westus2.cloudapp.azure.com, ma non è presente nell'elenco Servizi a cui questo account può presentare credenziali delegate nel riquadro Delega nell'account del servizio gateway.
Risoluzione
Per risolvere il problema Nessuna credenziale, seguire la procedura descritta in Configurare la delega vincolata Kerberos. Una volta completata correttamente, la scheda delega nell'account del servizio gateway riflette il file HansaWorld Database (HDB) e il nome di dominio completo (FQDN) nell'elenco dei Servizi a cui questo account può presentare credenziali delegate.
Convalida
Seguire i passaggi precedenti per risolvere il problema. Se si verificano ancora problemi di Kerberos, è possibile che si verifichino errori di configurazione nel gateway Power BI o nel server HANA stesso.
Errori delle credenziali
Se si verificano errori di credenziali, gli errori nei log o nelle tracce espongono errori che descrivono Credentials are invalid
o errori simili. Questi errori possono manifestarsi in modo diverso sul lato origine dati della connessione, ad esempio SAP HANA. L'immagine seguente mostra un errore di esempio:
Sintomo 1
Nelle tracce di autenticazione HANA è possibile che vengano visualizzate voci simili al messaggio seguente:
[Authentication|manager.cpp:166] Kerberos: Using Service Principal
Name johnny@contoso.com@CONTOSO.COM with name type: GSS_KRB5_NT_PRINCIPAL_NAME
[Authentication|methodgssinitiator.cpp:367] Got principal name:
johnny@contoso.com@CONTOSO.COM
Risoluzione
Seguire le istruzioni descritte in Impostare i parametri di configurazione del mapping utente nel computer gateway, anche se è già stato configurato il servizio Microsoft Entra Connect.
Convalida
Dopo aver completato la convalida, è possibile caricare correttamente il report nel servizio Power BI.
Sintomo 2
Nelle tracce di autenticazione HANA è possibile che vengano visualizzate voci simili alla voce seguente:
Authentication ManagerAcceptor.cpp(00233) : Extending list of expected
external names by johnny@CONTOSO.COM (method: GSS) Authentication
AuthenticationInfo.cpp(00168) : ENTER getAuthenticationInfo
(externalName=johnny@CONTOSO.COM) Authentication AuthenticationInfo.cpp(00237) :
Found no user with expected external name!
Risoluzione
Controllare l'ID esterno Kerberos in Utente HANA per determinare se gli ID corrispondono correttamente.
Convalida
Dopo aver risolto il problema, è possibile creare o aggiornare i report nel servizio Power BI.
Contenuto correlato
Per altre informazioni sul gateway dati locale e su DirectQuery, vedere le risorse seguenti:
- Informazioni sul gateway dati locale
- DirectQuery in Power BI
- Data sources supported by DirectQuery (Origini dati supportate da DirectQuery)
- DirectQuery e SAP Business Warehouse (BW)
- DirectQuery e SAP HANA