Memecahkan masalah error autentikasi bisa jadi sulit jika Anda menggunakan sematan bertanda tangan untuk konten Looker. Ada beberapa pendekatan berbeda yang dapat Anda lakukan untuk mencoba dan mendiagnosis masalah, dan Anda akan memilih pendekatan berdasarkan tujuan pengalihan pengguna Anda. Tips di halaman ini mengasumsikan bahwa Anda membuat URL sematan bertanda tangan menggunakan skrip yang mirip dengan yang ada di repositori GitHub contoh Sematan Looker, kecuali dinyatakan lain.
Hal umum yang perlu dicoba terlebih dahulu
Sebelum mulai menyematkan, pastikan secret sematan Anda telah dibuat di panel Admin dan konten sematan Anda 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 terkait izin atau akses konten dan tidak terkait dengan masalah autentikasi. Jika pengguna sematan tidak muncul di halaman Pengguna pada panel Admin Looker, berarti pengguna 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 ditransmisikan 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 ke halaman dengan error Single sign on failure. Please contact an adinistrator., hal ini biasanya menunjukkan bahwa autentikasi sematan bertanda tangan tidak berfungsi dengan baik.
Pertama, buat URL sematan bertanda tangan baru dan uji di Validator URI Sematan di halaman Sematkan pada panel Admin Looker. Validator URI Sematan terkadang dapat mengungkapkan informasi berharga tentang alasan Anda mengalami error.
Apakah Validator URI Sematan muncul seperti yang diharapkan?
Jika Anda berada di halaman Sematkan pada panel Admin Looker dan Validator URI Sematan tidak muncul di halaman, hal ini menunjukkan bahwa penyematan bertanda tangan belum diaktifkan. Anda harus mengaktifkan penyematan bertanda tangan.
Saya menerima error 'signature param' failed to authenticate
Jika Anda melihat error ini, tanda tangan yang dibuat oleh skrip Anda tidak berfungsi seperti yang diharapkan. Lihat bagian berikut untuk mengetahui kemungkinan solusinya:
Apakah secret penyematan cocok?
Rahasia sematan di instance Looker Anda harus sama dengan rahasia sematan bertanda tangan di skrip pembuatan URL sematan bertanda tangan Anda. Jika Anda tidak yakin apakah hal ini terjadi, pilih Reset Secret untuk membuat rahasia baru dan menambahkannya ke skrip Anda. Mereset kunci akan merusak semua sematan yang menggunakan kunci sebelumnya.
Perhatikan bahwa secret yang dibuat menggunakan halaman Sematkan di panel Admin dibuat menggunakan algoritma HMAC-SHA1. Secret yang dibuat menggunakan endpoint API create_embed_secret secara default menggunakan algoritma HMAC-SHA256. Pastikan skrip sematan Anda menggunakan algoritma yang benar.
Coba gunakan endpointCreate Signed Embed Urluntuk membuat URL sematan, dengan menentukan rahasia dalam skrip untuksecret_iddi isi panggilan. Respons akan memberi tahu Anda jika rahasia yang Anda gunakan tidak valid. Penggunaan endpoint ini juga menghindari masalah apa pun dengan skrip yang menggunakan algoritma penandatanganan yang salah.
Apakah string tanda tangan dalam urutan yang benar?
Parameter sematan dalam string tanda tangan harus berada dalam urutan yang benar dalam skrip pembuatan URL. Urutan yang tepat didokumentasikan di halaman dokumentasi Penyematan bertanda tangan.
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 secret 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 dalam URL sematan yang ditandatangani, yang dapat terlewat 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.
Apakah Anda menggunakan instance yang mendukung FIPS?
Jika instance Looker Anda diaktifkan untuk FIPS, instance tersebut dapat menolak tanda tangan yang tidak dibuat menggunakan algoritma yang kompatibel dengan FIPS. Untuk mengetahui informasi selengkapnya tentang instance Looker yang mendukung FIPS, lihat halaman dokumentasi berikut:
- Mengaktifkan kepatuhan FIPS 140-2 level 1
- Mengaktifkan kepatuhan terhadap FIPS 140-2 level 1 pada instance Looker (Google Cloud core)
Untuk menghindari masalah terkait pembuatan tanda tangan pada instance yang mendukung FIPS, Anda dapat menggunakan endpoint Create Signed Embed URL API untuk membuat URL sematan.
Saya menerima 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 sematan bertanda tangan dasar. 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 tempat parameter embed_domain ditambahkan. Error ini biasanya berarti parameter embed_domain secara tidak sengaja ditempatkan sebagai parameter sematan bertanda, bukan langsung di dalam embed_url. Skrip tidak akan memformat parameter embed_domain dengan benar kecuali jika parameter tersebut benar-benar merupakan bagian dari embed_url, dan harus ditambahkan setelah URL sematan dan sebelum parameter apa pun.
Berikut adalah tampilannya jika parameter embed_domain ditentukan dengan benar dalam skrip Anda:
embed_url: "/embed/dashboards/3?embed_domain=https://company.com"
Jika Anda menggunakan endpointCreate Signed Embed Url, parameterembed_domainharus ditempatkan di akhirtarget_url.
Saya menerima 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 Anda 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 mendiagnosis masalah ini.
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, kemungkinan browser Anda memblokir cookie pihak ketiga. Sebagian besar browser menjadi lebih ketat dan akan menggunakan kebijakan cookie default yang memblokir cookie ini. Misalnya, setelan Cegah Pelacakan Lintas Situs Safari diaktifkan secara default, seperti halnya setelan Blokir cookie pihak ketiga di mode Samaran Chrome.
Jika aplikasi Anda menyematkan konten Looker dan nama domain instance Looker Anda diakhiri dengan company.looker.com, browser tidak akan mengautentikasi iframe yang disematkan di seluruh domain kecuali jika setelan privasi cookie browser diubah.
Instance yang dihosting Looker
Admin yang dihosting Looker yang tidak ingin pengguna mereka mengaktifkan cookie pihak ketiga secara manual di browser mereka harus mengubah nama domain instance yang dihosting Looker. Sebagai contoh, 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 halaman Praktik Terbaik Cara mengubah URL instance Looker untuk mengetahui informasi selengkapnya.
Jika Anda tertarik untuk 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 yang menggunakan sematan bertanda tangan berada di domain dasar yang sama dengan instance Looker Anda dengan mengubah entri DNS untuk instance Looker Anda.
Chrome juga mewajibkan agar setiap cookie sesi dengan tanda samesite=none juga menentukan secure. Looker tidak akan memberi sinyal secure jika instance Looker Anda tidak dilengkapi dengan --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 buka Dukungan Looker untuk membuka tiket.