SSO와 '~' 문자 관련 문제

더 자세히 조사해 보니, 실제로 인코딩을 잘못하고 있었습니다.

참고를 위해 최종적으로 작성한 코드를 공유합니다:

return_payload = base64.b64encode(parse.urlencode(kwargs).encode("utf-8"))
h = hmac.new(secret.encode("utf-8"), return_payload, digestmod=hashlib.sha256)
resp = requests.post(
       ".../admin/users/sync_sso",
        data={"sso": return_payload, "sig": h.hexdigest()}
        headers={...}
)

리다이렉트를 수행하는 경우, {“sso”…}에 대해 parse.urlencode를 반드시 적용하세요.

도움 주셔서 감사합니다, @sam님, @david님!