Giải mã mã thông báo JWT trong các ứng dụng logic Azure có thể đạt được mà không cần sử dụng các thư viện bên ngoài như Node.js hoặc C#. Đây là cách tiếp cận từng bước:
1. Trích xuất mã thông báo JWT: Đầu tiên, bạn cần trích xuất mã thông báo JWT từ yêu cầu đến. Điều này thường được tìm thấy trong tiêu đề `ủy quyền 'của yêu cầu.
2. Chia mã thông báo JWT: Mã thông báo JWT bao gồm ba phần được phân tách bằng các dấu chấm: tiêu đề, tải trọng và chữ ký. Bạn cần chia mã thông báo bằng các dấu chấm này để cô lập tải trọng, chứa các chi tiết người dùng.
3. Giải mã tải trọng: Tải trọng được mã hóa Base64URL. Bạn có thể sử dụng hàm `base64toString` trong các ứng dụng logic để giải mã nó. Tuy nhiên, bạn cần đảm bảo rằng chuỗi base64 được đệm đúng cách với "=" để làm cho chiều dài của nó bội số 4.
4. Parse JSON: Sau khi được giải mã, tải trọng sẽ là chuỗi JSON. Sử dụng hàm `json` trong các ứng dụng logic để phân tích chuỗi này vào đối tượng JSON mà bạn có thể làm việc.
Dưới đây là một ví dụ đơn giản hóa về cách điều này có thể trông trong các ứng dụng logic:
- Tách mã thông báo JWT: Sử dụng biểu thức như 'split (catergody ()? [' Ủy quyền '],'. ') `Để chia mã thông báo.
- Giải mã tải trọng: Phụ lục "=" để đảm bảo phần đệm thích hợp và sau đó sử dụng `base64tostring` để giải mã nó.
- Parse JSON: Sử dụng hàm `json` để phân tích tải trọng được giải mã.
Đối với một cách tiếp cận có thể sử dụng lại hơn, hãy xem xét việc tạo một ứng dụng logic trẻ em dành riêng cho việc phân tích các mã thông báo JWT, như được mô tả trong [3]. Điều này cho phép bạn dễ dàng tích hợp phân tích cú pháp JWT vào nhiều ứng dụng logic.
Nếu bạn cần xác thực mã thông báo (kiểm tra chữ ký của nó), bạn thường sẽ sử dụng dịch vụ hoặc thư viện bên ngoài, vì các ứng dụng logic không hỗ trợ xác thực JWT. Tuy nhiên, chỉ đơn giản là trích xuất các khiếu nại mà không cần xác thực, các bước trên đủ.
Trích dẫn:
[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://techcommunity.microsoft.com/blog/azuredevcommunityblog/part-4-secure-your-logic-app-using-api-management-8211-validate-jwt-access-restr/336802
[6] https://auth0.com/blog/how-to-validate-jwt-dotnet/
[7] https://github.com/auth0/jwt-decode
[8] https://supertokens.com/blog/revoking-access-with-a-jwt-blacklist
[9] https://fusionauth.io/dev-tools/jwt-decoder
.
.