Untuk mengambil dan memecahkan kode token JWT di aplikasi logika, Anda dapat mengikuti langkah -langkah ini:
1. Ambil token JWT: Pertama, Anda perlu mendapatkan token JWT. Ini dapat dilakukan dengan mem -parsing header dari permintaan yang masuk. Jika token dikirim dalam tajuk `otorisasi`, Anda dapat mengekstraknya menggunakan tindakan` parse json` dengan skema yang menangkap kunci `otorisasi`. Kemudian, buat variabel untuk memegang hanya bagian token (mis., Setelah "pembawa") [10].
2. Decode Token JWT: Token JWT adalah Base64Url-encoded. Anda dapat mendekode bagian payload token menggunakan fungsi `split` dan` base64toString` dalam aplikasi logika. Pisahkan token dengan "." pemisah untuk mengisolasi muatan. Kemudian, tambahkan "=" untuk memastikan panjangnya adalah kelipatan 4 untuk decoding base64. Aplikasi logika secara implisit akan mengonversi ini ke string base64, yang kemudian dapat Anda tentukan menggunakan `base64tostring` [1] [3].
3. Parse payload yang diterjemahkan: Setelah mendekode payload, Anda akan memiliki string JSON. Gunakan tindakan `parse json` lain untuk mengubah string ini menjadi objek JSON yang dapat Anda kerjakan di aplikasi logika Anda. Anda dapat mendefinisikan skema untuk objek JSON ini berdasarkan klaim yang diharapkan dalam token JWT [3].
4. Klaim Ekstrak: Setelah JSON diuraikan, Anda dapat mengekstrak klaim tertentu (seperti ID pengguna atau email) dan menggunakannya sesuai kebutuhan dalam alur kerja aplikasi logika Anda.
Pendekatan ini memungkinkan Anda untuk memecahkan kode dan menggunakan token JWT secara langsung dalam aplikasi logika Azure tanpa perlu membuat fungsi Azure atau menggunakan layanan eksternal untuk decoding. Namun, jika Anda perlu memvalidasi token (periksa tanda tangannya), Anda mungkin perlu menggunakan layanan eksternal atau fungsi Azure dengan perpustakaan yang mampu validasi JWT.
Kutipan:
[1] https://stackoverflow.com/questions/54257879/how-to-decode-a-jwt-token-in-azure-logic-app
[2] https://www.criipto.com/blog/jwt-validation-guide
[3] https://autosysops.com/blog/parse-jwt-tokens-in-azure-logic-apps
[4] https://hasura.io/blog/best-practices-of-using-jwt-with-graphql
[5] https://www.michev.info/blog/post/2140/decode-jwt-access-and-id-tokens-via-powershell
[6] https://supertokens.com/blog/revoking-access-with-a-jwt-blacklist
[7] https://techcommunity.microsoft.com/blog/azuredevCommunityBlog/part-4-secure-your-logic-app-using-api-management-8211-validate-jwt-access-restr/336802
[8] https://docs.azure.cn/en-us/logic-apps/logic-apps-securing-a-logic-app
[9] https://www.mikaelsand.se/2022/06/extracting-values-from-jwt-token-in-apim/
[10] https://rakhesh.com/azure/parsing-json-tokens-in-a-logic-app/
[11] https://github.com/auth0/jwt-decode