HTTP-заголовок, позволяющий клиенту выбрать алгоритм JWT - PullRequest
0 голосов
/ 12 октября 2018

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

Я не могу изменить структуру запроса, но могу добавить заголовок HTTP с именем алгоритма.У меня вопрос какой заголовок выбрать?Будет ли Accept приемлемым?

В настоящее время я использую заголовок Accept-Token-Algorithm для отправки значений, таких как RS256 и HS256.

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Если вам необходимо добавить пользовательский заголовок к вашему запросу, см. Пользовательские заголовки HTTP: соглашения об именах

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

API, принимающие этот токен, должны иметь возможность проверить подпись этого токена.Таким образом, именно API, использующие этот токен, должны иметь возможность принимать тот же алгоритм шифрования и иметь доступ к соответствующим открытым ключам (или общим секретам), которые использовались при выдаче токена.

Если содержимое токена(полезная нагрузка) полезна для посредников, ее можно декодировать (base64), не зная об алгоритме шифрования, используемом для подписи ключа.

Если токен выдан для сторонней службы (например, в oauth2)протокол), токен должен быть непрозрачным для актеров такого типа.

0 голосов
/ 18 октября 2018

Мой вопрос: какой заголовок выбрать?Будет ли Accept приемлемым?

Для этой цели нет стандартного заголовка .

Если и клиент и сервер согласны с Accept-Token-Algorithm, то это представляется разумным выбором.Более описательные (и подробные) альтернативы будут Accept-Token-Signature-Algorithm (при условии, что JWT на самом деле является JWS) и Accept-Token-Encryption-Algorithm (для JWE).

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


Вам также следует рассмотреть возможность возврата к алгоритму по умолчанию, если в запросе отсутствует требуемый заголовок, и убедиться, что вы проверяете полученные значения.Обратитесь к RFC 7518 для получения списка допустимых алгоритмов для каждой цели:


Посмотрите эту страницу для получения подробной информации о том, как выбратьалгоритмы для JWT.

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