48 lines
2.5 KiB
Markdown
48 lines
2.5 KiB
Markdown
---
|
|
title: OAuth 2.0
|
|
status: seed
|
|
type: concept
|
|
tags: [web, security, oauth, authorization]
|
|
created: 2026-06-04
|
|
updated: 2026-06-04
|
|
source: "[[00_базовые_понятия.pdf]]"
|
|
aliases:
|
|
- OAuth 2
|
|
- OAuth 2.0
|
|
---
|
|
# OAuth 2.0
|
|
|
|
OAuth 2.0 — протокол авторизации, который позволяет приложению получить ограниченный доступ к ресурсам пользователя на другом сервисе без передачи пароля пользователя этому приложению.
|
|
|
|
## Где встречается
|
|
|
|
- вход на сайт через Google, GitHub, VK или другую внешнюю учётную запись;
|
|
- мобильное приложение получает доступ к данным в облаке;
|
|
- бот или интеграция получает доступ к API сервиса.
|
|
|
|
## Главная идея
|
|
|
|
Пользователь подтверждает доступ на стороне сервиса-владельца данных. Клиентское приложение получает токен и использует его для запросов к API.
|
|
|
|
Пароль пользователя при этом остаётся у сервиса-источника, а стороннее приложение получает только ограниченное разрешение.
|
|
|
|
## Участники
|
|
|
|
- Resource Owner — владелец ресурса, обычно пользователь.
|
|
- Client — приложение, которому нужен доступ.
|
|
- Authorization Server — сервер, который выдаёт токены.
|
|
- Resource Server — API, который принимает токен и отдаёт защищённые данные.
|
|
|
|
## Токены
|
|
|
|
- Access token — используется для доступа к API.
|
|
- Refresh token — используется для получения нового access token без повторного входа пользователя.
|
|
- Scope — набор разрешений, ограничивающий действия клиента.
|
|
|
|
OAuth 2.0 — про авторизацию. Сам по себе он не обязан доказывать личность пользователя как протокол аутентификации; для входа поверх OAuth обычно используют OpenID Connect.
|
|
|
|
## Связи
|
|
|
|
- [[Веб-аутентификация и авторизация]]
|
|
- [[HTTP, HTTPS и HTTP3]]
|