Может ли токен доступа OAuth 2.0 быть JWT?

Из того, что я могу сказать,спецификация OAuth 2.0 очень расплывчато с точки зрения того, что образуютaccess token должен взять:

Маркер может обозначать идентификатор, используемый для извлечения информации авторизации, или может содержать информацию авторизации самодостаточным образом (то есть строку токена, состоящую из некоторых данных и подписи). Дополнительные учетные данные аутентификации, которые выходят за рамки данной спецификации, могут потребоваться для того, чтобы клиент использовал токен.

Маркер доступа обеспечивает уровень абстракции, заменяя различные конструкции авторизации (например, имя пользователя и пароль) одним токеном, понятным для сервера ресурсов. Эта абстракция позволяет выдавать маркеры доступа более ограниченно, чем разрешение на использование, используемое для их получения, а также устраняет необходимость сервера ресурсов понимать широкий спектр методов аутентификации.

Жетоны доступаможет иметь разные форматы, структурыи способы использования (например, криптографические свойства) на основе требований безопасности сервера ресурсов.Доступ к атрибутам токена и методы, используемые для доступа к защищенным ресурсамвыходят за рамки этой спецификации и определяются сопутствующими спецификациями, такими какRFC6750.

(выделение добавлено)

Связанный RFC6750 не обладает особой спецификой. Существует пример тела ответа HTTP, который показывает:

{
       "access_token":"mF_9.B5f-4.1JqM",
       "token_type":"Bearer",
       "expires_in":3600,
       "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA"
     }

Кажется, это указывает на то, что access_token может быть непрозрачным текстом ASCII, таким как закодированныйВеб-токен JSON (JWT)

С моей точки зрения кажется, что JWT-as-access_token обладает некоторыми желательными свойствами:

Это известная спецификация с достаточно широким распространением и клиентскими библиотеками, доступными на многих языках.

Это позволяет легко подписывать и проверять, используя проверенные криптографические библиотеки.

Поскольку он может быть декодирован в JSON, он позволит нам включать метаданные и информацию о токене в сам токен.

Мои вопросы: во-первых, допустимо ли, чтобы токен доступа был JWT? Во-вторых, если это допустимо в соответствии со спецификацией, есть ли дополнительные соображения, которые могут сделать использование JWT в качестве маркера доступа плохой идеей?

Ответы на вопрос(2)

Ваш ответ на вопрос