ID Token нужен клиенту для результата входа, токен доступа — API для защищённого запроса. Тип и получатель проверяются по разным профилям.
ID Token
Определение
ID Token — JWT с утверждениями о том, что сервер авторизации проверил пользователя. Он предназначен клиенту как результат входа, а не ресурсному серверу вместо токена доступа.
Также ищут: OIDC ID Token · идентификационный токен · результат проверки OIDC
Зачем это знать
Клиент должен проверить результат входа и его связь с запросом. Для прикладного API отдельно нужны подходящие учётные данные и разрешение на действие.
Карта понятия
Сравнить
Что подтверждено
ID Token — JWT с утверждениями о проверке конечного пользователя сервером авторизации и, при запросе, другими сведениями.
Граница применимости: Определение ID Token в OpenID Connect.
Ресурсный сервер должен различать ID Token и токен доступа JWT по типу, получателю и профилю проверки, а не принимать любой подписанный JWT.
Граница применимости: ID Token OIDC и токен доступа по RFC 9068.
Получатели ID Token должны включать идентификатор клиента, для которого он выпущен. Клиент проверяет его по правилам OIDC, включая издателя, получателя и срок; один факт декодирования не подтверждает вход.
Граница применимости: ID Token по OpenID Connect Core 1.0; дополнительные правила нескольких получателей и azp применяются по профилю.
Если клиент передал nonce в запросе OIDC, ID Token должен содержать то же значение, и клиент проверяет совпадение. Наличие произвольного поля nonce без связи с исходным запросом не выполняет эту проверку.
Граница применимости: Связывание запроса и ответа OIDC; обязательность самого запроса nonce зависит от используемого потока.
Проверенный ID Token предназначен клиенту как результат проверки пользователя. Для вызова API нужен подходящий токен доступа и отдельное решение о разрешённых действиях; вход не выдаёт пользователю доступ ко всем объектам.
Граница применимости: Редакторское разделение результата входа OIDC и проверки токена доступа API по RFC 9068.
Не путать
OIDC задаёт поток проверки пользователя, ID Token переносит его результат клиенту в формате JWT. Разбор формата ещё не выполняет проверку результата.
Что проверить
- Определите клиент OIDC.
- Проверьте издателя и правила подписи потока.
- Сверьте идентификатор клиента среди получателей.
- Проверьте срок действия.
- Сверьте nonce, если он передавался.
- Примените дополнительные правила профиля.
- Отправляйте API подходящий токен доступа.
Первоисточники
- JSON Web Token Profile for OAuth 2.0 Access Tokens
Профилирует JWT access token: at+jwt type, required iss/exp/aud и resource-server validation, отличая его от ID Token.
- JSON Web Token
Определяет compact JWT format и registered claims issuer, subject, audience, expiration, not-before, issued-at и JWT ID.