Share via


Usare Security Assertion Markup Language per l'accesso SSO da Power BI a origini dati locali

Abilitando l'accesso Single Sign-On (SSO), è possibile semplificare l'aggiornamento dei dati dai report e dai dashboard di Power BI da origini locali, rispettando le autorizzazioni a livello di utente configurate in tali origini. Per abilitare la connettività SSO facile, usare Security Assertion Markup Language (SAML).

Nota

È possibile connettersi a una sola origine dati usando Single Sign-On SAML con un gateway dati locale. Per connettersi a un'origine dati aggiuntiva tramite SINGLE Sign-On SAML, è necessario usare un gateway dati locale diverso.

Origini dati supportate per SAML

Microsoft attualmente supporta SAP HANA con SAML. Per altre informazioni sulla configurazione e la configurazione dell'accesso Single Sign-On per SAP HANA tramite SAML, vedere SAML SSO for BI Platform to HANA( SAML SSO for BI Platform to HANA).

Sono supportate origini dati aggiuntive con Kerberos (incluso SAP HANA).

Per SAP HANA, è consigliabile abilitare la crittografia prima di stabilire una connessione SSO SAML. Per abilitare la crittografia, configurare il server HANA per accettare connessioni crittografate e quindi configurare il gateway in modo da usare la crittografia per comunicare con il server HANA. Poiché il driver ODBC HANA non crittografa le asserzioni SAML per impostazione predefinita, l'asserzione SAML firmata viene inviata dal gateway al server HANA in chiaro ed è vulnerabile all'intercettazione e al riutilizzo da parte di terze parti.

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.

Configurare il gateway e l'origine dati

Per usare SAML, è necessario stabilire una relazione di trust tra i server HANA per cui si vuole abilitare l'accesso SSO e il gateway. In questo scenario, il gateway funge da provider di identità SAML (IdP). È possibile stabilire questa relazione in vari modi. SAP consiglia di usare CommonCryptoLib per completare i passaggi di installazione. Per altre informazioni, vedere la documentazione ufficiale di SAP.

Creare i certificati

È possibile stabilire una relazione di trust tra un server HANA e il provider di identità del gateway firmando il certificato X509 del gateway IdP con un'autorità di certificazione radice (CA) considerata attendibile dal server HANA.

Per creare i certificati, eseguire le operazioni seguenti:

  1. Nel dispositivo che esegue SAP HANA creare una cartella vuota per archiviare i certificati e quindi passare a tale cartella.

  2. Creare i certificati radice eseguendo il comando seguente:

    openssl req -new -x509 -newkey rsa:2048 -days 3650 -sha256 -keyout CA_Key.pem -out CA_Cert.pem -extensions v3_ca'''
    

    Assicurarsi di copiare e salvare la passphrase per usare questo certificato per firmare altri certificati. Verranno visualizzati i file CA_Cert.pem e CA_Key.pem creati.

  3. Creare i certificati IdP eseguendo il comando seguente:

    openssl req -newkey rsa:2048 -days 365 -sha256 -keyout IdP_Key.pem -out IdP_Req.pem -nodes
    

    Verranno visualizzati i file IdP_Key.pem e IdP_Req.pem creati.

  4. Firmare i certificati IdP con i certificati radice:

    openssl x509 -req -days 365 -in IdP_Req.pem -sha256 -extensions usr_cert -CA CA_Cert.pem -CAkey CA_Key.pem -CAcreateserial -out IdP_Cert.pem
    

    Verranno visualizzati i file CA_Cert.srl e IdP_Cert.pem creati. In questo momento, si è interessati solo al file IdP_Cert.pem .

Creare il mapping per il certificato del provider di identità SAML

Per creare il mapping per il certificato del provider di identità SAML, eseguire le operazioni seguenti:

  1. In SAP HANA Studio fare clic con il pulsante destro del mouse sul nome del server SAP HANA e quindi scegliere Security Open Security>Console SAML Identity Provider (Provider di identità SAML Della console>di sicurezza).

  2. Selezionare l'opzione Libreria di crittografia SAP. Non usare l'opzione OpenSSL Cryptographic Library, deprecata da SAP.

    Screenshot of the

  3. Per importare il certificato firmato IdP_Cert.pem, selezionare il pulsante importazione blu, come illustrato nell'immagine seguente:

    Screenshot of the

  4. Ricordarsi di assegnare un nome per il provider di identità.

Importare e creare i certificati firmati in HANA

Per importare e creare i certificati firmati in HANA, eseguire le operazioni seguenti:

  1. In SAP HANA Studio eseguire la query seguente:

    CREATE CERTIFICATE FROM '<idp_cert_pem_certificate_content>'
    

    Ecco un esempio:

    CREATE CERTIFICATE FROM
    '-----BEGIN CERTIFICATE-----
    MIIDyDCCArCgA...veryLongString...0WkC5deeawTyMje6
    -----END CERTIFICATE-----
    '
    
  2. Se non esiste un ambiente di sicurezza personale (P edizione Standard) con scopo SAML, crearne uno eseguendo la query seguente in SAP HANA Studio:

    CREATE PSE SAMLCOLLECTION;
    set pse SAMLCOLLECTION purpose SAML;
    
  3. Aggiungere il certificato firmato appena creato al P edizione Standard eseguendo il comando seguente:

    alter pse SAMLCOLLECTION add CERTIFICATE <certificate_id>;
    

    Ad esempio:

    alter pse SAMLCOLLECTION add CERTIFICATE 1978320;
    

    È possibile controllare l'elenco dei certificati creati eseguendo la query seguente:

    select * from PUBLIC"."CERTIFICATES"
    

    Il certificato è ora installato correttamente. Per confermare l'installazione, è possibile eseguire la query seguente:

    select * from "PUBLIC"."PSE_CERTIFICATES"
    

Eseguire il mapping dell'utente

Per eseguire il mapping dell'utente, eseguire le operazioni seguenti:

  1. In SAP HANA Studio selezionare la cartella Sicurezza .

    Screenshot of the Security folder structure on the left pane.

  2. Espandere Utenti e quindi selezionare l'utente a cui si vuole eseguire il mapping dell'utente di Power BI.

  3. Selezionare la casella di controllo SAML e quindi selezionare Configura, come illustrato nell'immagine seguente:

    Screenshot of the

  4. Selezionare il provider di identità creato nella sezione Crea mapping per il certificato del provider di identità SAML. Per Identità esterna immettere l'UPN dell'utente di Power BI (in genere, l'indirizzo di posta elettronica usato dall'utente per accedere a Power BI) e quindi selezionare Aggiungi.

    Screenshot of the

    Se il gateway è stato configurato per l'uso dell'opzione di configurazione ADUserNameReplacementProperty , immettere il valore che sostituirà l'UPN originale dell'utente di Power BI. Ad esempio, se si imposta ADUserNameReplacementProperty su SAMAccountName, immettere samAccountName dell'utente.

Configurare il gateway

Dopo aver configurato il certificato e l'identità del gateway, convertire il certificato in un formato di file PFX e quindi configurare il gateway per l'uso del certificato eseguendo le operazioni seguenti:

  1. Convertire il certificato in formato PFX eseguendo il comando seguente. Questo comando assegna un nome al file samlcert.pfx risultante e imposta la radice come password, come illustrato di seguito:

    openssl pkcs12 -export -out samltest.pfx -in IdP_Cert.pem -inkey IdP_Key.pem -passin pass:root -passout pass:root
    
  2. Copiare il file PFX nel computer gateway:

    a. Fare doppio clic su samltest.pfx e quindi selezionare Computer>locale Avanti.

    b. Immettere la password e quindi selezionare Avanti.

    c. Selezionare Inserisci tutti i certificati nell'archivio seguente e quindi selezionare Sfoglia>OK personale.>

    Screenshot of the

    d. Selezionare Avanti e quindi Fine.

  3. Per concedere all'account del servizio gateway l'accesso alla chiave privata del certificato, eseguire le operazioni seguenti:

    a. Nel computer gateway eseguire Microsoft Management Console (MMC).

    Screenshot of the gateway machine

    b. In MMC selezionare Aggiungi/Rimuovi snap-in file>.

    Screenshot of the

    c. Selezionare Certificati>Aggiungi e quindi account >computer Avanti.

    d. Selezionare Local Computer Finish OK (Fine>computer>locale).

    e. Espandere Certificati>personali>, quindi cercare il certificato.

    f. Fare clic con il pulsante destro del mouse sul certificato e quindi scegliere Tutte le attività>Gestisci chiavi private.

    Screenshot of the

    g. Aggiungere l'account del servizio gateway all'elenco. Per impostazione predefinita, l'account è NT edizione Standard RVICE\PBIEgwService. È possibile individuare l'account che esegue il servizio gateway eseguendo services.msc e quindi cercando il servizio gateway dati locale.

    Screenshot of the

Aggiungere infine l'identificazione personale del certificato alla configurazione del gateway:

  1. Per elencare i certificati nel computer, eseguire il comando di PowerShell seguente:

    Get-ChildItem -path cert:\LocalMachine\My
    
  2. Copiare l'identificazione personale per il certificato creato.

  3. Passare alla directory del gateway, che è C:\Programmi\Gateway dati locale per impostazione predefinita.

  4. Aprire PowerBI.DataMovement.Pipeline.GatewayCore.dll.config e quindi cercare la sezione SapHanaSAMLCertThumbprint . Incollare l'identificazione personale copiata nel passaggio 2.

  5. Riavviare il servizio gateway.

Eseguire un report di Power BI

È ora possibile usare la pagina Gestisci gateway in Power BI per configurare l'origine dati SAP HANA. In Advanced Impostazioni abilitare l'accesso SSO tramite SAML. In questo modo, è possibile pubblicare report e set di dati binding a tale origine dati.

 Screenshot of advanced settings with single sign-on for SAML.

Nota

SSO usa l'autenticazione di Windows per assicurarsi che l'account di Windows possa accedere al computer gateway. In caso contrario, assicurarsi di aggiungere NT-AUTHORITY\Authenticated Users (S-1-5-11) al gruppo "Users" del computer locale.

Risolvere i problemi relativi all'uso di SAML per l'accesso Single Sign-On a SAP HANA

Questa sezione illustra i passaggi completi per la risoluzione dei problemi relativi all'uso di SAML per l'accesso Single Sign-On a SAP HANA. L'uso di questi passaggi consente di diagnosticare automaticamente e correggere eventuali problemi che potrebbero verificarsi.

Credenziali rifiutate

Dopo aver configurato l'accesso SSO basato su SAML, è possibile che venga visualizzato l'errore seguente nel portale di Power BI: "Le credenziali specificate non possono essere usate per l'origine SapHana". Questo errore indica che le credenziali SAML sono state rifiutate da SAP HANA.

Le tracce di autenticazione lato server forniscono informazioni dettagliate per la risoluzione dei problemi relativi alle credenziali in SAP HANA. Per configurare la traccia per il server SAP HANA, seguire questa procedura:

  1. Nel server SAP HANA attivare la traccia di autenticazione eseguendo la query seguente:

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') set ('trace', 'authentication') = 'debug' with reconfigure 
    
  2. Riprodurre il problema.

  3. In SAP HANA Studio aprire la console di amministrazione e quindi selezionare la scheda Diagnostica file .

  4. Aprire la traccia del server di indicizzazione più recente e quindi cercare SAMLAuthenticator.cpp.

    Dovrebbe essere visualizzato un messaggio di errore dettagliato che indica la causa radice, come illustrato nell'esempio seguente:

    [3957]{-1}[-1/-1] 2018-09-11 21:40:23.815797 d Authentication   SAMLAuthenticator.cpp(00091) : Element '{urn:oasis:names:tc:SAML:2.0:assertion}Assertion', attribute 'ID': '123123123123123' is not a valid value of the atomic type 'xs:ID'.
    [3957]{-1}[-1/-1] 2018-09-11 21:40:23.815914 i Authentication   SAMLAuthenticator.cpp(00403) : No valid SAML Assertion or SAML Protocol detected
    
  5. Al termine della risoluzione dei problemi, disattivare la traccia di autenticazione eseguendo la query seguente:

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') UNSET ('trace', 'authentication');
    

Verificare e risolvere gli errori del gateway

Per seguire le procedure descritte in questa sezione, è necessario raccogliere i log del gateway.

Errore SSL (certificato)

Sintomi di errore

Questo problema presenta più sintomi. Quando si tenta di aggiungere una nuova origine dati, è possibile che venga visualizzato un messaggio di 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, potrebbe essere visualizzato un messaggio di errore simile a quello nell'immagine seguente:

Screenshot of a 'Cannot load model' troubleshooting SSL error window.

Quando si esamina mashup[date]*.log, verrà 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 SSL, passare alla connessione all'origine dati e quindi, nell'elenco a discesa Convalida certificato server selezionare No, come illustrato nell'immagine seguente:

Screenshot showing the S S L error being resolved on the 'Data Source Settings' pane.

Dopo aver selezionato questa impostazione, il messaggio di errore non verrà più visualizzato.

Errore SignXML del gateway

L'errore SignXML del gateway può essere il risultato di impostazioni di SapHanaSAMLCertThumbprint non corrette oppure può trattarsi di un problema con il server HANA. Le voci nei log del gateway consentono di identificare dove si trova il problema e come risolverlo.

Sintomi di errore

Voci di log per SignXML: Found the cert...: se il file GatewayInfo[date].log contiene questo errore, è stato trovato il certificato SignXML e le attività di risoluzione dei problemi devono concentrarsi sui passaggi trovati nella sezione "Verificare e risolvere i problemi sul lato server HANA".

Voci di log per Couldn't find saml cert: se il file GatewayInfo[date].log contiene questo errore, SapHanaSAMLCertThumbprint viene impostato in modo non corretto. Nella sezione di risoluzione seguente viene descritto come risolvere il problema.

Risoluzione

Per impostare correttamente SapHanaSAMLCertThumbprint, seguire le istruzioni nella sezione "Configurare il gateway". Le istruzioni iniziano con Finally, aggiungere l'identificazione personale del certificato alla configurazione del gateway.

Dopo aver modificato il file di configurazione, è necessario riavviare il servizio gateway per rendere effettiva la modifica.

Convalida

Quando SapHanaSAMLCertThumbprint è impostato correttamente, i log del gateway avranno voci che includono SignXML: Found the cert.... A questo punto, si dovrebbe essere in grado di passare alla sezione "Verificare e risolvere i problemi sul lato server HANA".

Se il gateway non è in grado di usare il certificato per firmare l'asserzione SAML, è possibile che venga visualizzato un errore nei log simili ai seguenti:

GatewayPipelineErrorCode=DM_GWPipeline_UnknownError GatewayVersion= InnerType=CryptographicException InnerMessage=<pi>Signing key is not loaded.</pi> InnerToString=<pi>System.Security.Cryptography.CryptographicException: Signing key is not loaded.

Per risolvere questo errore, seguire le istruzioni che iniziano con il passaggio 3 nella sezione "Configurare il gateway".

Dopo aver modificato la configurazione, riavviare il servizio gateway per rendere effettiva la modifica.

Verificare e risolvere i problemi relativi al lato server HANA

Usare le soluzioni in questa sezione se il gateway può trovare il certificato e firmare l'asserzione SAML, ma si verificano ancora errori. Sarà necessario raccogliere le tracce di autenticazione HANA, come descritto in precedenza nella sezione "Credenziali rifiutate".

Provider di identità SAML

La presenza della stringa nelle tracce di Found SAML provider autenticazione HANA indica che il provider di identità SAML è configurato correttamente. Se la stringa non è presente, la configurazione non è corretta.

Risoluzione

Prima di tutto, determinare se l'organizzazione usa OpenSSL o commoncrypto come sslcryptoprovider. Per determinare quale provider viene usato, eseguire le operazioni seguenti:

  1. Aprire SAP HANA Studio.

  2. Aprire la console di Amministrazione istration per il tenant in uso.

  3. Selezionare la scheda Configurazione e usare sslcryptoprovider come filtro, come illustrato nell'immagine seguente:

    Screenshot of the sslcryptoprovider information in SAP HANA Studio.

Verificare quindi che la libreria di crittografia sia impostata correttamente eseguendo le operazioni seguenti:

  1. Passare a Console di sicurezza in SAP HANA Studio selezionando la scheda SamL Identity Providers (Provider di identità SAML) ed eseguire una delle operazioni seguenti:

    • Se sslcryptoprovider è OpenSSL, selezionare OpenSSL Cryptographic Library(Libreria di crittografia OpenSSL).
    • Se sslcryptoprovider è commonCrypto, selezionare Libreria di crittografia SAP.

    Nell'immagine seguente è selezionata la libreria di crittografia SAP:

    Screenshot of SAP HANA Studio with 'SAP Cryptographic Library' selected as the sslcryptoprovider.

  2. Distribuire le modifiche selezionando il pulsante Distribuisci in alto a destra, come illustrato nell'immagine seguente:

    Screenshot of the 'Deploy' button for deploying your solution changes.

Convalida

Quando le tracce sono configurate correttamente, verranno report Found SAML provider e non segnalano SAML Provider not found. È possibile passare alla sezione successiva " Risolvere i problemi relativi alla firma dell'asserzione SAML".

Se il provider di crittografia è impostato ma SAML Provider not found viene comunque segnalato, cercare una stringa nella traccia che inizia con il testo seguente:

Search SAML provider for certificate with subject =

In tale stringa verificare che l'oggetto e l'autorità emittente siano esattamente gli stessi visualizzati nella scheda Provider di identità SAML nella Console di sicurezza. Una differenza di un singolo carattere può causare il problema. Se si rileva una differenza, è possibile risolvere il problema nella libreria di crittografia SAP in modo che le voci corrispondano esattamente.

Se la modifica della libreria di crittografia SAP non risolve il problema, è possibile modificare manualmente i campi Rilasciato a ed Rilasciato da semplicemente facendo doppio clic su di essi.

Risolvere i problemi relativi alla firma dell'asserzione SAML

È possibile trovare tracce di autenticazione HANA che contengono voci simili alle seguenti:

[48163]{-1}[-1/-1] 2020-09-11 21:15:18.896165 i Authentication SAMLAuthenticator.cpp(00398) : Unable to verify XML signature [48163]{-1}[-1/-1] 2020-09-11 21:15:18.896168 i Authentication MethodSAML.cpp(00103) : unsuccessful login attempt with SAML ticket!

La presenza di tali voci indica che la firma non è attendibile.

Risoluzione

Se si usa OpenSSL come sslcryptoprovider, verificare se i file trust.pem e key.pem si trovano nella directory SSL. Per altre informazioni, vedere il blog di SAP Protezione della comunicazione tra SAP HANA Studio e SAP HANA Server tramite SSL.

Se si usa commoncrypto come sslcryptoprovider, verificare se è presente una raccolta con il certificato nel tenant.

Convalida

Quando le tracce sono configurate correttamente, segnalano Found valid XML signature.

Risolvere i problemi relativi al mapping UPN

È possibile trovare tracce HANA contenenti voci simili alle seguenti:

SAMLAuthenticator.cpp(00886) : Assertion Subject NameID: `johnny@contoso.com` SAMLAuthenticator.cpp(00398) : Database user does not exist

L'errore indica che nameId johnny@contoso.com viene trovato nelle asserzioni SAML, ma non esiste o non è mappato correttamente nel server HANA.

Risoluzione

Passare all'utente del database HANA e, sotto la casella di controllo SAML selezionata, selezionare il collegamento Configura . Viene visualizzata la finestra seguente:

Screenshot showing that the incorrect user name is displayed.

Come descritto nel messaggio di errore, HANA stava tentando di trovare johnny@contoso.com, ma l'identità esterna viene visualizzata solo come johnny. Questi due valori devono corrispondere. Per risolvere il problema, in Identità esterna modificare il valore in johnny@contoso.com. Si noti che questo valore fa distinzione tra maiuscole e minuscole.

Per altre informazioni sul gateway dati locale e DirectQuery, vedere le risorse seguenti: