Как сервер ресурсов в системе аутентификации OAuth проверяет маркер?

Я знаю, что есть похожий вопрос на

http://stackoverflow.com/questions/12296017/how-to-validate-an-oauth-2-0-access-token-for-a-resource-server

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

2 ответа

  1. Я думаю, что Вы путаете маркер доступа с авторизацией .

    Когда пользователь аутентифицируется на сервере авторизации (AS), сервер генерирует так называемый грант авторизации, который содержит всю соответствующую информацию, такую как область, издатель, срок действия и т. д. В большинстве реализаций гранты thess будут сохраняться в базе данных или аналогичном постоянном хранилище. Маркер доступа, который клиент получает, а затем отправляет на сервер ресурсов (RS), будет просто какой-то непрозрачной строкой, которая однозначно идентифицирует действительное разрешение на авторизацию, созданное AS. Таким образом, маркер доступа сам по себе не имеет никакого значения.

    Это означает, что RS не имеет никакого способа проверки маркеров доступа сам по себе, только как делает. RS может проверить синтаксис, но ему нужно будет отправить маркер доступа в AS для проверки. Это взаимодействие между RS и AS не является частью стандарта OAuth 2.0, как указано в ответе, который вы опубликовали, и это зависит от реализации AS, чтобы решить, как выполнить эту задачу.

    Даже если вы правы, когда говорите, что любой хакер может генерировать токены произвольного доступа только так, как может генерировать и сохранять гранты авторизации. Это основная причина, по которой ваш RS должен всегда обращаться в AS, чтобы проверить действительность разрешения на авторизацию, связанного с маркером доступа, прежде чем предоставлять доступ к любому ресурсу.

    Надеюсь, это прояснит ваш вопрос.

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

    https://jwt.io

    чтобы проверить подпись токена jwt, предоставив секретный ключ, он проверит его, и секретный ключ создается в oauth при создании идентификатора guid (Client Id).