Penyematan bertanda tangan adalah cara untuk menyajikan Look, visualisasi, Jelajah, dasbor, atau dasbor LookML tersemat pribadi kepada pengguna Anda tanpa mengharuskan mereka memiliki login Looker terpisah. Sebagai gantinya, pengguna akan diautentikasi melalui aplikasi Anda sendiri.
Penyematan bertanda tangan berfungsi dengan membuat URL Looker khusus yang akan Anda gunakan dalam iframe. URL berisi informasi yang ingin Anda bagikan, ID pengguna dalam sistem Anda, dan izin yang ingin Anda berikan kepada pengguna. Kemudian, Anda akan menandatangani URL dengan kunci rahasia yang disediakan oleh Looker.
Untuk penyematan publik, lihat bagian Penyematan publik dengan tag iframe
di halaman dokumentasi Membagikan, mengimpor, dan menyematkan Look secara publik.
Sebelum Anda dapat menggunakan penyematan bertanda tangan di instance Looker, admin Looker harus mengaktifkan penyematan bertanda tangan di panel Admin Looker dan membuat kunci rahasia penyematan. Untuk mengetahui petunjuknya, lihat halaman dokumentasi Mulai menggunakan penyematan — mengaktifkan penyematan bertanda tangan.
Hosting yang tepat untuk penyematan yang ditandatangani
Beberapa browser — misalnya, Safari, atau browser dengan ekstensi yang diinstal yang memblokir iklan atau cookie pelacakan — secara default menggunakan kebijakan cookie yang memblokir cookie pihak ketiga. Jika fitur Penyematan Tanpa Cookie diaktifkan, browser yang memblokir cookie pihak ketiga dapat mengautentikasi pengguna di iframe tersemat di berbagai domain. Autentikasi sematan tanpa cookie memerlukan konfigurasi sisi server. Lihat halaman dokumentasi Penyematan tanpa cookie untuk contoh penyiapan.
Jika fitur Penyematan Tanpa Cookie tidak diaktifkan, Looker akan menggunakan cookie untuk autentikasi pengguna. Dalam hal ini, upaya untuk mengautentikasi iframe sematan di seluruh domain tidak dapat dilakukan di browser yang memblokir cookie pihak ketiga (kecuali jika pengguna mengubah setelan privasi cookie browser mereka). Misalnya, jika Anda ingin menyematkan informasi di https://mycompany.com
, Anda harus memastikan bahwa Looker berbagi domain yang sama, seperti https://analytics.mycompany.com
. Dalam hal ini, jika Looker menghosting instance Anda, hubungi Dukungan Looker untuk menyiapkan konfigurasi DNS yang diperlukan agar penggunaan domain kustom dapat diaktifkan. Tindakan ini akan memungkinkan Looker berbagi domain yang sama dengan aplikasi sematan dan menggunakan cookie pihak pertama, yang diterima secara default di semua browser.
Jika Anda memiliki instance Looker yang dihosting pelanggan, pastikan aplikasi yang akan menggunakan penyematan bertanda tangan menggunakan domain yang sama dengan instance Looker Anda.
Mengontrol visibilitas klien dengan sistem tertutup
Dalam konfigurasi sematan bertanda tangan, pengguna Looker biasanya menyajikan data kepada pelanggan mereka sendiri, sekaligus memiliki klien dari berbagai perusahaan atau grup yang tidak boleh saling mengetahui. Dalam skenario ini, untuk mengamankan informasi pribadi pelanggan Anda, sebaiknya konfigurasi Looker sebagai sistem tertutup, yang juga disebut penginstalan multitenan. Dalam sistem tertutup, konten dikelompokkan untuk mencegah pengguna dari grup yang berbeda mengetahui satu sama lain. Oleh karena itu, sebaiknya aktifkan opsi Sistem Tertutup sebelum Anda memberikan akses kepada pengguna eksternal ke instance Anda.
Untuk mengetahui informasi selengkapnya, lihat halaman dokumentasi Merancang dan mengonfigurasi sistem tingkat akses dan Praktik terbaik keamanan untuk analisis sematan.
Membuat URL sematan yang ditandatangani
Ada beberapa cara untuk membuat URL sematan yang ditandatangani. Anda dapat menggunakan salah satu metode berikut:
Anda dapat membuat URL sematan bertanda tangan menggunakan opsi Dapatkan URL sematan di menu dasbor tiga titik dasbor, atau di menu roda gigi tindakan Jelajahi pada Look atau Jelajahi.
Gunakan endpoint Looker API Create Signed Embed Url, seperti yang dijelaskan di bagian selanjutnya dalam dokumen ini.
Gunakan Looker Embed SDK.
Kodingkan URL penyematan yang ditandatangani. Untuk membuat URL yang tepat, Anda harus menulis kode agar dapat mengenkode URL dengan benar menggunakan kunci rahasia dan membuat item terkait keamanan lainnya. Anda dapat menemukan beberapa skrip contoh di repositori GitHub Contoh sematan Looker. Bagian berikut menjelaskan informasi yang perlu Anda berikan ke skrip tersebut, serta cara membuat URL sematan bertanda tangan tanpa menggunakan skrip.
Mengodekan URL penyematan yang ditandatangani secara manual
Untuk membuat kode URL sematan bertanda tangan, kumpulkan informasi Looker yang diperlukan terlebih dahulu, lalu buat URL sematan bertanda tangan.
Mengumpulkan informasi Looker yang diperlukan
Sebagai titik awal untuk membuat URL, Anda harus menentukan semua informasi yang perlu disertakan. Anda akan memerlukan:
URL sematan
Ambil URL Look, Jelajah, visualisasi kueri, atau dasbor yang ingin Anda sematkan. Kemudian, hapus domain dan tempatkan /embed
sebelum jalur, sebagai berikut:
Item | Pola URL Normal | URL sematan |
---|---|---|
Look | https://instance_name.looker.com/looks/4 |
/embed/looks/4 |
Jelajahi | https://instance_name.looker.com/explore/my_model/my_explore |
/embed/explore/my_model/my_explore |
Visualisasi kueri | https://instance_name.looker.com/explore/my_model/my_explore?qid=1234567890abcdefghij12 22 karakter alfanumerik yang mengikuti parameter qid= di URL Jelajah membentuk Query.client_id . Nilai Query.client_id adalah string unik yang merepresentasikan kueri dan setelan visualisasi.Untuk menyematkan visualisasi kueri, ambil nilai Query.client_id visualisasi kueri, lalu salin Query.client_id ke URL sematan Anda.Anda dapat menggunakan UI Eksplorasi Looker untuk membuat kueri dengan visualisasi yang didukung dan menyalin nilai Query.client_id dari parameter qid= , atau Anda dapat mengambil Query.client_id dengan Looker API, menggunakan metode Get Query , misalnya. |
/embed/query-visualization/Query.client_id |
Dasbor yang ditentukan pengguna | https://instance_name.looker.com/dashboards/1 Sertakan nilai filter dasbor, atau jika menyembunyikan nilai filter, parameter hide_filter di URL dasbor. |
|
Dasbor lama yang ditentukan pengguna | https://instance_name.looker.com/dashboards-legacy/1 |
/embed/dashboards-legacy/1 |
Dasbor LookML | https://instance_name.looker.com/dashboards/my_model::my_dashboard |
/embed/dashboards/my_model::my_dashboard |
Dasbor LookML lama | https://instance_name.looker.com/dashboards-legacy/my_model::my_dashboard |
/embed/dashboards-legacy/my_model::my_dashboard |
Konten yang disematkan selalu mencerminkan versi produksi konten. Perubahan apa pun yang dilakukan saat dalam Mode Pengembangan yang memengaruhi konten dan belum di-deploy ke produksi tidak akan muncul dalam sematan.
Izin
Set izin menentukan apa yang dapat dilakukan oleh pengguna atau grup. Izin dapat diterapkan dengan dua cara:
- Khusus Model: Jenis izin ini hanya diterapkan ke set model yang merupakan bagian dari peran yang sama.
- Seluruh Instance: Jenis izin ini berlaku untuk instance Looker secara keseluruhan. Pengguna sematan dengan izin di seluruh instance dapat melakukan fungsi tertentu di seluruh instance Looker, tetapi tidak dapat mengakses konten berdasarkan model yang tidak disertakan dalam set model perannya.
Tentukan izin yang ingin Anda berikan kepada pengguna. Daftar berikut menunjukkan semua izin yang tersedia untuk penyematan bertanda tangan. Izin yang tidak ada dalam daftar berikut tidak didukung untuk penyematan bertanda tangan:
Izin | Bergantung pada | Jenis | Definisi |
---|---|---|---|
access_data |
Tidak ada | Khusus Model | Mengizinkan pengguna mengakses data (diperlukan untuk melihat Look, dasbor, atau Eksplorasi) |
see_lookml_dashboards |
access_data |
Khusus Model | Mengizinkan pengguna melihat dasbor LookML |
see_looks |
access_data |
Khusus Model | Mengizinkan pengguna melihat Tampilan |
see_user_dashboards |
see_looks |
Khusus Model | Memungkinkan pengguna melihat dasbor yang ditentukan pengguna dan menjelajahi folder dari sematan |
explore |
see_looks |
Khusus Model | Mengizinkan pengguna melihat halaman Jelajahi |
create_table_calculations |
explore |
Seluruh Instance | Diperlukan untuk membuat kalkulasi tabel dalam Eksplorasi |
create_custom_fields |
explore |
Seluruh Instance | Diperlukan untuk membuat kolom kustom dalam Eksplorasi |
can_create_forecast |
explore |
Seluruh Instance | Memungkinkan pengguna membuat atau mengedit prakiraan dalam visualisasi. |
save_content |
see_looks |
Seluruh Instance | Memungkinkan pengguna membuat dan menyimpan perubahan pada Tampilan dan dasbor |
send_outgoing_webhook |
see_looks |
Khusus Model | Memungkinkan pengguna menjadwalkan pengiriman konten Looker ke webhook arbitrer |
send_to_s3 |
see_looks |
Khusus Model | Memungkinkan pengguna menjadwalkan pengiriman konten Looker ke bucket Amazon S3 |
send_to_sftp |
see_looks |
Khusus Model | Memungkinkan pengguna menjadwalkan pengiriman konten Looker ke server SFTP |
schedule_look_emails |
see_looks |
Khusus Model | Memungkinkan pengguna menjadwalkan pengiriman konten Looker ke email mereka sendiri (jika ditetapkan dengan atribut pengguna bernama "email") atau ke alamat email yang berada dalam batasan yang ditetapkan oleh daftar yang diizinkan untuk domain email. Memungkinkan pengguna dengan izin create_alerts mengirim notifikasi pemberitahuan ke alamat email yang berada dalam batasan yang ditetapkan oleh daftar alamat email yang diizinkan. |
schedule_external_look_emails |
schedule_look_emails |
Khusus Model | Memungkinkan pengguna menjadwalkan pengiriman konten Looker ke domain email mana pun. Memungkinkan pengguna dengan izin create_alerts mengirim notifikasi pemberitahuan ke domain email mana pun. |
send_to_integration |
see_looks |
Khusus Model | Memungkinkan pengguna mengirimkan konten Looker ke layanan pihak ketiga yang terintegrasi dengan Looker melalui Hub Tindakan Looker. Izin ini tidak terkait dengan tindakan data. |
create_alerts |
see_looks |
Seluruh Instance | Memungkinkan pengguna membuat pemberitahuan di kartu dasbor untuk menerima notifikasi saat kondisi yang ditentukan terpenuhi atau terlampaui. Pengguna dapat mengedit, menduplikasi, dan menghapus pemberitahuan mereka sendiri serta pemberitahuan Publik pengguna lain. Jika ruang kerja Slack pengguna tidak terhubung ke instance Looker, pengguna tidak akan dapat membuat pemberitahuan yang mengirimkan notifikasi ke Slack. |
download_with_limit |
see_looks |
Seluruh Instance | Memungkinkan pengguna mendownload hasil kueri dengan batas yang diterapkan |
download_without_limit |
see_looks |
Seluruh Instance | Memungkinkan pengguna mendownload hasil kueri tanpa batas |
see_sql |
see_looks |
Khusus Model | Memungkinkan pengguna melihat SQL untuk kueri dan error SQL apa pun yang dihasilkan dari menjalankan kueri |
clear_cache_refresh |
access_data |
Khusus Model | Pengguna dapat menghapus cache dan memuat ulang dasbor sematan, dasbor lama, kartu dasbor, Look, dan Jelajah. |
see_drill_overlay |
access_data |
Khusus Model | Memungkinkan pengguna melihat perincian tanpa perlu membuka halaman Jelajahi lengkap. |
manage_spaces |
Tidak ada | Seluruh Instance | Mengaktifkan browser konten sehingga pengguna dapat membuat, menyalin, memindahkan, dan menghapus folder. Pengguna juga memerlukan izin akses konten Kelola Akses, Edit untuk folder, atau, jika membuat folder baru, untuk folder induk. |
embed_browse_spaces |
Tidak ada | Seluruh Instance | Mengaktifkan penjelajah konten sehingga pengguna dapat menjelajahi folder dari sematan. Setiap pengguna sematan yang diberi izin embed_browse_spaces akan diberi akses ke folder sematan pribadi dan ke folder Bersama organisasi Anda, jika ada. Izin embed_browse_spaces direkomendasikan untuk pengguna yang memiliki izin save_content , sehingga pengguna dapat menjelajahi folder saat memilih tempat untuk menyimpan konten. Untuk melihat konten dalam folder, pengguna juga memerlukan izin see_looks , see_user_dashboards , dan see_lookml_dashboards .Izin embed_browse_spaces diperlukan untuk pengguna sematan yang ingin menandai dasbor atau Look sebagai favorit, karena menandai konten sebagai favorit memerlukan akses ke folder Favorit. |
embed_save_shared_space |
Tidak ada | Seluruh Instance | Mengizinkan pengguna yang juga memiliki izin save_content membuka folder Bersama organisasi, jika ada, dari dalam dialog Simpan. Pengguna yang memiliki izin save_content , tetapi tidak memiliki izin embed_save_shared_space , hanya akan memiliki opsi untuk menyimpan konten ke folder sematan pribadi mereka.Izin embed_save_shared_space tidak menggantikan izin akses konten. Misalnya, agar pengguna dapat menyimpan ke folder Bersama, mereka tetap memerlukan akses Kelola Akses, Edit ke folder Bersama. Selain itu, kurangnya izin embed_save_shared_space tidak mencegah pengguna yang memiliki izin save_content dan akses Kelola Akses, Edit ke folder Bersama menyimpan konten di sana jika mereka memiliki cara alternatif untuk membuka folder Bersama, seperti dengan menggunakan opsi Jelajahi dari sini dari dasbor sematan. |
Akses model
Tentukan model LookML yang harus dapat diakses pengguna. Ini hanyalah daftar nama model.
Atribut pengguna
Tentukan atribut pengguna yang harus dimiliki pengguna, jika ada. Anda akan memerlukan nama atribut pengguna dari Looker, serta nilai yang harus dimiliki pengguna untuk atribut tersebut.
Grup
Tentukan grup yang harus diikuti pengguna, jika ada. Anda akan memerlukan ID grup, bukan nama grup. Menambahkan pengguna sematan bertanda tangan ke grup Looker memungkinkan Anda mengelola akses pengguna tersebut ke folder Looker. Pengguna sematan bertanda tangan akan memiliki akses ke folder apa pun yang dibagikan kepada anggota grup Looker mereka.
Anda juga dapat menggunakan parameter external_group_id
untuk membuat grup yang berada di luar grup Looker reguler. Dalam hal ini, pengguna sematan bertanda tangan dengan external_group_id
yang sama akan memiliki akses ke folder bersama, yang diberi nama "Grup", yang unik untuk grup eksternal.
Peran yang disematkan
Parameter permissions
dan models
membuat peran untuk pengguna sematan. Peran ini muncul sebagai "Peran Sematan" di halaman Pengguna di bagian Admin Looker. Jika parameter permissions
, models
, dan group_ids
semuanya ditentukan dalam URL sematan, maka peran yang disematkan bersifat aditif terhadap peran apa pun yang sudah ditetapkan ke grup yang tercantum dalam parameter group_ids
. Hal ini sama dengan peran standar karena semua peran di Looker bersifat tambahan.
Misalnya, Anda memiliki grup yang sudah ada di Looker dengan ID grup 1
, dan grup tersebut sudah memiliki izin explore
untuk model bernama model_one
, dan Anda membuat URL sematan dengan parameter berikut:
group_ids
=["1"]
permissions
=["access_data","see_looks"]
models
=["model_two"]
Dalam hal ini, pengguna sematan akan mewarisi kemampuan untuk melihat dan menjelajahi data di model_one
, dan peran sematan yang dibuat dengan parameter sebelumnya juga akan memberikan kemampuan untuk melihat data di model_two
.
Membuat URL sematan
URL sematan yang ditandatangani memiliki format berikut:
https://HOST/login/embed/EMBED URL?PARAMETERS&signature=SIGNATURE
Host
Host adalah lokasi tempat instance Looker Anda dihosting. Misalnya, analytics.mycompany.com
. Pastikan untuk menyertakan nomor port jika Anda belum mengaktifkan penerusan port, seperti analytics.mycompany.com:9999
.
URL sematan
URL sematan telah ditentukan sebelumnya. Formatnya akan seperti:
/embed/looks/4
/embed/explore/my_model/my_explore
/embed/query-visualization/Query.client_id
/embed/dashboards/1
atau/embed/dashboards-legacy/1
/embed/dashboards/my_model::my_dashboard
atau/embed/dashboards-legacy/my_model::my_dashboard
Artinya, pola /embed//embed/
akan muncul di URL final Anda; ini sudah benar.
Jika Anda menggunakan peristiwa JavaScript tersemat, pastikan untuk menambahkan embed_domain
(domain tempat iframe digunakan) ke akhir URL sematan, seperti ini:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com
embed_domain
ditambahkan setelah URL sematan, dan sebelum parameter apa pun. Jadi, jika Anda memiliki parameter yang sudah ada, seperti nonce=626
, penambahan embed_domain
akan terlihat seperti:
/embed/looks/4?nonce=626
/embed/looks/4?embed_domain=https://mywebsite.com?nonce=626
Jika Anda menggunakan Embed SDK, pastikan untuk menambahkan embed_domain
dan juga menyertakan sdk=2
di akhir URL sematan, seperti ini:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com&sdk=2
Parameter sdk=2
memungkinkan Looker mengidentifikasi bahwa SDK ada dan dapat memanfaatkan fitur tambahan yang disediakan oleh SDK. SDK tidak dapat menambahkan parameter ini sendiri karena merupakan bagian dari URL bertanda tangan.
Parameter
Parameter URL berikut digunakan untuk menentukan informasi yang diperlukan untuk sematan yang ditandatangani:
Parameter | Nilai Default | Deskripsi | Jenis Data | Contoh |
---|---|---|---|---|
nonce |
Nilai Wajib Diisi | String acak apa pun yang Anda suka, tetapi tidak boleh diulang dalam waktu satu jam dan harus kurang dari 255 karakter.Hal ini mencegah penyerang mengirim ulang URL pengguna yang sah untuk mengumpulkan informasi yang seharusnya tidak mereka miliki. | String JSON | "22b1ee700ef3dc2f500fb7" |
time |
Nilai Wajib Diisi | Waktu saat ini sebagai stempel waktu UNIX. | Bilangan bulat | 1407876784 |
session_length |
Nilai Wajib Diisi | Jumlah detik pengguna harus tetap login ke Looker, antara 0 dan 2.592.000 detik (30 hari). | Bilangan bulat | 86400 |
external_user_id |
Nilai Wajib Diisi | ID untuk setiap pengguna di aplikasi yang menyematkan Looker. Looker menggunakan external_user_id untuk membedakan pengguna sematan yang login, sehingga setiap pengguna harus memiliki ID unik yang ditetapkan untuknya.Anda dapat membuat external_user_id untuk pengguna dengan string apa pun yang Anda inginkan, asalkan string tersebut unik untuk pengguna tersebut. Setiap ID dikaitkan dengan serangkaian izin, atribut pengguna, dan model. Satu browser hanya dapat mendukung satu external_user_id , atau sesi pengguna, dalam satu waktu. Tidak ada perubahan yang dapat dilakukan pada izin pengguna atau atribut pengguna di tengah sesi.Untuk tujuan keamanan, pastikan Anda tidak menggunakan external_user_id yang sama di berbagai sesi penyematan untuk pengguna interaktif yang berbeda, dan pastikan Anda tidak menggunakan external_user_id yang sama untuk satu pengguna yang memiliki izin, nilai atribut pengguna, atau akses model yang berbeda.Menggunakan external_user_id yang sama untuk beberapa pengguna atau untuk pengguna yang sama dengan beberapa izin, atribut pengguna, atau set model, dapat menyebabkan data terlihat oleh pengguna yang seharusnya tidak memiliki akses ke data tersebut. |
String JSON | "user-4" |
permissions |
Nilai Wajib Diisi | Daftar izin yang harus dimiliki pengguna.Lihat bagian Izin di halaman ini untuk mengetahui daftar izin yang diizinkan. | Array string | [ "access_data", "see_looks" ] |
models |
Nilai Wajib Diisi | Daftar nama model yang harus dapat diakses pengguna. | Array string | [ "model_one", "model_two" ] |
group_ids |
[] | Daftar grup Looker yang harus diikuti pengguna, jika ada. Gunakan ID grup, bukan nama grup. | Array string | ["4", "3"] |
external_group_id |
"" | ID unik untuk grup tempat pengguna berada di aplikasi yang menyematkan Looker.Pengguna yang memiliki izin untuk menyimpan konten, dan yang membagikan ID grup eksternal, dapat menyimpan dan mengedit konten dalam folder Looker bersama yang disebut "Grup". Parameter external_group_id adalah satu-satunya metode yang tersedia untuk membuat grup eksternal pengguna sematan. Tidak ada cara untuk mengonfigurasi grup pengguna sematan eksternal dari dalam UI Looker.Panjang external_group_id tidak boleh melebihi 81 karakter. Folder yang sesuai dibuat untuk grup, dan nama folder memiliki batas 100 karakter. Nama folder diawali dengan "Embed Shared Group ", sehingga external_group_id dibatasi hingga 81 karakter agar tetap berada dalam batas 100 karakter atau kurang. |
String JSON | "Accounting" |
user_attributes |
{} | Daftar atribut pengguna yang harus dimiliki pengguna, jika ada. Berisi daftar nama atribut pengguna yang diikuti dengan nilai atribut pengguna.Jika model LookML Anda dilokalkan, Anda dapat menggunakan atribut pengguna locale di URL sematan untuk menentukan bahasa sematan. Misalnya, menyertakan parameter user_attributes { "locale" : "fr_FR" } akan menyebabkan sematan memuat bahasa Prancis sebagai bahasanya. |
Hash string | { "vendor_id" : "17", "company" : "xactness" } |
access_filters |
Nilai Wajib Diisi | Di Looker 3.10, parameter ini dihapus, tetapi masih diperlukan di URL. Gunakan access_filters dengan placeholder kosong, misalnya access_filters={} . |
Placeholder Kosong | {} |
first_name |
"" | Nama depan pengguna. Jika dibiarkan kosong, first_name akan mempertahankan nilai dari permintaan terakhir, atau "Embed" jika nama depan belum pernah ditetapkan. |
String JSON | "Alice" |
last_name |
"" | Nama belakang pengguna. Jika dibiarkan kosong, last_name akan mempertahankan nilai dari permintaan terakhir, atau "Embed" jika nama belakang belum pernah ditetapkan. |
String JSON | "Jones" |
user_timezone |
"" | Jika Anda telah mengaktifkan Zona Waktu Khusus Pengguna, tetapkan nilai opsi Zona Waktu Pelihat di drop-down Zona Waktu pada Look atau dasbor yang disematkan. Parameter ini tidak secara langsung mengubah zona waktu tempat konten ditampilkan; pengguna harus memilih zona waktu dari drop-down.Lihat nilai yang valid di halaman dokumentasi Referensi zona waktu sematan bertanda tangan.Tips tim Chat: Jika Anda ingin konten sematan Anda secara default menggunakan zona waktu penonton, gunakan salah satu metode berikut:?query_timezone=user_timezone ke URL sematan. Contoh:/embed/dashboards/1?query_timezone=user_timezone |
String JSON atau null | "US/Pacific" - atau -null |
force_logout_login |
Nilai Wajib Diisi | Jika pengguna Looker biasa sudah login ke Looker, dan mereka melihat item sematan bertanda tangan, Anda dapat memilih apakah:1) mereka harus melihat item dengan kredensial saat iniatau2) pengguna harus logout dan login kembali dengan kredensial sematan yang ditandatangani. | Boolean (benar atau salah) | true |
Tanda Tangan
Looker menggunakan tanda tangan untuk memverifikasi bahwa secret sematan yang benar digunakan untuk membuat tanda tangan di URL sematan dan bahwa parameter di URL sematan tidak berubah. Jika parameter URL atau rahasia sematan berbeda atau telah berubah, tanda tangan tidak akan cocok dan autentikasi akan ditolak.
Akibatnya, tanda tangan di URL sematan memberikan bukti kuat secara kriptografis bahwa URL sematan tidak dimodifikasi saat transit dan bahwa URL sematan dibuat oleh pihak tepercaya yang memiliki kunci rahasia sematan.
Untuk membuat tanda tangan, Anda harus mengikuti langkah-langkah berikut.
- Kumpulkan nilai parameter berikut dalam urutan ini:
- Host, diikuti dengan
login/embed/
(misalnya,analytics.mycompany.com/login/embed/
) - URL sematan
- Nonce
- Waktu Saat Ini
- Durasi Sesi
- ID Pengguna Eksternal
- Izin
- Model
- ID Grup
- ID Grup Eksternal
- Atribut Pengguna
- Filter Akses (memerlukan placeholder kosong)
- Host, diikuti dengan
- Format semua nilai selain URL Host dan Sematkan sebagai JSON
- Gabungkan nilai dengan jeda baris (
\n
) - HMAC-SHA1 menandatangani string yang digabungkan dengan kunci rahasia sematan Looker Anda
Encoding
Langkah terakhir adalah mengenkode URL Anda ke URL.
Sebelum Anda mengenkode URL, URL sematan yang diformat dengan benar dan menggunakan semua kemungkinan parameter mungkin terlihat seperti ini:
https://analytics.mycompany.com/login/embed//embed/dashboards/1?
nonce="22b1ee700ef3dc2f500fb7"&
time=1407876784&
session_length=86400&
external_user_id="user-4"&
permissions=["access_data","see_user_dashboards","see_looks"]&
models=["model_one","model_two"]&
group_ids=[4,3]&
external_group_id="Allegra K"&
user_attributes={"vendor_id":"17","company":"xactness"}&
access_filters={}&
first_name="Alice"&
last_name="Jones"&
user_timezone="US/Pacific"&
force_logout_login=true&
signature=123456789ABCDEFGHIJKL
Seperti yang disebutkan sebelumnya, /embed//embed/
memang harus muncul di URL Anda.
Setelah Anda mengenkode URL, URL tersebut akan terlihat seperti ini:
https://analytics.mycompany.com/login/embed/%2embed%2Fdashboards%2F1?
nonce=%2222b1ee700ef3dc2f500fb7&%22&
time=1407876784&
session_length=86400&
external_user_id=%22user-4%22&
permissions=%5B%22access_data%22%2C%22see_user_dashboards%22%2C%22see_looks%22%5D&
models=%5B%22model_one%22%2C%22model_two%22%5D&
group_ids=%5B4%2C3%5D&
external_group_id=%22Allegra%20K%22&
user_attributes=%7B%22vendor_id%22%3A%2217%22%2C%22company%22%3A%22xactness%22%7D&
access_filters%7B%7D%26%0A
first_name=%22Alice%22&
last_name=%22Jones%22&
user_timezone=%22US%2FPacific%22&
force_logout_login=true&
signature=123456789ABCDEFGHIJKL
Menggunakan endpoint Create Signed Embed Url API
Looker API mencakup endpoint Create Signed Embed Url, yang menggunakan serangkaian parameter sematan bertanda tangan yang mencakup URL konten yang ingin Anda sematkan dan menampilkan URL lengkap, yang dienkode, dan ditandatangani secara kriptografis.
Untuk menggunakan endpoint API ini dari server web, server web harus dapat melakukan autentikasi ke Looker API dengan hak istimewa admin. Domain server web juga harus tercantum dalam Daftar Domain yang Diizinkan untuk Penyematan.
Anda juga dapat menggunakan API Explorer untuk membuat URL yang ditandatangani yang menggunakan endpoint ini. Anda dapat menginstal API Explorer di instance Looker dari Looker Marketplace. Setelah dibuat, URL yang ditandatangani harus disalin persis seperti yang ditampilkan dan hanya dapat digunakan satu kali. Jika tidak, URL akan gagal. API Explorer juga berguna untuk membuat URL yang ditandatangani dan membandingkannya dengan URL yang ditandatangani yang dibuat secara manual untuk tujuan pemecahan masalah.
Untuk mengetahui informasi selengkapnya tentang Looker API, lihat halaman dokumentasi Mulai menggunakan Looker API.
Menguji URL sematan
Untuk menguji URL final, tempelkan ke Validator URI Sematan di halaman Sematkan di bagian Admin Looker. Meskipun opsi ini tidak dapat memberi tahu Anda apakah data dan izin yang Anda bayangkan telah disiapkan dengan benar, opsi ini dapat memvalidasi bahwa autentikasi Anda berfungsi dengan baik.