API / Auth / MCP
OAuth Discovery
Автоматическое обнаружение OAuth 2.0 endpoints через /.well-known/oauth-authorization-server (RFC 8414).
Что такое OAuth Discovery?
OAuth Discovery — механизм автоматического обнаружения OAuth 2.0 Authorization Server через JSON-документ по адресу /.well-known/oauth-authorization-server (RFC 8414) или /.well-known/openid-configuration (OIDC). Содержит все нужные endpoints, чтобы агент мог инициировать OAuth flow без ручной настройки.
{
"issuer": "https://example.com",
"authorization_endpoint": "https://example.com/oauth/authorize",
"token_endpoint": "https://example.com/oauth/token",
"jwks_uri": "https://example.com/.well-known/jwks.json",
"scopes_supported": ["read", "write"],
"response_types_supported": ["code"]
}
Зачем нужен OAuth Discovery?
AI-агентам, которым нужен авторизованный доступ к API, необходимо найти OAuth Authorization Server. Без discovery агент требует явной конфигурации от пользователя — это блокирует автономную работу.
С OAuth Discovery агент:
- Получает домен сервиса
- Запрашивает
/.well-known/oauth-authorization-server(или/.well-known/openid-configuration) - Читает
authorization_endpointиtoken_endpoint - Инициирует OAuth flow без участия человека
Особенно важно для MCP-серверов: спецификация MCP требует OAuth Discovery для авторизованных серверов.
Как реализовать OAuth Discovery?
Большинство OAuth-провайдеров публикуют discovery автоматически:
| Провайдер | URL |
|---|---|
| Auth0 | https://<tenant>.auth0.com/.well-known/openid-configuration |
| Keycloak | https://<host>/realms/<realm>/.well-known/openid-configuration |
| Okta | https://<tenant>.okta.com/.well-known/oauth-authorization-server |
Если используете собственный OAuth-сервер, опубликуйте JSON по /.well-known/oauth-authorization-server. Обязательные поля по RFC 8414:
issuer— базовый URL вашего сервераauthorization_endpoint— URL для авторизацииtoken_endpoint— URL для получения токенаjwks_uri— URL с публичными ключами
Для защищённых ресурсов дополните OAuth Protected Resource Metadata (RFC 9728), указывающим на Authorization Server.
Как мы проверяем OAuth Discovery?
Сканер проверяет два пути в порядке приоритета:
/.well-known/openid-configuration/.well-known/oauth-authorization-server
Для каждого пути:
- HTTP 200 — документ доступен
- Валидный JSON — тело парсится без ошибок
- Обязательные поля — присутствуют
issuer,authorization_endpoint,token_endpoint,jwks_uri
pass — хотя бы один путь вернул HTTP 200 с корректным JSON и всеми четырьмя полями. fail — ни один путь не отвечает или отсутствуют обязательные поля.