Bir mantık uygulamasında bir JWT jetonunu almak ve çözmek için şu adımları izleyebilirsiniz:
1. JWT jetonunu alın: İlk olarak, JWT jetonunu almanız gerekir. Bu, gelen bir isteğin başlıklarını ayrıştırarak yapılabilir. Jeton `` Yetkilendirme '' başlığında gönderilirse, `` Yetkilendirme '' anahtarını yakalayan bir şema ile bir `` Ayrıştırma JSON '' eylemi kullanarak çıkarabilirsiniz. Ardından, sadece jeton kısmını tutmak için bir değişken oluşturun (örneğin, "taşıyıcı" dan sonra) [10].
2. JWT jetonunu çözün: JWT jetonları baz64url kodludur. Mantık uygulamalarında jetonun yük kısmını `` split '' ve 'base64tostring' işlevlerini kullanarak çözebilirsiniz. Jetonu "" ile bölün. Separatör yükü izole etmek için. Ardından, uzunluğun baz64 kod çözme için 4'ün katı olduğundan emin olmak için "=" ekleyin. Mantık uygulamaları bunu bir Base64 dizesine dolaylı olarak dönüştürecektir, daha sonra `` Base64Tostring` [1] [3] kullanılarak kod çözebilirsiniz.
3. Kod çözülmüş yükü ayrıştırın: Yükü çözdükten sonra bir JSON dizeniz olacak. Bu dizeyi mantık uygulamanızda çalışabileceğiniz bir JSON nesnesine dönüştürmek için başka bir `ayrıştırma JSON 'eylemi kullanın. Bu JSON nesnesi için bir şema JWT jetonunda beklenen iddialara dayanarak tanımlayabilirsiniz [3].
4. İddiaları çıkarın: JSON ayrıştırıldıktan sonra, belirli talepleri (kullanıcı kimliği veya e -posta gibi) çıkarabilir ve mantık uygulama iş akışınızda gerektiği gibi kullanabilirsiniz.
Bu yaklaşım, Azure işlevi oluşturmaya veya kod çözme için harici hizmetler kullanmaya gerek kalmadan doğrudan Azure mantık uygulamalarında JWT jetonlarını kod çözmenize ve kullanmanıza olanak tanır. Ancak, jetonu doğrulamanız (imzasını kontrol etmeniz) gerekiyorsa, JWT doğrulaması yapabilen bir kütüphane ile harici bir hizmet veya Azure işlevi kullanmanız gerekebilir.
Alıntılar:
[1] https://stackoverflow.com/questions/54257879/how-to-decode-a-jwt-token-in-sazure-logic-app
[2] https://www.criipto.com/blog/jwt-validation-guide
[3] https://autosysops.com/blog/parse-jwt-tokens-s-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-ecure-your-logic-app-using-api-mangement-8211-validate-jwt-acces-rest/336802
[8] https://docs.azure.cn/en-us/logic-apps/logic-apps-securing--logic-app
[9] https://www.mikaelsand.se/2022/06/extracting-values-from-a-jwt-token-in-apim/
[10] https://rakhesh.com/azure/parsing-json-tokens-in--logic-app/
[11] https://github.com/auth0/jwt-decode