OAuth / OpenID Connect, как выбрать ключ в JWK, если токен не имеет дочернего элемента в заголовке? - PullRequest
0 голосов
/ 30 марта 2019

Скажем, у меня есть два ключа в моем JWK, но у токена, который я пытаюсь проверить, нет заголовка в заголовке. Как определить, какой ключ использовать?

Ответы [ 2 ]

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

Маркер JWT будет содержать заголовок 'alg', и аналогично JWKS имеет параметры 'use' и 'alg'.Вместо зацикливания всех ключей в JWKS вы можете сравнить заголовок JWT 'alg' и JWKS alg, чтобы выяснить, какой ключ использовать.В случае, если у вас есть несколько ключей, которые соответствуют параметрам «use» и «alg» в JWKS, зациклите только эти соответствующие ключи для проверки токена.

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

В токене могут быть другие методы для идентификации ключа, такие как отпечаток большого пальца (x5t в JWT) или сам открытый ключ (если вы можете сравнить его с чем-то, что было обменено вне полосы) или URL, гдематериал ключа может быть восстановлен (jwks_uri при обмене вне диапазона).Если такой ссылки вообще нет, вы можете перебрать все ключи, которые, как вы знаете, являются действительными ключами для отправителя, и посмотреть, можно ли использовать один из них для проверки токена.

...