Résoudre les erreurs d'authentification pour l'intégration signée

Il peut s'avérer difficile de résoudre les erreurs d'authentification lorsque vous utilisez une intégration signée pour votre contenu Looker. Il existe plusieurs méthodes pour diagnostiquer les problèmes. Vous choisirez l'approche en fonction de la page vers laquelle vos redirections redirigent vos utilisateurs. Les conseils de cette page supposent que vous générez votre URL d'intégration signée à l'aide d'un script semblable à ceux du dépôt GitHub d'exemples d'intégration de Looker, sauf indication contraire.

Généralités à 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 de droits d'administrateur, utilisez la commande sudo pour vérifier que votre contenu fonctionne. Si l'erreur Oops, we can't find that page s'affiche, le problème est très 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 à l'aide des suggestions et des 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 les autres problèmes que vous pouvez rencontrer, ainsi que les étapes à suivre pour les résoudre.

Je suis redirigé vers une page de connexion ou une page d'échec d'authentification unique

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

Commencez par générer une nouvelle URL d'intégration signée et testez-la dans le programme de validation d'URI d'intégration sous la page Embed (Intégrer) du panneau Admin de Looker. L'outil de validation d'URI intégré peut parfois révéler des informations précieuses sur la raison pour laquelle vous rencontrez une erreur.

L'outil 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 le validateur d'URI d'intégration 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 signée.

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

Si cette erreur s'affiche, cela signifie que 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 de l'intégration correspondent-ils ?

Le code 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 cela soit le cas, sélectionnez Réinitialiser le secret afin de générer un nouveau secret et de l'ajouter à votre script. Si vous réinitialisez la clé, les intégrations qui utilisaient la clé précédente ne fonctionneront plus.

Essayez d'utiliser le point de terminaison Create Signed Embed Url afin de créer l'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 de la chaîne de signature doivent être dans le bon ordre dans le script de génération d'URL. L'ordre est indiqué sur la page de documentation sur l'intégration signée.

Une fois affichée, la chaîne de signature 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, + peut être interprété comme un espace s'il n'est pas correctement encodé) et que l'URL d'intégration signée ne comporte aucun saut de ligne, qui pourrait être manqué après l'encodage.

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

Le message d'erreur This request includes invalid params: ["embed_domain"] s'affiche

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 nécessaire pour une implémentation d'intégration signée de base. Si votre application n'a pas besoin d'écouter des événements JavaScript, l'option la plus simple consiste à supprimer complètement le paramètre embed_domain.

Si vous devez utiliser des événements JavaScript dans votre application d'intégration, vérifiez le script de génération d'URL pour savoir où le paramètre embed_domain est ajouté. Cette erreur signifie généralement que le paramètre embed_domain a été placé accidentellement en tant que paramètre d'intégration signé, et non directement dans embed_url. Le script ne met pas correctement en forme le paramètre embed_domain s'il ne fait pas partie de embed_url. Il doit être ajouté après l'URL d'intégration et avant tout paramètre.

Voici ce qui devrait se présenter 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.

Le message d'erreur 'nonce' param already used this hour s'affiche

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. Cette erreur s'affiche donc si vous testez une URL à laquelle vous avez déjà accédé. Assurez-vous de générer une nouvelle URL d'ingestion 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 cette erreur s'affiche, veuillez contacter l'assistance Looker pour vous aider à diagnostiquer le problème.

Je suis redirigé vers une page affichant 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, il est probable que votre navigateur bloque les cookies tiers. La plupart des navigateurs sont de plus en plus restrictifs et appliquent par défaut des règles relatives aux cookies qui les bloquent. 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é d'un domaine à l'autre, 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 leur navigateur devront modifier le nom de domaine de l'instance hébergée par Looker. Par exemple, les instances hébergées par Looker sont généralement au 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 la section Que se passe-t-il si l'URL change pour mon instance Looker ? pour en savoir plus.

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

Instances auto-hébergées

Si vous auto-hébergez votre instance Looker, 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 tous les cookies de session comportant l'indicateur samesite=none doivent également spécifier la valeur secure. Looker ne signalera pas secure si votre instance Looker ne dispose pas d'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. Que dois-je faire ?

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