Я пытаюсь проверить JWT, сгенерированный Google IAP, на основе этого примера . Я использую App Engine и Python 3.7, и это означает, что я не могу использовать ту же библиотеку, что и в примере, так как она не будет работать с App Engine.
Ищу альтернативы. Я пытался использовать google.auth , но он не работает ни с одним JTW. Я создал этот токен в качестве примера, используя инструмент в https://jwt.io::
from google.auth import jwt
token = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkxZeVAyZyJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.OjJokSnHIdMxqTlpT055GJDe72-zoTZBE5NISmrDPx0dletHBTnlbl1wwr0EhWaxgKIesZ7N7eLd4XW-TgX-vA'
cert = '-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEVs/o5+uQbTjL3chynL4wXgUg2R9\nq9UU8I5mEovUf86QZ7kOBIjJwqnzD1omageEHWwHdBO6B+dFabmdT9POxg==\n-----END PUBLIC KEY-----\n'
jwt.decode(token, certs=cert)
Но получил следующую ошибку:
/tests/jwt/google_auth/venv/lib/python3.5/site-packages/rsa/pem.py", line 92, in load_pem
raise ValueError('No PEM start marker "%s" found' % pem_start)
ValueError: No PEM start marker "b'-----BEGIN RSA PUBLIC KEY-----'" found
, что заставляет меня задуматься, почему модуль jwt не может декодировать токен, созданный с помощью алгоритма EC256, поскольку этот алгоритм используется в Google IAP.
Значит, у кого-нибудь есть идея, почему это происходит?
Можете ли вы порекомендовать альтернативу?
Примечание : В поисках других альтернатив я также нашел реализацию Python ecdsa , но мне не разрешено использовать эту (команда безопасности не разрешит эту).