Спецификация: draft-ietf-oauth-v2-1 (Internet-Draft, работа продолжается)
Versola — сервер OAuth 2.0 (RFC 6749). OAuth 2.1 — незавершенный черновик, который объединяет RFC 6749 с рекомендациями по безопасности, выпущенными с тех пор; эта страница фиксирует, какие его требования Versola уже выполняет. Страница следует черновику в его нынешнем виде и может отставать от него.
Статус
Реализован частично. Отмечено пунктов: 6 из 8.
Обязательный PKCE
- PKCE обязателен для публичных клиентов, для каждого клиента тенанта
fapi2и для клиентов приложений заedge - PKCE обязателен для каждого authorization code flow — не для confidential-клиентов тенанта
standard: они могут его опустить, потому что client secret уже доказывает, кто обменивает code
Удаленные grant type
Следующие grant type удалены черновиком и не реализованы:
-
Implicit Grant— уязвим к утечке токенов -
Resource Owner Password Credentials Grant— поощряет передачу пароля
Более строгая работа с токенами
- Access token принимаются только в заголовке
Authorization(схемаBearerилиDPoP) на/userinfo - Токены в параметрах URL или в теле запроса отклоняются
- Ротация refresh token с обнаружением повторного использования — предъявление уже ротированного токена отзывает все семейство токенов; refresh token с привязкой к отправителю продлеваются на месте
Сопоставление redirect URI
- Точное совпадение строк для redirect URI
- Обычный
httpдопускается только для loopback-хостов (localhost,127.0.0.1,[::1]) - Loopback-редирект с любым портом (RFC 8252 §7.3) — каждый loopback URI, включая порт, регистрируется и сравнивается точно
Примечания
- Authorization request принимают только PKCE
S256. Черновик допускает иplain, если нет поддержкиS256; Versola его не предлагает. - Профиль
standardотступает от черновика в PKCE для confidential-клиентов, как описано выше. Профильfapi2— нет.
Куда смотреть
Профили безопасности показывают, чем standard и fapi2 различаются в PKCE и аутентификации клиентов.