Utiliser Security Assertion Markup Language (SAML ) pour l’authentification unique de Power BI sur des sources de données locales

En activant l’authentification unique (SSO), vous pouvez faciliter l’actualisation des données des tableaux de bord et rapports Power BI à partir de sources locales, tout en respectant les autorisations de niveau utilisateur configurées sur ces sources. Pour permettre une connectivité d’authentification unique fluide, vous devez utiliser Security Assertion Markup Language (SAML).

Notes

Vous ne pouvez vous connecter qu’à une seule source de données à l’aide de SAML SSO avec une passerelle de données locale. Pour vous connecter à une source de données supplémentaire à l’aide de SAML SSO, vous devez utiliser une passerelle de données locale différente.

Sources de données prises en charge pour SAML

Microsoft prend actuellement en charge SAP HANA avec SAML. Pour plus d’informations sur la configuration de l’authentification unique pour SAP HANA à l’aide de SAML, consultez SAML SSO for BI Platform to HANA (Authentification unique SAML pour la plateforme BI dans HANA).

Nous prenons en charge des sources de données supplémentaires avec Kerberos (dont SAP HANA).

Pour SAP HANA, nous vous recommandons d’activer le chiffrement avant d’établir une connexion avec authentification unique SAML. Pour activer le chiffrement, configurez le serveur HANA pour qu’il accepte les connexions chiffrées, puis configurez la passerelle afin qu’elle utilise le chiffrement pour communiquer avec votre serveur HANA. Le pilote ODBC HANA n’étant pas en mesure de chiffrer les assertions SAML par défaut, l’assertion SAML signée est envoyée à partir de la passerelle au serveur HANA en clair et peut donc être interceptée et réutilisée par des tiers.

Important

Étant donné que SAP ne prend plus en charge OpenSSL, Microsoft a également mis fin à son support. Vos connexions existantes continuent de fonctionner, mais vous ne pouvez plus créer de nouvelles connexions. Utilisez à la place SAP Cryptographic Library (CommonCryptoLib), ou sapcrypto.

Configurer la passerelle et la source de données

Pour utiliser SAML, vous devez établir une relation d’approbation entre les serveurs HANA pour lesquels vous souhaitez activer l’authentification unique et la passerelle. Dans ce scénario, la passerelle joue le rôle de fournisseur d’identité SAML. Vous pouvez établir cette relation de différentes façons. SAP vous recommande d’utiliser CommonCryptoLib pour effectuer les étapes de configuration. Pour plus d’informations, consultez la documentation SAP officielle.

Créer les certificats

Vous pouvez établir une relation d’approbation entre un serveur HANA et le fournisseur d’identité de la passerelle en signant le certificat X509 du fournisseur d’identité de la passerelle à l’aide d’une autorité de certification (CA) racine approuvée par le serveur HANA.

Pour créer les certificats, procédez comme suit :

  1. Sur l’appareil qui exécute SAP HANA, créez un dossier vide pour stocker vos certificats, puis accédez à ce dossier.

  2. Créez les certificats racine en exécutant la commande suivante :

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

    Veillez à copier et à enregistrer la phrase secrète pour utiliser ce certificat afin d’en signer d’autres. Vous devez voir les fichiers CA_Cert.pem et CA_Key.pem en train d’être créés.

  3. Créez les certificats IdP en exécutant la commande suivante :

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

    Vous devez voir les fichiers IdP_Key.pem et IdP_Req.pem en train d’être créés.

  4. Signez les certificats IdP avec les certificats racine :

    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
    

    Vous devez voir les fichiers CA_Cert.srl et IdP_Cert.pem en train d’être créés. À ce stade, concentrez-vous uniquement sur le fichier IdP_Cert.pem.

Créer un mappage pour le certificat du fournisseur d’identité SAML

Pour créer un mappage pour le certificat du fournisseur d’identité SAML, procédez comme suit :

  1. Dans SAP HANA Studio, cliquez avec le bouton droit sur le nom de votre serveur SAP HANA, puis sélectionnez Security>Open Security Console>SAML Identity Provider (Sécurité > Ouvrir la console de sécurité > Fournisseur d’identité SAML).

  2. Sélectionnez l’option Bibliothèque de chiffrement SAP. N’utilisez pas l’option de la bibliothèque de chiffrement OpenSSL, qui est déconseillée par SAP.

    Screenshot of the

  3. Pour importer le certificat signé IdP_Cert.pem, sélectionnez le bouton d’importation bleu, comme illustré dans l’image suivante :

    Screenshot of the

  4. N’oubliez pas d’attribuer un nom à votre fournisseur d’identité.

Importer et créer les certificats signés dans HANA

Pour importer et créer les certificats signés dans HANA, procédez comme suit :

  1. Dans SAP HANA Studio, exécutez la requête suivante :

    CREATE CERTIFICATE FROM '<idp_cert_pem_certificate_content>'
    

    Voici un exemple :

    CREATE CERTIFICATE FROM
    '-----BEGIN CERTIFICATE-----
    MIIDyDCCArCgA...veryLongString...0WkC5deeawTyMje6
    -----END CERTIFICATE-----
    '
    
  2. S’il n’existe aucun environnement de sécurité personnel (PSE) avec pour objet SAML, créez-en un en exécutant la requête suivante dans SAP HANA Studio :

    CREATE PSE SAMLCOLLECTION;
    set pse SAMLCOLLECTION purpose SAML;
    
  3. Ajoutez le certificat signé nouvellement créé au PSE en exécutant la commande suivante :

    alter pse SAMLCOLLECTION add CERTIFICATE <certificate_id>;
    

    Par exemple :

    alter pse SAMLCOLLECTION add CERTIFICATE 1978320;
    

    Vous pouvez vérifier la liste des certificats créés en exécutant la requête suivante :

    select * from PUBLIC"."CERTIFICATES"
    

    Le certificat est à présent installé correctement. Pour confirmer l’installation, vous pouvez exécuter la requête suivante :

    select * from "PUBLIC"."PSE_CERTIFICATES"
    

Mapper l’utilisateur

Pour mapper l’utilisateur, procédez comme suit :

  1. Dans SAP HANA Studio, sélectionnez le dossier Security.

    Screenshot of the Security folder structure on the left pane.

  2. Développez Users, puis sélectionnez l’utilisateur auquel vous souhaitez associer votre utilisateur Power BI.

  3. Cochez la case SAML, puis sélectionnez Configure, comme illustré dans l’image suivante :

    Screenshot of the

  4. Sélectionnez le fournisseur d’identité que vous avez créé dans la section Créer un mappage pour le certificat du fournisseur d’identité SAML. Sous External Identity, entrez l’UPN de l’utilisateur Power BI (en général, l’adresse e-mail avec laquelle l’utilisateur se connecte à Power BI), puis sélectionnez Add.

    Screenshot of the

    Si vous avez configuré votre passerelle pour utiliser l’option de configuration ADUserNameReplacementProperty, entrez la valeur qui remplacera l’UPN d’origine de l’utilisateur Power BI. Par exemple, si vous définissez ADUserNameReplacementProperty avec la valeur SAMAccountName, entrez le SAMAccountName de l’utilisateur.

Configurer la passerelle

Le certificat et l’identité de la passerelle étant maintenant configurés, convertissez le certificat au format de fichier PFX, puis configurez la passerelle pour qu’elle utilise le certificat en procédant comme suit :

  1. Convertissez le certificat au format PFX en exécutant la commande suivante. Cette commande nomme le fichier obtenu samlcert.pfx et définit root comme mot de passe, comme indiqué ici :

    openssl pkcs12 -export -out samltest.pfx -in IdP_Cert.pem -inkey IdP_Key.pem -passin pass:root -passout pass:root
    
  2. Copiez le fichier PFX sur la machine de passerelle :

    a. Double-cliquez sur samltest.pfx, puis sélectionnez Ordinateur local>Suivant.

    b. Entrez le mot de passe, puis sélectionnez Suivant.

    c. Sélectionnez Placer tous les certificats dans le magasin suivant, puis sélectionnez Parcourir>Personnel>OK.

    Screenshot of the

    d. Sélectionnez Suivant, puis Terminer.

  3. Pour octroyer au compte de service de passerelle l’accès à la clé privée du certificat, procédez comme suit :

    a. Sur l’ordinateur de la passerelle, exécutez Microsoft Management Console (MMC).

    Screenshot of the gateway machine

    b. Dans MMC, sélectionnez Fichier>Ajouter/supprimer un composant logiciel enfichable.

    Screenshot of the

    c. Sélectionnez Certificats>Ajouter, puis sélectionnez Un compte d’ordinateur>Suivant.

    d. Sélectionnez Ordinateur local>Terminer>OK.

    e. Développez Certificats>Personnel>Certificats, puis recherchez le certificat.

    f. Cliquez avec le bouton droit sur le certificat, puis sélectionnez Toutes les tâches>Gérer les clés privées.

    Screenshot of the

    g. Ajoutez le compte de service de passerelle à la liste. Par défaut, le compte est NT SERVICE\PBIEgwService. Vous pouvez déterminer le compte qui exécute le service de passerelle en exécutant services.msc et en recherchant Service de passerelle de données locale.

    Screenshot of the

Enfin, ajoutez l’empreinte de certificat à la configuration de la passerelle :

  1. Exécutez la commande PowerShell suivante pour répertorier les certificats présents sur votre ordinateur :

    Get-ChildItem -path cert:\LocalMachine\My
    
  2. Copiez l’empreinte du certificat que vous avez créé.

  3. Accédez au répertoire de la passerelle, C:\Program Files\On-premises data gateway, par défaut.

  4. Ouvrez PowerBI.DataMovement.Pipeline.GatewayCore.dll.config, puis recherchez la section SapHanaSAMLCertThumbprint. Collez l’empreinte que vous avez copiée à l’étape 2.

  5. Redémarrez le service de passerelle.

Générer un rapport Power BI

Vous pouvez maintenant utiliser la page Gérer la passerelle dans Power BI pour configurer la source de données SAP HANA. Sous Paramètres avancés, activez l’authentification unique avec SAML. Cela vous permet de publier des rapports et des jeux de données liés à cette source de données.

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

Remarque

L’authentification unique (SSO) utilise l’authentification Windows pour garantir que le compte Windows peut accéder à la machine de passerelle. En cas de doute, veillez à ajouter NT-AUTHORITY\Authenticated Users (S-1-5-11) au groupe « Utilisateurs » de l’ordinateur local.

Résoudre les problèmes liés à l’utilisation de SAML pour l’authentification unique SAP HANA

Cette section fournit des étapes détaillées sur la résolution des problèmes liés à l’utilisation de SAML pour l’authentification unique pour SAP HANA. L’utilisation de ces étapes peut vous aider à diagnostiquer et à corriger les problèmes auxquels vous pouvez être confronté.

Informations d’identification rejetées

Après avoir configuré l’authentification unique basée sur SAML, vous risquez de voir l’erreur suivante dans le portail Power BI : « Impossible d’utiliser les informations d’identification fournies pour la source SapHana ». Cette erreur indique que les informations d’identification SAML ont été rejetées par SAP HANA.

Les traces d’authentification côté serveur fournissent des informations détaillées pour résoudre les problèmes d’informations d’identification sur SAP HANA. Pour configurer le traçage de votre serveur SAP HANA, procédez comme suit :

  1. Sur le serveur SAP HANA, activez la trace d’authentification en exécutant la requête suivante :

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') set ('trace', 'authentication') = 'debug' with reconfigure 
    
  2. Reproduisez le problème.

  3. Dans SAP HANA Studio, ouvrez la console d’administration, puis sélectionnez l’onglet Fichiers de diagnostic.

  4. Ouvrez la dernière trace du serveur d’index, puis recherchez SAMLAuthenticator.cpp.

    Vous devriez trouver un message d’erreur détaillé qui indique la cause racine, comme illustré dans l’exemple suivant :

    [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. Une fois le problème résolu, désactivez la trace d’authentification en exécutant la requête suivante :

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

Vérifier et résoudre les erreurs de la passerelle

Pour suivre les procédures de cette section, vous devez collecter les journaux de la passerelle.

Erreur SSL (certificat)

Symptômes de l’erreur

Ce problème présente plusieurs symptômes. Lorsque vous essayez d’ajouter une nouvelle source de données, vous pouvez voir un message d’erreur semblable au suivant :

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

Lorsque vous essayez de créer ou d’actualiser un rapport, vous pouvez voir un message d’erreur semblable à celui de l’image suivante :

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

En examinant Mashup[date]*.log, vous verrez le message d’erreur suivant :

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

Résolution :

Pour résoudre cette erreur SSL, accédez à la connexion à la source de données, puis dans la liste déroulante Valider le certificat du serveur, sélectionnez Non, comme illustré dans l’image suivante :

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

Une fois que vous avez sélectionné ce paramètre, le message d’erreur n’apparaît plus.

Erreur SignXML de la passerelle

L’erreur SignXML de la passerelle peut être le résultat de paramètres SapHanaSAMLCertThumbprint incorrects, ou bien il peut s’agir d’un problème avec le serveur HANA. Les entrées dans les journaux de la passerelle permettent d’identifier l’endroit où réside le problème et comment le résoudre.

Symptômes de l’erreur

Entrées du journal pour SignXML: Found the cert... : Si votre fichier GatewayInfo [date].log contient cette erreur, le certificat SignXML a été trouvé et vos efforts de dépannage doivent se concentrer sur les étapes de la section « Vérifier et dépanner le côté serveur HANA ».

Entrées du journal pour Couldn't find saml cert : si votre fichier GatewayInfo [date].log contient cette erreur, SapHanaSAMLCertThumbprint est défini de manière incorrecte. La section de résolution suivante décrit comment résoudre le problème.

Résolution :

Pour définir correctement SapHanaSAMLCertThumbprint, suivez les instructions de la section « Configurer la passerelle » . Les instructions commencent par Enfin, ajoutez l’empreinte de certificat à la configuration de la passerelle : .

Une fois le fichier de configuration modifié, vous devez redémarrer le service de passerelle pour que la modification prenne effet.

Validation

Lorsque SapHanaSAMLCertThumbprint est correctement défini, les journaux de votre passerelle contiennent des entrées qui incluent SignXML: Found the cert.... À ce stade, vous devez être en mesure de passer à la section Vérifier et dépanner le côté serveur HANA.

Si la passerelle n’est pas en mesure d’utiliser le certificat pour signer l’assertion SAML, vous pouvez voir une erreur semblable à la suivante dans les journaux :

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.

Pour résoudre cette erreur, suivez les instructions à partir de l’étape 3 de la section « Configurer la passerelle ».

Une fois la configuration modifiée, redémarrez le service de passerelle pour que la modification prenne effet.

Vérifier et dépanner le côté serveur HANA

Utilisez les solutions de cette section si la passerelle trouve le certificat et peut signer l’assertion SAML, mais que vous rencontrez toujours des erreurs. Vous devrez collecter les traces d’authentification HANA, comme décrit précédemment dans la section « Informations d’identification rejetées ».

Fournisseurs d’identité SAML

La présence de la chaîne Found SAML provider dans les traces d’authentification HANA indique que le fournisseur d’identité SAML est correctement configuré. Si la chaîne n’est pas présente, la configuration est incorrecte.

Résolution :

Tout d’abord, déterminez si votre organisation utilise OpenSSL ou commoncrypto comme sslcryptoprovider. Pour déterminer quel fournisseur est utilisé, procédez comme suit :

  1. Ouvrez SAP HANA Studio.

  2. Ouvrez la console Administration du locataire que vous utilisez.

  3. Sélectionnez l’onglet Configuration, puis utilisez sslcryptoprovider en tant que filtre, comme illustré dans l’image suivante :

    Screenshot of the sslcryptoprovider information in SAP HANA Studio.

Ensuite, vérifiez que la bibliothèque de chiffrement est définie correctement, en procédant comme suit :

  1. Accédez à Security Console dans SAP HANA Studio en sélectionnant l’onglet SAML Identity Providers, puis effectuez l’une des opérations suivantes :

    • Si le sslcryptoprovider est OpenSSL, sélectionnez OpenSSL Cryptographic Library (Bibliothèque de chiffrement OpenSSL).
    • Si le sslcryptoprovider est commonCrypto, sélectionnez SAP Cryptographic Library (Bibliothèque de chiffrement SAP).

    Dans l’image suivante, SAP Cryptographic Library (Bibliothèque de chiffrement SAP) est sélectionnée :

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

  2. Déployez vos modifications en sélectionnant le bouton Deploy (Déployer) en haut à droite, comme illustré dans l’image suivante :

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

Validation

Lorsqu’elles sont correctement configurées, les traces signalent Found SAML provider et ne signalent pasSAML Provider not found. Vous pouvez passer à la section suivante, « Résoudre les problèmes de signature d’assertion SAML ».

Si le fournisseur de services de chiffrement est défini mais que le SAML Provider not found est toujours signalé, recherchez une chaîne dans la trace qui commence par le texte suivant :

Search SAML provider for certificate with subject =

Dans cette chaîne, vérifiez si l’objet et l’émetteur sont exactement identiques à ceux de l’onglet Fournisseur d’identité SAML dans la Console de sécurité. Même un caractère unique de différence peut être à l’origine du problème. Si vous trouvez une différence, vous pouvez résoudre le problème dans la bibliothèque de chiffrement SAP afin que les entrées correspondent exactement.

Si la modification de la bibliothèque de chiffrement SAP ne résout pas le problème, vous pouvez modifier manuellement les champs Délivré à et Émis par en double-cliquant simplement dessus.

Résoudre les problèmes de signature d’assertion SAML

Vous pouvez rencontrer des traces d’authentification HANA qui contiennent des entrées similaires à ce qui suit :

[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 présence de ces entrées signifie que la signature n’est pas approuvée.

Résolution :

Si vous utilisez OpenSSL comme sslcryptoprovider, vérifiez si les fichiers trust.pem et key.pem se trouvent dans le répertoire SSL. Pour plus d’informations, consultez le blog SAP Securing the communication between SAP HANA Studio and SAP HANA Server through SSL (Sécurisation de la communication entre SAP HANA Studio et SAP HANA Server via SSL).

Si vous utilisez commoncrypto en tant que sslcryptoprovider, vérifiez s’il existe une collection avec votre certificat dans le locataire.

Validation

Lorsqu’elles sont correctement configurées, les traces signalent Found valid XML signature.

Résoudre les problèmes de mappage UPN

Vous pouvez rencontrer des traces HANA qui contiennent des entrées similaires à ce qui suit :

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

L’erreur indique que le nameId johnny@contoso.com se trouve dans les assertions SAML, mais n’existe pas ou n’est pas mappé correctement dans le serveur HANA.

Résolution :

Accédez à l’utilisateur de la base de données HANA et, sous la case à cocher SAML sélectionnée, cliquez sur le lien Configure. La fenêtre suivante s’affiche :

Screenshot showing that the incorrect user name is displayed.

Comme le décrit le message d’erreur, HANA essayait de trouver johnny@contoso.com, mais la seule identité externe affichée est johnny. Ces deux valeurs doivent correspondre. Pour résoudre le problème, sous Identité externe, remplacez la valeur par johnny@contoso.com. Notez que cette valeur respecte la casse.

Pour plus d’informations sur la passerelle de données locale et DirectQuery, consultez les ressources suivantes :