OAuth
Зачем
- Authorization framework, not an authentication protocol (например OIDC) для обеспечения информационной безопасности.
- Нужен, чтобы получать токены доступа и с ними обращаться к ресурсам.
- RBAC\ABAC и тп
- TODO
- Flow-Grants:
- Public Client
Параметры Flow
Основные параметры Flow
- Authorization Code - обменивается в Authorization Code Flow на AccessToken
- Scope - получение данных Resource с учетом доступа Scope
- Access Token (формат JWT не обязателен) - for accessing a resource. A JWT token used in Oauth and OpenID connect scenarios and intended to be consumed by the resource.
- Refresh Token
Security
- Время жизни ограничено Expiration
- Валидация
- Подписание JSON Web Signature (JWS)
- Шифрование JSON Web Encryption (JWE)
Виды атак
- Replay attack
MitM
MitM Перехват токена
- Решение HTTPS
- Refresh Token
- Закрепление сертификата X.509 Certificate Pinning from Android API 24
- шифрование токенов JWE assymetric RSA
- подписание токенов JWS assymetric RSA