Невозможно проверить JWT, исходящий из AWS ALB-аутентификации - PullRequest
2 голосов
/ 16 февраля 2020

Я работаю с Elixir, используя пакет JOSE . У меня есть ALB, который использует правило прослушивателя аутентификации , и данные, которые я получаю в x-amzn-oidc-data, должны быть JWT, содержащими заявки пользователей. Однако, хотя это значение в основном в формате JWT, оно кодируется URL-адресом base64, но с заполнением . Таким образом, JOSE не может проверить большинство входящих токенов (если токен приходит без заполнения, JOSE проверяет это без проблем).

Я думал, что мог бы это исправить, просто убрав символы = из токен в заголовке, полезной нагрузке и подписи, однако ни одна из этих комбинаций не работает.

Я использовал jwt.io, чтобы попытаться отладить токен, и жалуется, что подпись становится недействительной, если я пытаюсь убрать = символов из полезной нагрузки (только?) . Однако я попытался проверить токен с помощью библиотеки Python JOSE и библиотеки Javascript JOSE , и оба способны. Опять же, если я уберу символы дополнения из полезной нагрузки, обе эти библиотеки сообщат мне, что проверка подписи не удалась. Я должен оставить его для подписи от go до.

Есть ли способ преобразовать этот токен в формат, который не содержит отступы и может быть проверен пакетом Elixir JOSE? Я попытался перепроектировать, как эти библиотеки могут декодировать токены, в то время как другие терпят неудачу, но мне не повезло.

Просто для наглядного примера, так должны выглядеть токены

eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.tyh-VfuzIxCyGYDlkBA7DfyjrqmSHu6pQ2hoZuFqUSLPNY2N0mpHb3nk5K17HWP_3cYHBw7AhHale5wky6-sVA

, но ALB отправляет мне вещи, которые выглядят как (обратите внимание на добавленные символы в полезной нагрузке и подписи)

eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0==.tyh-VfuzIxCyGYDlkBA7DfyjrqmSHu6pQ2hoZuFqUSLPNY2N0mpHb3nk5K17HWP_3cYHBw7AhHale5wky6-sVA==
...