Cara mendelegasikan registrasi pengguna dan langganan produk
BERLAKU UNTUK: Pengembang | Dasar | Dasar v2 | Standar | Standar v2 | Premi
Delegasi memungkinkan situs web Anda untuk memiliki data pengguna dan melakukan validasi secara kustom. Dengan delegasi, Anda dapat menangani masuk/mendaftar pengembang (dan operasi manajemen akun terkait) dan langganan produk menggunakan situs web yang ada, alih-alih fungsionalitas bawaan portal pengembang.
Mendelegasikan rincian masuk dan pendaftaran pengembang
Untuk mendelegasikan opsi masuk dan pendaftaran dan manajemen akun pengembang pengembang ke situs web Anda yang sudah ada, buat titik akhir delegasi khusus di situs Anda. Delegasi khusus ini bertindak sebagai titik masuk untuk setiap rincian masuk/pendaftaran dan permintaan terkait yang dimulai dari portal pengembang API Management.
Alur kerja akhir adalah:
- Pengembang mengklik tautan masuk atau pendaftaran atau tautan manajemen akun di portal pengembang API Management.
- Browser mengalihkan ke titik akhir delegasi.
- Titik akhir delegasi dalam pengembalian mengalihkan pengguna ke atau menyajikan pengguna dengan UI masuk/daftar atau manajemen akun.
- Setelah operasi selesai, pengguna dialihkan kembali ke portal pengembang API Management di lokasi yang mereka tinggalkan.
Menyiapkan API Management untuk merutekan permintaan melalui titik akhir delegasi
Di Portal Microsoft Azure, navigasikan ke instans API Management Anda.
Di menu sebelah kiri, di bawah Portal pengembang, pilih Delegasi.
Klik kotak centang untuk mengaktifkan Delegasi masuk & daftar.
Tentukan URL titik akhir delegasi khusus Anda dan masukkan di bidang URL titik akhir delegasi.
Dalam bidang Kunci Validasi Delegasi, lakukan salah satu hal berikut:
- Masukkan rahasia yang digunakan untuk menghitung tanda tangan yang disediakan untuk verifikasi bahwa permintaan berasal dari API Management.
- Klik tombol Buat agar API Management dapat membuat kunci acak untuk Anda.
Klik Simpan.
Buat titik akhir delegasi Anda
Langkah-langkah yang direkomendasikan untuk membuat titik akhir delegasi baru untuk diterapkan di situs Anda:
Terima permintaan dalam formulir berikut, tergantung pada operasi:
http://www.yourwebsite.com/apimdelegation?operation={operation}& returnUrl={URL halaman sumber}&salt={string}&sig={string}
-Atau-
http://www.yourwebsite.com/apimdelegation?operation={operation}& userId={ID pengguna akun}&salt={string}&sig={string}
Parameter kueri:
Parameter Deskripsi operasi Mengidentifikasi jenis permintaan delegasi. Operasi yang tersedia: SignIn, SignUp, ChangePassword, ChangeProfile, CloseAccount, SignOut. returnUrl Pada SignIn atau SignUp, URL tempat pengguna mengklik tautan masuk atau pendaftaran. userId Pada ChangePassword, ChangeProfile, CloseAccount, dan SignOut, ID pengguna akun yang ingin Anda kelola. garam String salt khusus yang digunakan untuk komputasi hash keamanan. sig Hash keamanan komputasi yang akan digunakan untuk perbandingan dengan hash komputasi Anda sendiri. Verifikasikan apakah permintaan berasal dari Azure API Management (opsional, tetapi sangat direkomendasikan untuk keamanan).
Komputasi hash HMAC-SHA512 dari string berdasarkan parameter kueri returnUrl (atau UserId) dan salt . Misalnya, periksa contoh kode kami.
Untuk SignIn dan SignUp:
HMAC(salt + '\n' + returnUrl)
Untuk ChangePassword, ChangeProfile, CloseAccount, dan SignOut:
HMAC(salt + '\n' + userId)
Bandingkan hash yang dihitung di atas dengan nilai parameter kueri sig. Jika kedua hash cocok, lanjutkan ke langkah berikutnya. Jika tidak, tolak permintaan.
Verifikasi bahwa Anda menerima permintaan untuk masuk/mendaftar atau operasi manajemen akun.
Sajikan pengguna dengan UI masuk/daftar atau manajemen akun.
Setelah menyelesaikan operasi di sisi Anda, kelola pengguna di API Management. Misalnya, jika pengguna mendaftar, buat akun yang sesuai untuk mereka di API Management.
- Buat pengguna dengan API Management REST API.
- Atur ID pengguna ke nilai yang sama di toko pengguna Anda atau ID baru yang mudah dilacak.
Setelah masuk atau mendaftar, saat pengguna berhasil diautentikasi:
Meminta token akses bersama melalui API Management REST API.
Tambahkan parameter kueri returnUrl ke URL SSO yang telah Anda terima dari panggilan API di atas. Contohnya:
https://contoso.developer.azure-api.net/signin-sso?token=<URL-encoded token>&returnUrl=%2Freturn%2Furl
Mengalihkan pengguna ke URL yang diproduksi di atas.
Mendelegasikan langganan produk
Mendelegasikan langganan produk yang berfungsi sama dengan mendelegasikan masuk/daftar pengguna. Alur kerja terakhir adalah sebagai berikut:
- Pengembang memilih produk di portal pengembang API Management dan mengklik tombol Berlangganan.
- Browser mengalihkan ke titik akhir delegasi.
- Titik akhir delegasi melakukan langkah-langkah langganan produk yang diperlukan, yang Anda desain. Mereka dapat mencakup:
- Mengarahkan ke halaman lain untuk meminta informasi penagihan.
- Mengajukan pertanyaan lain.
- Menyimpan informasi dan tidak memerlukan tindakan pengguna.
Mengaktifkan fungsionalitas API Management
Pada halaman Delegasi, klik Delegasikan langganan produk.
Buat titik akhir delegasi Anda
Langkah-langkah yang direkomendasikan untuk membuat titik akhir delegasi baru untuk diterapkan di situs Anda:
Terima permintaan dalam formulir berikut, tergantung pada operasi.
http://www.yourwebsite.com/apimdelegation?operation={operation}&p roductId={product to subscribe to}&userId={user making request}&salt={string}&sig={string}
-Atau-
http://www.yourwebsite.com/apimdelegation?operation={operation}& subscriptionId={subscription to manage}&salt={string}&sig={string}
Parameter kueri:
Parameter Deskripsi operasi Mengidentifikasi jenis permintaan delegasi. Opsi permintaan langganan produk yang valid adalah: - Berlangganan: permintaan untuk berlangganan pengguna ke produk tertentu dengan ID yang disediakan (lihat di bawah).
- Berhenti berlangganan: permintaan untuk berhenti berlangganan pengguna dari produk
productId Pada Langganan, ID produk yang digunakan pengguna untuk meminta berlangganan. userId Pada Langganan, ID pengguna yang meminta. subscriptionId Pada Berhenti berlangganan, ID langganan produk. garam String salt khusus yang digunakan untuk komputasi hash keamanan. sig Hash keamanan komputasi yang akan digunakan untuk perbandingan dengan hash komputasi Anda sendiri. Verifikasikan jika permintaan berasal dari Azure API Management (opsional, tetapi sangat direkomendasikan untuk keamanan)
Komputasi HMAC-SHA512 dari string berdasarkan parameter productId dan userId (atau subscriptionId) dan kueri garam:
Untuk Berlangganan:
HMAC(salt + '\n' + productId + '\n' + userId)
Untuk Berhenti berlangganan:
HMAC(salt + '\n' + subscriptionId)
Bandingkan hash yang dihitung di atas dengan nilai parameter kueri sig. Jika kedua hash cocok, lanjutkan ke langkah berikutnya. Jika tidak, tolak permintaan.
Memproses langganan produk berdasarkan jenis operasi yang diminta dalam operasi - (misal: penagihan, pertanyaan lanjutan, dll.).
Setelah menyelesaikan operasi di sisi Anda, kelola langganan di API Management. Misalnya, berlangganan pengguna ke produk API Management dengan memanggil REST API untuk langganan.
Contoh kode
Sampel kode ini menunjukkan cara menghasilkan hash returnUrl
parameter kueri saat mendelegasikan masuk atau mendaftar pengguna. returnUrl
adalah URL halaman tempat pengguna mengklik tautan masuk atau pendaftaran.
- Ambil kunci validasi delegasi, yang diatur dalam layar Delegasi dari portal Azure.
- Buat HMAC, yang kemudian digunakan untuk memvalidasi tanda tangan yang membuktikan validitas returnUrl yang diteruskan.
Dengan sedikit modifikasi, Anda dapat menggunakan kode yang sama untuk menghitung hash lain, seperti dengan productId
dan userId
saat mendelegasikan langganan produk.
Kode C# untuk menghasilkan hash dari returnUrl
using System.Security.Cryptography;
string key = "delegation validation key";
string returnUrl = "returnUrl query parameter";
string salt = "salt query parameter";
string signature;
using (var encoder = new HMACSHA512(Convert.FromBase64String(key)))
{
signature = Convert.ToBase64String(encoder.ComputeHash(Encoding.UTF8.GetBytes(salt + "\n" + returnUrl)));
// change to (salt + "\n" + productId + "\n" + userId) when delegating product subscription
// compare signature to sig query parameter
}
Kode NodeJS untuk menghasilkan hash dari returnUrl
var crypto = require('crypto');
var key = 'delegation validation key';
var returnUrl = 'returnUrl query parameter';
var salt = 'salt query parameter';
var hmac = crypto.createHmac('sha512', new Buffer(key, 'base64'));
var digest = hmac.update(salt + '\n' + returnUrl).digest();
// change to (salt + "\n" + productId + "\n" + userId) when delegating product subscription
// compare signature to sig query parameter
var signature = digest.toString('base64');
Penting
Anda perlu menerbitkan ulang portal pengembang agar perubahan delegasi dapat diterapkan.
Langkah berikutnya
- Pelajari selengkapnya tentang portal pengembang.
- Autentikasi menggunakan ID Microsoft Entra atau dengan Azure AD B2C.
- Lebih banyak pertanyaan portal pengembang? Temukan jawaban di FAQ kami.