Topik ini menjelaskan cara menggunakan Token parameter for signature verification pada dashboard Publish DataV. Metode verifikasi ini memungkinkan Anda melakukan autentikasi tanda tangan pada parameter yang dilewatkan untuk presentasi data dalam proyek, mencegah manipulasi parameter di URL proyek yang diterbitkan, serta memastikan keamanan data dan informasi privasi pengguna.
Prasyarat
Sebelum menggunakan metode ini, pastikan:
Layar visualisasi data menggunakan otentikasi token. Untuk informasi lebih lanjut, lihat Publikasikan aplikasi visualisasi pada PC.
Dashboard visualisasi data menggunakan metode Get untuk melewatkan parameter dalam URL (parameter ditambahkan langsung setelah URL).
Parameter yang dilewatkan dalam URL layar visualisasi data tidak boleh dirusak.
Skenario
Contoh berikut menggambarkan latar belakang metode verifikasi ini.
Sistem seorang pengguna terintegrasi dengan layar besar DataV, di mana URL dihitung menggunakan token, dan nomor pekerjaan pengguna dilewatkan ke layar besar visualisasi data melalui metode Get untuk menampilkan data yang sesuai. Layar besar visualisasi data dapat diakses melalui https://datav.aliyuncs.com/share/xxx?_datav_time=1556022195845&_datav_signature=%2BDZFj3QDIla%2F00fBZLdJMgk2Z1Ocs9MLL1******%3D&workid=123.
workid (ID pekerjaan) adalah parameter yang dilewatkan pada layar visualisasi data dan dapat dimanipulasi. Sebagai contoh, jika karyawan dengan nomor pekerjaan 123 mengubah URL menjadi https://datav.aliyuncs.com/share/xxx?_datav_time=1556022195845&_datav_signature=%2BDZFj3QDIla%2F00fBZLdJMgk2Z1Ocs9MLL1******%3D&workid=124, mereka dapat melihat informasi karyawan dengan nomor pekerjaan 124. Untuk mencegah manipulasi parameter, Anda harus mengaktifkan autentikasi tanda tangan. Setelah autentikasi tanda tangan diaktifkan, jika parameter dalam URL berubah secara tidak sah, proyek tidak dapat diakses menggunakan URL baru tersebut.
Aturan Parameter
Nama parameter yang ingin ditandatangani harus merupakan nama parameter valid yang dimulai dengan datav_sign_. Ekspresi reguler untuk nama parameter ini adalah /^datav_sign_.*/.
Autentikasi tanda tangan tidak didukung untuk parameter yang tidak memenuhi konvensi penamaan. Namun, nilai parameter dapat diubah. Parameter tanda tangan diurutkan secara menaik.
URL dengan parameter tanda tangan
Contoh berikut menunjukkan kode Node.js sampel:
const crypto = require('crypto');
const querystring = require('querystring');
const signedQueryParamReg = /^ datav_sign_.*/; // Parameter yang sesuai dengan ekspresi reguler ini perlu ditandatangani.
const token = "93TWnmeBtxxxxxxxxxx3thGyAgzennsS";
const screenID ="b92xxxxxxxxxxxxxxxxxx27b4c538cd4";
const time = Date.now();
const customeParams = {
datav_sign_no: 123998,
name: 123
};
let signParamsStr = Object.keys(customeParams)
.filter(paramName => customeParams[paramName] && signedQueryParamReg.test(paramName))
.sort()
.map(param => `${param}=${customeParams[param]}`)
.join('&');
let stringToSign = [screenID, time];
signParamsStr && stringToSign.push(signParamsStr);
stringToSign = stringToSign.join('|');
let signature = crypto.createHmac('sha256', token).update(stringToSign).digest().toString('base64');
let queryParams = {
_datav_time: time,
_datav_signature: signature
};
Object.keys(customeParams).forEach(paramName => {
queryParams[paramName] = customeParams[paramName];
});
let url = `https://datav.aliyuncs.com/share/${screenID}?${querystring.stringify(queryParams)}`;
console.log(url);URL yang diperoleh menggunakan contoh kode di atas adalah: https://datav.aliyuncs.com/share/b92db8e09358c82efca0727b4c538cd4?_datav_time=1556023246894&_datav_signature=GGSbvxlemUeBoRVco8JgrJVWRcmao7NuRYt2O******%3D&datav_sign_no=123998&name=123. Selama periode validitas URL, jika nilai bidang datav_sign_no diubah, tautan tidak dapat diakses. Jika nilai bidang name diubah, tautan masih dapat diakses karena datav_sign_no mematuhi aturan parameter dan berpartisipasi dalam perhitungan tanda tangan. Namun, name tidak mematuhi aturan parameter tanda tangan dan tidak dilibatkan dalam perhitungan tanda tangan.
Prosedur
Tentukan nama parameter yang harus ditandatangani. Parameter ini tidak dapat dirusak setelah dilewatkan.
Setelah dashboard visualisasi data dikembangkan, gunakan otentikasi token untuk mempublikasikan dashboard visualisasi data. Untuk informasi lebih lanjut, lihat Publikasikan aplikasi visualisasi pada PC.
Hitung URL dashboard visualisasi data. Untuk informasi lebih lanjut, lihat Hitung URL dengan parameter tanda tangan.
Gunakan URL yang dihitung pada langkah sebelumnya untuk mengakses layar visualisasi data. Selama akses, sistem secara otomatis memverifikasi tanda tangan parameter.
Jika verifikasi berhasil dan Anda mengubah parameter tanda tangan dalam URL, akses akan ditolak ketika Anda mencoba mengakses URL tersebut kembali.