Share via


Security Assertion Markup Language gebruiken voor eenmalige aanmelding van Power BI naar on-premises gegevensbronnen

Door eenmalige aanmelding (SSO) in te schakelen, kunt u power BI-rapporten en -dashboards eenvoudig gegevens vernieuwen vanuit on-premises bronnen terwijl u machtigingen op gebruikersniveau respecteert die zijn geconfigureerd voor deze bronnen. Als u naadloze SSO-connectiviteit wilt inschakelen, gebruikt u Security Assertion Markup Language (SAML).

Notitie

U kunt verbinding maken met slechts één gegevensbron met behulp van EENMALIGE aanmelding met SAML met een on-premises gegevensgateway. Als u verbinding wilt maken met een extra gegevensbron met behulp van SAML voor eenmalige aanmelding, moet u een andere on-premises gegevensgateway gebruiken.

Ondersteunde gegevensbronnen voor SAML

Microsoft ondersteunt momenteel SAP HANA met SAML. Zie SAML SSO voor BI Platform voor HANA voor meer informatie over het instellen en configureren van eenmalige aanmelding voor SAP HANA met behulp van SAML.

We ondersteunen aanvullende gegevensbronnen met Kerberos (inclusief SAP HANA).

Voor SAP HANA raden we u aan versleuteling in te schakelen voordat u een SAML SSO-verbinding tot stand brengt. Als u versleuteling wilt inschakelen, configureert u de HANA-server om versleutelde verbindingen te accepteren en configureert u vervolgens de gateway voor het gebruik van versleuteling om te communiceren met uw HANA-server. Omdat het HANA ODBC-stuurprogramma standaard geen SAML-asserties versleutelt, wordt de ondertekende SAML-assertie verzonden van de gateway naar de HANA-server en is deze kwetsbaar voor onderschepping en hergebruik door derden.

Belangrijk

Omdat SAP OpenSSL niet meer ondersteunt, heeft Microsoft ook de ondersteuning stopgezet. Uw bestaande verbindingen blijven werken, maar u kunt geen nieuwe verbindingen meer maken. Gebruik in plaats daarvan SAP Cryptographic Library (CommonCryptoLib) of sapcrypto.

De gateway en gegevensbron configureren

Als u SAML wilt gebruiken, moet u een vertrouwensrelatie tot stand brengen tussen de HANA-servers waarvoor u eenmalige aanmelding en de gateway wilt inschakelen. In dit scenario fungeert de gateway als de SAML-id-provider (IdP). U kunt deze relatie op verschillende manieren tot stand brengen. SAP raadt u aan CommonCryptoLib te gebruiken om de installatiestappen te voltooien. Zie de officiële SAP-documentatie voor meer informatie.

De certificaten maken

U kunt een vertrouwensrelatie tot stand brengen tussen een HANA-server en de gateway-idP door het X509-certificaat van de gateway te ondertekenen met een basiscertificeringsinstantie (CA) die wordt vertrouwd door de HANA-server.

Ga als volgt te werk om de certificaten te maken:

  1. Maak op het apparaat waarop SAP HANA wordt uitgevoerd een lege map om uw certificaten op te slaan en ga vervolgens naar die map.

  2. Maak de basiscertificaten door de volgende opdracht uit te voeren:

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

    Zorg ervoor dat u de wachtwoordzin kopieert en opslaat om dit certificaat te gebruiken om andere certificaten te ondertekenen. U ziet dat de bestanden CA_Cert.pem en CA_Key.pem worden gemaakt.

  3. Maak de IdP-certificaten door de volgende opdracht uit te voeren:

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

    U ziet dat de bestanden IdP_Key.pem en IdP_Req.pem worden gemaakt.

  4. Onderteken de IdP-certificaten met de basiscertificaten:

    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
    

    U ziet dat de bestanden CA_Cert.srl en IdP_Cert.pem worden gemaakt. Op dit moment hebt u alleen betrekking op het bestand IdP_Cert.pem .

Toewijzing maken voor het SAML-id-providercertificaat

Ga als volgt te werk om toewijzing te maken voor het SAML Identity Provider-certificaat:

  1. Klik in SAP HANA Studio met de rechtermuisknop op de naam van uw SAP HANA-server en selecteer vervolgens Security>Open Security Console>SAML Identity Provider.

  2. Selecteer de optie SAP Cryptographic Library . Gebruik de optie Cryptografische bibliotheek van OpenSSL niet , die is afgeschaft door SAP.

    Screenshot of the

  3. Als u het ondertekende certificaat IdP_Cert.pem wilt importeren, selecteert u de blauwe knop Importeren , zoals wordt weergegeven in de volgende afbeelding:

    Screenshot of the

  4. Vergeet niet om een naam toe te wijzen voor uw id-provider.

De ondertekende certificaten importeren en maken in HANA

Ga als volgt te werk om de ondertekende certificaten in HANA te importeren en te maken:

  1. Voer in SAP HANA Studio de volgende query uit:

    CREATE CERTIFICATE FROM '<idp_cert_pem_certificate_content>'
    

    Hier volgt een voorbeeld:

    CREATE CERTIFICATE FROM
    '-----BEGIN CERTIFICATE-----
    MIIDyDCCArCgA...veryLongString...0WkC5deeawTyMje6
    -----END CERTIFICATE-----
    '
    
  2. Als er geen persoonlijke beveiligingsomgeving (PSE) met doel SAML is, maakt u er een door de volgende query uit te voeren in SAP HANA Studio:

    CREATE PSE SAMLCOLLECTION;
    set pse SAMLCOLLECTION purpose SAML;
    
  3. Voeg het zojuist gemaakte ondertekende certificaat toe aan de PSE door de volgende opdracht uit te voeren:

    alter pse SAMLCOLLECTION add CERTIFICATE <certificate_id>;
    

    Voorbeeld:

    alter pse SAMLCOLLECTION add CERTIFICATE 1978320;
    

    U kunt de lijst met gemaakte certificaten controleren door de volgende query uit te voeren:

    select * from PUBLIC"."CERTIFICATES"
    

    Het certificaat is nu correct geïnstalleerd. U kunt de volgende query uitvoeren om de installatie te bevestigen:

    select * from "PUBLIC"."PSE_CERTIFICATES"
    

De gebruiker toewijzen

Ga als volgt te werk om de gebruiker toe te wijzen:

  1. Selecteer in SAP HANA Studio de map Beveiliging .

    Screenshot of the Security folder structure on the left pane.

  2. Vouw Gebruikers uit en selecteer vervolgens de gebruiker waaraan u uw Power BI-gebruiker wilt toewijzen.

  3. Schakel het SELECTIEVAKJE SAML in en selecteer vervolgens Configureren, zoals wordt weergegeven in de volgende afbeelding:

    Screenshot of the

  4. Selecteer de id-provider die u hebt gemaakt in de sectie Create mapping for the SAML identity provider certificate section. Voer voor externe identiteit de UPN van de Power BI-gebruiker in (gewoonlijk het e-mailadres dat de gebruiker gebruikt om zich aan te melden bij Power BI) en selecteer vervolgens Toevoegen.

    Screenshot of the

    Als u uw gateway hebt geconfigureerd voor het gebruik van de configuratieoptie ADUserNameReplacementProperty , voert u de waarde in die de oorspronkelijke UPN van de Power BI-gebruiker vervangt. Als u bijvoorbeeld ADUserNameReplacementProperty instelt op SAMAccountName, voert u de SAMAccountName van de gebruiker in.

De gateway configureren

Nu u het gatewaycertificaat en de identiteit hebt geconfigureerd, converteert u het certificaat naar een PFX-bestandsindeling en configureert u vervolgens de gateway om het certificaat te gebruiken door het volgende te doen:

  1. Converteer het certificaat naar PFX-indeling door de volgende opdracht uit te voeren. Met deze opdracht wordt het resulterende bestand samlcert.pfx genoemd en wordt de hoofdmap ingesteld als het wachtwoord, zoals hier wordt weergegeven:

    openssl pkcs12 -export -out samltest.pfx -in IdP_Cert.pem -inkey IdP_Key.pem -passin pass:root -passout pass:root
    
  2. Kopieer het PFX-bestand naar de gatewaycomputer:

    a. Dubbelklik op samltest.pfx en selecteer vervolgens Local Machine>Next.

    b. Voer het wachtwoord in en selecteer vervolgens Volgende.

    c. Selecteer Alle certificaten in het volgende archief plaatsen en selecteer Vervolgens Persoonlijke OK bladeren>>.

    Screenshot of the

    d. Selecteer Volgende en selecteer Vervolgens Voltooien.

  3. Ga als volgt te werk om het gatewayserviceaccount toegang te verlenen tot de persoonlijke sleutel van het certificaat:

    a. Voer op de gatewaycomputer Microsoft Management Console (MMC) uit.

    Screenshot of the gateway machine

    b. Selecteer in MMC de module Bestand>toevoegen/verwijderen.

    Screenshot of the

    c. Selecteer Certificaten>toevoegen en selecteer vervolgens Computeraccount>Volgende.

    d. Selecteer Ok op lokale computer>voltooien.>

    e. Vouw Persoonlijke>certificaten voor certificaten> uit en zoek vervolgens naar het certificaat.

    f. Klik met de rechtermuisknop op het certificaat en selecteer vervolgens Alle taken>persoonlijke sleutels beheren.

    Screenshot of the

    g. Voeg het gatewayserviceaccount toe aan de lijst. Het account is standaard NT SERVICE\PBIEgwService. U kunt achterhalen welk account de gatewayservice uitvoert door services.msc uit te voeren en vervolgens te zoeken naar de on-premises gegevensgatewayservice.

    Screenshot of the

Voeg ten slotte de vingerafdruk van het certificaat toe aan de gatewayconfiguratie:

  1. Voer de volgende PowerShell-opdracht uit om de certificaten op uw computer weer te geven:

    Get-ChildItem -path cert:\LocalMachine\My
    
  2. Kopieer de vingerafdruk voor het certificaat dat u hebt gemaakt.

  3. Ga standaard naar de gatewaymap. Dit is C:\Program Files\On-premises gegevensgateway .

  4. Open PowerBI.DataMovement.Pipeline.GatewayCore.dll.config en zoek naar de sectie SapHanaSAMLCertThumbprint . Plak de vingerafdruk die u in stap 2 hebt gekopieerd.

  5. Start de gatewayservice opnieuw op.

Een Power BI-rapport uitvoeren

U kunt nu de pagina Gateway beheren in Power BI gebruiken om de SAP HANA-gegevensbron te configureren. Schakel onder Advanced Instellingen eenmalige aanmelding in via SAML. Als u dit doet, kunt u rapporten en gegevenssets publiceren die zijn gekoppeld aan die gegevensbron.

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

Notitie

Eenmalige aanmelding maakt gebruik van Windows-verificatie, dus zorg ervoor dat het Windows-account toegang heeft tot de gatewaycomputer. Als dit niet het geval is, moet u NT-AUTHORITY\Geverifieerde gebruikers (S-1-5-11) toevoegen aan de groep Gebruikers van de lokale computer.

Problemen oplossen met behulp van SAML voor eenmalige aanmelding bij SAP HANA

Deze sectie bevat uitgebreide stappen voor het oplossen van problemen met behulp van SAML voor eenmalige aanmelding bij SAP HANA. Met behulp van deze stappen kunt u zelf diagnoses uitvoeren en eventuele problemen oplossen.

Geweigerde referenties

Nadat u eenmalige aanmelding op basis van SAML hebt geconfigureerd, ziet u mogelijk de volgende fout in de Power BI-portal: 'De opgegeven referenties kunnen niet worden gebruikt voor de SapHana-bron.' Deze fout geeft aan dat de SAML-referenties zijn geweigerd door SAP HANA.

Verificatietraceringen aan de serverzijde bieden gedetailleerde informatie voor het oplossen van referentieproblemen in SAP HANA. Ga als volgt te werk om tracering voor uw SAP HANA-server te configureren:

  1. Schakel op de SAP HANA-server de verificatietracering in door de volgende query uit te voeren:

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') set ('trace', 'authentication') = 'debug' with reconfigure 
    
  2. Reproduceer het probleem.

  3. Open in SAP HANA Studio de beheerconsole en selecteer vervolgens het tabblad Diagnosebestanden .

  4. Open de meest recente indexservertracering en zoek naar SAMLAuthenticator.cpp.

    U ziet een gedetailleerd foutbericht dat de hoofdoorzaak aangeeft, zoals wordt weergegeven in het volgende voorbeeld:

    [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. Nadat u klaar bent met het oplossen van problemen, schakelt u de verificatietracering uit door de volgende query uit te voeren:

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

Gatewayfouten controleren en oplossen

Als u de procedures in deze sectie wilt volgen, moet u gatewaylogboeken verzamelen.

SSL-fout (certificaat)

Foutsymptomen

Dit probleem heeft meerdere symptomen. Wanneer u probeert een nieuwe gegevensbron toe te voegen, ziet u mogelijk een foutbericht zoals hieronder:

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

Wanneer u probeert een rapport te maken of te vernieuwen, ziet u mogelijk een foutbericht zoals in de volgende afbeelding:

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

Wanneer u de Mashup[date]*.log onderzoekt, ziet u het volgende foutbericht:

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

Oplossing

Als u deze SSL-fout wilt oplossen, gaat u naar de gegevensbronverbinding en selecteert u in de vervolgkeuzelijst Servercertificaat valideren nee, zoals wordt weergegeven in de volgende afbeelding:

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

Nadat u deze instelling hebt geselecteerd, wordt het foutbericht niet meer weergegeven.

Gateway SignXML-fout

De signXML-fout van de gateway kan het resultaat zijn van onjuiste SapHanaSAMLCertThumbprint-instellingen , of het kan een probleem zijn met de HANA-server. Vermeldingen in de gatewaylogboeken helpen identificeren waar het probleem zich bevindt en hoe u dit kunt oplossen.

Foutsymptomen

Logboekvermeldingen voor SignXML: Found the cert...: Als uw GatewayInfo[datum].log bestand deze fout bevat, is het SignXML-certificaat gevonden en moeten uw inspanningen voor probleemoplossing zich richten op stappen die worden gevonden in de sectie Verifiëren en problemen met de HANA-serverzijde oplossen.

Logboekvermeldingen voor Couldn't find saml cert: Als uw GatewayInfo[datum].log bestand deze fout bevat, is SapHanaSAMLCertThumbprint onjuist ingesteld. In de volgende sectie wordt beschreven hoe u het probleem kunt oplossen.

Oplossing

Als u SapHanaSAMLCertThumbprint correct wilt instellen, volgt u de instructies in de sectie Gateway configureren. De instructies beginnen met Tot slot, voeg de vingerafdruk van het certificaat toe aan de gatewayconfiguratie.

Nadat u het configuratiebestand hebt gewijzigd, moet u de gatewayservice opnieuw starten om de wijziging van kracht te laten worden.

Validatie

Wanneer SapHanaSAMLCertThumbprint correct is ingesteld, bevatten uw gatewaylogboeken vermeldingen die zijn opgenomen SignXML: Found the cert.... Op dit moment moet u verder kunnen gaan met de sectie Verifiëren en problemen met de HANA-serverzijde oplossen.

Als de gateway het certificaat niet kan gebruiken om de SAML-assertie te ondertekenen, ziet u mogelijk een fout in de logboeken die er ongeveer als volgt uitzien:

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.

Volg de instructies die beginnen met stap 3 in de sectie Gateway configureren om deze fout op te lossen.

Nadat u de configuratie hebt gewijzigd, start u de gatewayservice opnieuw op om de wijziging van kracht te laten worden.

De HANA-serverzijde controleren en problemen oplossen

Gebruik de oplossingen in deze sectie als de gateway het certificaat kan vinden en de SAML-assertie kan ondertekenen, maar nog steeds fouten ondervindt. U moet HANA-verificatietraceringen verzamelen, zoals eerder beschreven in de sectie Geweigerde referenties.

De SAML-id-provider

De aanwezigheid van de Found SAML provider tekenreeks in de HANA-verificatietraceringen geeft aan dat de SAML-id-provider correct is geconfigureerd. Als de tekenreeks niet aanwezig is, is de configuratie onjuist.

Oplossing

Bepaal eerst of uw organisatie OpenSSL of commoncrypto gebruikt als sslcryptoprovider. Ga als volgt te werk om te bepalen welke provider wordt gebruikt:

  1. Open SAP HANA Studio.

  2. Open de Beheer istration-console voor de tenant die u gebruikt.

  3. Selecteer het tabblad Configuratie en gebruik sslcryptoprovider als filter, zoals wordt weergegeven in de volgende afbeelding:

    Screenshot of the sslcryptoprovider information in SAP HANA Studio.

Controleer vervolgens of de cryptografische bibliotheek correct is ingesteld door het volgende te doen:

  1. Ga naar de beveiligingsconsole in SAP HANA Studio door het tabblad SAML-id-providers te selecteren en voer een van de volgende handelingen uit:

    • Als de sslcryptoprovider OpenSSL is, selecteert u OpenSSL Cryptographic Library.
    • Als de sslcryptoprovider commonCrypto is, selecteert u de cryptografische BIBLIOTHEEK van SAP.

    In de volgende afbeelding is SAP Cryptographic Library geselecteerd:

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

  2. Implementeer uw wijzigingen door de knop Implementeren in de rechterbovenhoek te selecteren, zoals wordt weergegeven in de volgende afbeelding:

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

Validatie

Wanneer de traceringen correct zijn geconfigureerd, rapporteren Found SAML provider ze en zullen ze niet rapporteren SAML Provider not found. U kunt doorgaan naar de volgende sectie, 'Problemen met de SAML-assertiehandtekening oplossen'.

Als de cryptografische provider is ingesteld maar SAML Provider not found nog steeds wordt gerapporteerd, zoekt u naar een tekenreeks in de trace die begint met de volgende tekst:

Search SAML provider for certificate with subject =

Zorg er in die tekenreeks voor dat het onderwerp en de verlener exact hetzelfde zijn als op het tabblad SAML-id-provider in de beveiligingsconsole. Een verschil van zelfs één teken kan het probleem veroorzaken. Als u een verschil vindt, kunt u het probleem in de CRYPTOgrafische SAP-bibliotheek oplossen, zodat de vermeldingen exact overeenkomen.

Als het probleem niet wordt opgelost door het wijzigen van de cryptografische SAP-bibliotheek, kunt u de velden Uitgegeven aan en Uitgegeven door handmatig bewerken door erop te dubbelklikken.

Problemen met de SAML-assertiehandtekening oplossen

Mogelijk vindt u HANA-verificatietraceringen die vermeldingen bevatten die vergelijkbaar zijn met de volgende:

[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!

De aanwezigheid van dergelijke vermeldingen betekent dat de handtekening niet wordt vertrouwd.

Oplossing

Als u OpenSSL gebruikt als uw sslcryptoprovider, controleert u of de bestanden trust.pem en key.pem zich in de SSL-map bevinden. Zie het SAP-blog Over het beveiligen van de communicatie tussen SAP HANA Studio en SAP HANA Server via SSL voor meer informatie.

Als u commoncrypto gebruikt als uw sslcryptoprovider, controleert u of er een verzameling is met uw certificaat in de tenant.

Validatie

Wanneer de traceringen correct zijn geconfigureerd, rapporteren Found valid XML signatureze .

Problemen met de UPN-toewijzing oplossen

Mogelijk vindt u HANA-traceringen die vermeldingen bevatten die vergelijkbaar zijn met de volgende:

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

De fout geeft aan dat nameId johnny@contoso.com is gevonden in de SAML-asserties, maar deze bestaat niet of is niet correct toegewezen in HANA Server.

Oplossing

Ga naar de HANA-databasegebruiker en selecteer onder het geselecteerde SAML-selectievakje de koppeling Configureren . Het volgende venster wordt weergegeven:

Screenshot showing that the incorrect user name is displayed.

Zoals in het foutbericht wordt beschreven, probeerde HANA te vinden johnny@contoso.com, maar de externe identiteit wordt alleen weergegeven als johnny. Deze twee waarden moeten overeenkomen. Als u het probleem wilt oplossen, wijzigt u onder Externe identiteit de waarde in johnny@contoso.com. Houd er rekening mee dat deze waarde hoofdlettergevoelig is.

Zie de volgende bronnen voor meer informatie over de on-premises gegevensgateway en DirectQuery: