Чувствительность к регистру в заголовке настраиваемой авторизации AWS API Gateway

AWS API Gateway предоставляет возможность использовать настраиваемый авторизация через лямбда-функцию. При таком подходе ожидается, что пользователь настроит собственное имя заголовка (пример: Авторизация или Auth). Это значение заголовка извлекается шлюзом и передается в Lambda Event.

Однако шлюз ищет входящие заголовки с учетом регистра. То есть, если пользователь указывает заголовок как авторизация вместо Авторизация, шлюз возвращает 401. Почему этот поиск чувствителен к регистру, когда протокол http заявляет, что заголовки могут быть нечувствительными к регистру.


person suman j    schedule 02.08.2016    source источник


Ответы (2)


Да, это известная проблема с авторизатором клиентов, а также с функцией сопоставления заголовков в API Gateway. Соответствия заголовков чувствительны к регистру, что, как вы заявили, противоречит спецификации. У меня нет ETA, чтобы исправить это, но это известная проблема, которую мы хотели бы исправить.

Изменить: теперь это должно быть решено. При совпадении заголовка настраиваемого авторизатора регистр не учитывается.

person jackko    schedule 02.08.2016
comment
Мне кажется, это чувствительно к регистру. Использование авторизатора REQUEST с заголовком авторизации, определенным как источник идентификации (определенный через cloudformation / sam). - person monkut; 28.02.2021
comment
Определение заголовков как авторизации: docs.aws.amazon.com/serverless-application-model/latest/ - person monkut; 28.02.2021

Я подозреваю, что у вас, вероятно, есть method.request.header.Authorization в поле "источник токена идентичности", а не method.request.header.authorization (см. Прикрепленное изображение). Возможно, дело не в том, что AWS не следует стандарту заголовков, а скорее в том, что он соответствует тому, что вы сказали ему искать ...

Проверьте это изображение для настроек соответствия заголовков

Интересно, можно ли использовать регулярное выражение без учета регистра, как в других полях сопоставления запроса / ответа заголовка, которые использует шлюз API. Может что-то вроде /(?i)authorization/. (чистое предположение)

смотрите также:

сообщение в блоге о настраиваемых авторизаторах в шлюзе api < / а>

person scottsanchez    schedule 02.08.2016