Проверьте JWT, используя библиотеку Google Auth. - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь проверить 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 , но мне не разрешено использовать эту (команда безопасности не разрешит эту).

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Ну, по-видимому, невозможно проверить JWT, используя ES256 с google auth: https://github.com/googleapis/google-auth-library-python/issues/336#issuecomment-486748042

Так что, если кто-то пытается это сделать с помощью движка приложений, ваша единственная альтернатива это: https://github.com/warner/python-ecdsa

0 голосов
/ 24 апреля 2019

Вам необходимо удалить эти разделы -----BEGIN RSA PUBLIC KEY----- и -----END PUBLIC KEY----- из ключа до

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...