Memecahkan masalah error autentikasi penyematan yang ditandatangani

Mungkin akan sulit untuk memecahkan masalah error autentikasi saat Anda menggunakan sematan bertanda tangan untuk konten Looker Anda. Ada beberapa pendekatan berbeda yang dapat Anda gunakan untuk mencoba dan mendiagnosis masalah, dan Anda akan memilih pendekatan berdasarkan ke mana pengalihan Anda mengirimkan pengguna. Tips pada halaman ini mengasumsikan bahwa Anda membuat URL sematan yang ditandatangani menggunakan skrip yang mirip dengan yang ada di repositori GitHub contoh penyematan Looker, kecuali jika dinyatakan lain.

Hal-hal umum yang harus dicoba terlebih dahulu

Sebelum mulai menyematkan, pastikan bahwa rahasia penyematan telah dibuat di panel Admin dan konten yang disematkan juga berfungsi dalam Mode Produksi, bukan hanya dalam Mode Pengembangan.

Jika Anda memiliki izin admin, gunakan sudo sebagai pengguna sematan untuk memeriksa apakah konten Anda berfungsi. Jika Anda mendapatkan error Oops, we can't find that page, kemungkinan besar masalahnya ada pada izin atau akses konten, dan tidak terkait dengan masalah autentikasi. Jika pengguna sematan tidak muncul di halaman Pengguna pada panel Admin Looker, artinya pengguna tersebut belum dibuat dan URL sematan gagal. Anda dapat mencoba memecahkan masalah menggunakan beberapa saran dan referensi yang tercantum di halaman ini.

Jika instance Anda dihosting sendiri, pastikan server klien dapat menjangkau server Looker, dan jika data antara klien dan server dikirim melalui Internet publik, pastikan SSL (HTTPS) digunakan.

Bagian selanjutnya dari halaman ini menjelaskan error dan masalah lain yang mungkin Anda alami beserta langkah-langkah untuk menyelesaikannya.

Saya dialihkan ke halaman login atau halaman "Kegagalan single sign-on"

Jika Anda dialihkan ke halaman login atau halaman yang menampilkan error Single sign on failure. Please contact an adinistrator., biasanya hal ini menandakan bahwa autentikasi sematan yang ditandatangani tidak berfungsi dengan benar.

Pertama, buat URL sematan baru yang ditandatangani dan uji di Validator URI Sematan di halaman Penyematan di panel Admin Looker. Validator URI Embed terkadang dapat mengungkapkan informasi berharga tentang alasan Anda mengalami error.

Apakah Validator URI Sematan muncul seperti yang diharapkan?

Jika Anda berada di halaman Penyematan di panel Admin Looker dan Validator URI Sematan tidak muncul di halaman tersebut, hal ini menunjukkan bahwa penyematan yang ditandatangani belum diaktifkan. Anda harus mengaktifkan penyematan yang ditandatangani.

Saya menerima pesan error 'signature param' failed to authenticate

Jika Anda melihat error ini, tanda tangan yang dihasilkan oleh skrip tidak berfungsi seperti yang diharapkan. Lihat bagian berikut untuk solusi yang memungkinkan:

Apakah rahasia sematan cocok?

Rahasia penyematan dalam instance Looker Anda harus sama dengan rahasia penyematan yang ditandatangani di skrip pembuatan URL sematan yang ditandatangani. Jika tidak yakin apakah ini benar, pilih Reset Secret untuk membuat secret baru dan menambahkannya ke skrip Anda. Mereset kunci akan merusak sematan yang menggunakan kunci sebelumnya.

Coba gunakan endpoint Create Signed Embed Url untuk membuat URL sematan, dengan menentukan rahasia dalam skrip untuk secret_id di isi panggilan. Respons tersebut akan memberi tahu Anda jika rahasia yang Anda gunakan tidak valid.

Apakah string tanda tangan dalam urutan yang benar?

Parameter sematan dalam string tanda tangan harus dalam urutan yang benar dalam skrip pembuatan URL. Urutan yang benar didokumentasikan di halaman dokumentasi Penyematan yang ditandatangani.

String tanda tangan, saat dicetak, akan terlihat seperti ini sebelum dienkode:

  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"}
  {}

Setelah menandatangani string tanda tangan dengan rahasia sematan, pastikan parameter di URL final cocok dengan parameter yang ditentukan dalam string tanda tangan. Pastikan karakter khusus seperti + dan / dienkode dalam parameter URL (misalnya, + dapat ditafsirkan sebagai spasi jika tidak dienkode dengan benar) dan tidak ada jeda baris di URL sematan yang ditandatangani, yang dapat terlewatkan setelah encoding.

Bandingkan skrip Anda dengan contoh skrip kami untuk memeriksa apakah skrip Anda melalui semua langkah yang tepat dan apakah tanda tangan menggunakan enkripsi yang tepat.

Saya menerima pesan error This request includes invalid params: ["embed_domain"]

Sebelum Anda mulai memecahkan masalah error ini, perhatikan bahwa parameter embed_domain hanya diperlukan jika skrip Anda menggunakan pemroses peristiwa JavaScript, yang biasanya bukan persyaratan untuk penerapan penyematan dasar yang ditandatangani. Jika aplikasi Anda tidak perlu memproses peristiwa JavaScript, opsi paling sederhana adalah menghapus parameter embed_domain sepenuhnya.

Jika Anda perlu menggunakan peristiwa JavaScript di aplikasi sematan, periksa skrip pembuatan URL untuk melihat di mana parameter embed_domain ditambahkan. Error ini biasanya berarti bahwa parameter embed_domain tidak sengaja ditempatkan sebagai parameter sematan bertanda tangan, bukan langsung dalam embed_url. Skrip tidak akan memformat parameter embed_domain dengan benar kecuali jika parameter tersebut sebenarnya merupakan bagian dari embed_url, dan harus ditambahkan setelah URL sematan serta sebelum parameter apa pun.

Tampilannya akan terlihat seperti berikut saat parameter embed_domain ditentukan dengan benar dalam skrip Anda:

  embed_url: "/embed/dashboards/3?embed_domain=https://company.com"
Jika Anda menggunakan endpoint Create Signed Embed Url, parameter embed_domain harus ditempatkan di akhir target_url.

Saya menerima pesan error 'nonce' param already used this hour

Nilai parameter nonce tidak boleh diulang dalam jam yang sama dan harus kurang dari 255 karakter. Oleh karena itu, Anda akan melihat error ini jika Anda menguji URL yang telah diakses. Pastikan Anda membuat URL sematan baru yang belum dimuat di browser dan nonce berubah serta tidak digunakan kembali.

Saya dialihkan ke error Uh-Oh, Something went wrong

Jika Anda melihat error ini, hubungi Dukungan Looker untuk membantu Anda mendiagnosis masalah.

Saya dialihkan ke halaman dengan pesan error 401 You are not authenticated to view this page.

Jika Anda sudah mencoba semua langkah pemecahan masalah yang berlaku dan masalah 401 masih berlanjut, browser Anda mungkin memblokir cookie pihak ketiga. Sebagian besar browser menjadi lebih ketat dan secara default akan menggunakan kebijakan cookie yang memblokir cookie ini. Misalnya, setelan Cegah Pelacakan Lintas Situs Safari diaktifkan secara default, seperti halnya setelan Blokir cookie pihak ketiga dalam mode Samaran di Chrome.

Jika aplikasi Anda menyematkan konten Looker dan nama domain instance Looker Anda berakhir dengan company.looker.com, browser tidak akan mengautentikasi iframe tersemat di seluruh domain kecuali jika setelan privasi cookie browser diubah.

Instance yang dihosting Looker

Admin yang dihosting Looker dan tidak ingin penggunanya mengaktifkan cookie pihak ketiga secara manual di browser mereka harus mengubah nama domain instance yang dihosting Looker. Misalnya, instance yang dihosting Looker biasanya menggunakan format https://<hostname>.<subdomain>.<domain>.com. Jika nama domain Looker diubah, Looker tidak akan lagi dianggap sebagai domain pihak ketiga. Lihat kartu Apa yang terjadi jika URL berubah untuk instance Looker saya? untuk informasi selengkapnya.

Jika Anda ingin menambahkan domain kustom untuk instance Looker, hubungi Dukungan Looker untuk menyiapkan konfigurasi DNS yang diperlukan.

Instance yang dihosting sendiri

Jika Anda menghosting sendiri instance Looker, pastikan aplikasi Anda yang menggunakan penyematan yang ditandatangani berada di domain dasar yang sama dengan instance Looker Anda dengan mengubah entri DNS untuk instance Looker Anda.

Chrome juga mewajibkan setiap cookie sesi dengan tanda samesite=none juga harus menentukan secure. Looker tidak akan memberikan sinyal ke secure jika instance Looker Anda tidak diberi --ssl-provided-externally-by=<s> flag startup, jadi pastikan flag startup ini dikonfigurasi.

Saya masih mengalami masalah, apa yang harus saya lakukan sekarang?

Jika Anda masih mengalami masalah setelah mencoba saran di halaman ini, hubungi kontak Looker Anda, atau kunjungi Dukungan Looker untuk membuka tiket.