Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 로직 앱에서 JWT 토큰을 검색하고 디코딩하는 방법


로직 앱에서 JWT 토큰을 검색하고 디코딩하는 방법


로직 앱에서 JWT 토큰을 검색하고 디코딩하려면 다음을 수행 할 수 있습니다.

1. JWT 토큰 검색 : 먼저 JWT 토큰을 얻어야합니다. 이것은 들어오는 요청의 헤더를 구문 분석하여 수행 할 수 있습니다. 토큰이 '인증'헤더로 전송되면 '인증'키를 캡처하는 스키마를 사용하여 'Parse JSON'동작을 사용하여 추출 할 수 있습니다. 그런 다음 토큰 부분 만 보유 할 변수를 만듭니다 (예 : "Bearer"이후) [10].

2. JWT 토큰을 디코딩하십시오 : JWT 토큰은 Base64Url-Encoded입니다. 로직 앱에서 'split'및 'base64tostring` 함수를 사용하여 토큰의 페이로드 부분을 디코딩 할 수 있습니다. "."로 토큰을 나눕니다. 페이로드를 분리하는 분리기. 그런 다음 "="를 추가하여베이스 64 디코딩의 경우 길이가 4의 배수인지 확인하십시오. 로직 앱은 이것을 base64 문자열로 암시 적으로 변환 한 다음`base64tostring`을 사용하여 디코딩 할 수 있습니다 [1] [3].

3. 디코딩 된 페이로드를 구문 분석 : 페이로드를 디코딩 한 후 JSON 스트링이 있습니다. 다른 'Parse JSON'동작을 사용 하여이 문자열을 로직 앱에서 작업 할 수있는 JSON 객체로 변환하십시오. JWT 토큰의 예상 청구에 따라이 JSON 객체의 스키마를 정의 할 수 있습니다 [3].

4. 청구 추출 : JSON이 구문 분석되면 특정 주장 (사용자 ID 또는 이메일과 같은)을 추출하여 로직 앱 워크 플로우에서 필요에 따라 사용할 수 있습니다.

이 접근법을 사용하면 Azure 기능을 만들거나 디코딩을 위해 외부 서비스를 사용할 필요없이 Azure Logic 앱 내에서 JWT 토큰을 해독하고 사용할 수 있습니다. 그러나 토큰을 검증 해야하는 경우 (서명을 확인) JWT 유효성 검사가 가능한 라이브러리가있는 외부 서비스 또는 Azure 기능을 사용해야 할 수도 있습니다.

인용 :
[1] https://stackoverflow.com/questions/54257879/how-to-decode-a-jwt-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-a-jwt-token-in-apim/
[10] https://rakhesh.com/azure/parsing-json-tokens-in-a-logic-app/
[11] https://github.com/auth0/jwt-decode