Résoudre les erreurs d'authentification des composants intégrés signés

Il peut être difficile de résoudre les erreurs d'authentification lorsque vous utilisez une intégration signée pour votre contenu Looker. Vous pouvez essayer de diagnostiquer les problèmes de différentes manières, en fonction de l'endroit où vos redirections envoient vos utilisateurs. Les conseils figurant sur cette page supposent que vous générez votre URL d'intégration signée à l'aide d'un script semblable à celui du dépôt GitHub d'exemples d'intégration de Looker, sauf indication contraire.

Recommandations d'ordre général à essayer en premier

Avant de commencer l'intégration, assurez-vous que votre code secret d'intégration a été généré dans le panneau Administration et que votre contenu intégré fonctionne en mode Production, et pas seulement en mode Développement.

Si vous disposez des autorisations d'administrateur, sudo en tant qu'utilisateur d'intégration pour vérifier que votre contenu fonctionne. Si l'erreur Oops, we can't find that page s'affiche, le problème est probablement lié aux autorisations ou à l'accès au contenu, et non à un problème d'authentification. Si l'utilisateur intégré n'apparaît pas sur la page Utilisateurs du panneau Administration de Looker, cela signifie qu'il n'a pas été créé et que l'URL d'intégration échoue. Vous pouvez essayer de résoudre le problème en suivant certaines des suggestions et ressources indiquées sur cette page.

Si votre instance est auto-hébergée, assurez-vous que le serveur client peut atteindre le serveur Looker et, si les données entre le client et le serveur sont transmises via l'Internet public, assurez-vous que le protocole SSL (HTTPS) est utilisé.

Le reste de cette page décrit les erreurs et autres problèmes que vous pouvez rencontrer, ainsi que la procédure à suivre pour les résoudre.

Je suis redirigé vers une page de connexion ou une page "Échec de l'authentification unique".

Si vous êtes redirigé vers la page de connexion ou vers une page contenant l'erreur Single sign on failure. Please contact an adinistrator., cela signifie généralement que l'authentification de l'élément intégré signé ne fonctionne pas correctement.

Tout d'abord, générez une nouvelle URL d'intégration signée et testez-la dans l'outil Embed URI Validator (Outil de validation d'URI intégré) de la page Embed (Intégrer) du panneau Admin de Looker. L'outil de validation de l'URI d'intégration peut parfois fournir des informations utiles sur la raison pour laquelle vous rencontrez une erreur.

Le programme de validation d'URI intégré s'affiche-t-il comme prévu ?

Si vous vous trouvez sur la page Embed (Intégrer) du panneau Admin de Looker et que l'outil de validation d'URI intégré ne s'affiche pas, cela signifie que l'intégration signée n'a pas encore été activée. Vous devez activer l'intégration avec signature.

Le message d'erreur 'signature param' failed to authenticate s'affiche

Si cette erreur s'affiche, la signature générée par votre script ne fonctionne pas comme prévu. Consultez les sections suivantes pour connaître les solutions possibles:

Les secrets d'intégration correspondent-ils ?

Le secret d'intégration de votre instance Looker doit être identique au secret d'intégration signé de votre script de génération d'URL d'intégration signée. Si vous n'êtes pas sûr que c'est vrai, sélectionnez Réinitialiser le code secret pour générer un nouveau code secret et l'ajouter à votre script. La réinitialisation de la clé rompt tous les éléments intégrés qui utilisaient la clé précédente.

Essayez d'utiliser le point de terminaison Create Signed Embed Url pour créer votre URL d'intégration, en spécifiant le secret dans votre script pour le secret_id dans le corps de l'appel. La réponse vous indiquera si le secret que vous utilisez n'est pas valide.

La chaîne de signature est-elle dans le bon ordre ?

Les paramètres d'intégration dans la chaîne de signature doivent être dans l'ordre approprié dans le script de génération d'URL. L'ordre correct est décrit sur la page de documentation Encodage signé.

La chaîne de signature, lorsqu'elle est imprimée, doit se présenter comme suit avant d'être encodée :

  company_name.looker.com
  /login/embed/embed%2Fdashboards%2F123
  "ac786cbc06162b1edde3a8b35920a93e"
  15852443573600
  "test_external_user_id"
  ["access_data","see_user_dashboards"]
  ["test_model"]
  []
  "test group space"
  {"test_user_attribute":"yes"}
  {}

Après avoir signé la chaîne de signature avec votre code secret d'intégration, assurez-vous que les paramètres de l'URL finale correspondent à ceux spécifiés dans la chaîne de signature. Assurez-vous que les caractères spéciaux tels que + et / sont encodés dans les paramètres d'URL (par exemple, le + pourrait être interprété comme un espace s'il n'est pas correctement encodé) et qu'il n'y a pas de saut de ligne dans l'URL d'intégration signée, qui pourrait être manqué après l'encodage.

Comparez votre script avec nos exemples pour vérifier s'il suit toutes les étapes et si la signature utilise le chiffrement approprié.

J'obtiens l'erreur This request includes invalid params: ["embed_domain"]

Avant de commencer à résoudre cette erreur, notez que le paramètre embed_domain n'est nécessaire que si votre script utilise des écouteurs d'événements JavaScript, ce qui n'est généralement pas une exigence pour une implémentation d'intégration signée de base. Si votre application n'a pas besoin d'écouter les événements JavaScript, la solution la plus simple consiste à supprimer complètement le paramètre embed_domain.

Si vous avez besoin d'utiliser des événements JavaScript dans votre application d'intégration, consultez le script de génération d'URL pour voir où le paramètre embed_domain est ajouté. Cette erreur signifie généralement que le paramètre embed_domain a été placé par erreur en tant que paramètre d'intégration signé au lieu d'être directement dans embed_url. Le script ne formate pas correctement le paramètre embed_domain, sauf s'il fait partie du embed_url. Il doit être ajouté après l'URL d'intégration et avant les autres paramètres.

Voici ce à quoi cela devrait ressembler lorsque le paramètre embed_domain est correctement spécifié dans votre script:

  embed_url: "/embed/dashboards/3?embed_domain=https://company.com"
Si vous utilisez le point de terminaison Create Signed Embed Url, le paramètre embed_domain doit être placé à la fin de target_url.

J'obtiens l'erreur 'nonce' param already used this hour

La valeur du paramètre nonce ne doit pas être répétée au cours de la même heure et doit comporter moins de 255 caractères. Par conséquent, cette erreur s'affichera si vous testez une URL à laquelle l'utilisateur a déjà accédé. Assurez-vous de générer une nouvelle URL d'intégration qui n'a pas encore été chargée dans votre navigateur, et que le nonce change et n'est pas réutilisé.

Je suis redirigé vers une erreur Uh-Oh, Something went wrong

Si ce message s'affiche, veuillez contacter l'assistance Looker pour qu'elle vous aide à diagnostiquer le problème.

Je suis redirigé vers une page avec le message d'erreur 401 You are not authenticated to view this page.

Si vous avez suivi toutes les étapes de dépannage applicables et que le problème 401 persiste, votre navigateur bloque probablement les cookies tiers. La plupart des navigateurs sont de plus en plus restrictifs et appliquent par défaut une règle relative aux cookies qui les bloque. Par exemple, le paramètre Empêcher le suivi intersites de Safari est activé par défaut, tout comme le paramètre Bloquer les cookies tiers en mode navigation privée de Chrome.

Si votre application intègre du contenu Looker et que le nom de domaine de votre instance Looker se termine par company.looker.com, le navigateur n'authentifiera pas l'iFrame intégré dans tous les domaines, sauf si les paramètres de confidentialité des cookies du navigateur sont modifiés.

Instances hébergées par Looker

Les administrateurs hébergés par Looker qui ne souhaitent pas que leurs utilisateurs activent manuellement les cookies tiers dans leurs navigateurs doivent modifier le nom de domaine de l'instance hébergée par Looker. Par exemple, les instances hébergées par Looker prennent généralement le format https://<hostname>.<subdomain>.<domain>.com. Si le nom de domaine Looker est modifié, Looker ne sera plus considéré comme un domaine tiers. Consultez Que se passe-t-il si l'URL de mon instance Looker change ? Pour en savoir plus, consultez la page des bonnes pratiques.

Si vous souhaitez ajouter un domaine personnalisé pour votre instance Looker, contactez l'assistance Looker afin de mettre en place la configuration DNS nécessaire.

Instances auto-hébergées

Si vous hébergez votre instance Looker en auto-hébergement, assurez-vous que votre application utilisant l'intégration signée se trouve sur le même domaine de base que votre instance Looker en modifiant les entrées DNS de votre instance Looker.

Chrome exige également que tout cookie de session comportant l'indicateur samesite=none doit également spécifier secure. Looker n'indiquera pas secure si votre instance Looker n'est pas fournie avec un --ssl-provided-externally-by=<s> indicateur de démarrage. Assurez-vous donc que cet indicateur de démarrage est configuré.

Je rencontre toujours des problèmes. qu'est-ce que je fais maintenant ?

Si vous rencontrez toujours des problèmes après avoir essayé les suggestions de cette page, veuillez vous adresser à votre contact Looker ou consulter l'assistance Looker pour ouvrir une demande.