Перейти до вмісту
HRC pagalba
Зміст документації

OAuth для розробників AI-застосунків

Оновлено

Ця сторінка для тих, хто створює AI-застосунок або MCP-клієнт. Якщо ви лише підключаєте свій застосунок, читайте Підключення AI-агента через MCP.

MCP-сервер HRC pagalba використовує OAuth 2.1 з динамічною реєстрацією клієнта (RFC 7591) і PKCE. Секрету клієнта немає (token_endpoint_auth_method: none).

Виявлення

Виклик без токена отримує 401 із посиланням на опис ресурсу:

sh
curl -s -i https://mcp.hrc.lt/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"ping"}' | grep -i www-authenticate
# WWW-Authenticate: Bearer resource_metadata=
#   "https://mcp.hrc.lt/.well-known/oauth-protected-resource/mcp"

curl -s https://mcp.hrc.lt/.well-known/oauth-protected-resource/mcp
curl -s https://mcp.hrc.lt/.well-known/oauth-authorization-server

Реєстрація клієнта

Від 1 до 20 redirect_uris: https, http лише на localhost, 127.0.0.1 або [::1], або власна схема застосунку (наприклад cursor://...).

sh
curl -s https://mcp.hrc.lt/oauth/register \
  -H "Content-Type: application/json" \
  -d '{
    "client_name": "My AI app",
    "redirect_uris": ["https://app.example.com/oauth/callback"]
  }'
# 201 {"client_id":"...","token_endpoint_auth_method":"none",
#   "grant_types":["authorization_code","refresh_token"], ...}

Авторизація з PKCE

Спрямуйте користувача на адресу авторизації з code_challenge_method=S256:

text
https://mcp.hrc.lt/oauth/authorize
  ?response_type=code
  &client_id=CLIENT_ID
  &redirect_uri=https%3A%2F%2Fapp.example.com%2Foauth%2Fcallback
  &code_challenge=BASE64URL_SHA256_OF_VERIFIER
  &code_challenge_method=S256
  &state=RANDOM_STATE
  &resource=https%3A%2F%2Fmcp.hrc.lt%2Fmcp

Користувач входить у https://app.hrc.lt і у вікні згоди вибирає наявного AI-агента або створює нового (за замовчуванням із набором «Щодня»), потім натискає «Дозволити». Запит дійсний 10 хвилин, отриманий код 5 хвилин і лише один раз.

Вікно згоди з назвою AI-застосунку

Токени

Токен доступу (hrc_oat_...) дійсний 1 годину, потім оновіть його за допомогою refresh_token. Після оновлення старий токен доступу одразу перестає працювати.

sh
curl -s https://mcp.hrc.lt/oauth/token \
  -d grant_type=authorization_code \
  -d code=CODE \
  -d client_id=CLIENT_ID \
  -d code_verifier=VERIFIER \
  -d redirect_uri=https://app.example.com/oauth/callback
# {"access_token":"hrc_oat_...","token_type":"Bearer","expires_in":3600,
#   "refresh_token":"...","scope":"hrc"}

curl -s https://mcp.hrc.lt/oauth/token \
  -d grant_type=refresh_token \
  -d refresh_token=REFRESH_TOKEN \
  -d client_id=CLIENT_ID

Виклик MCP

sh
curl -s https://mcp.hrc.lt/mcp \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
    "params":{"name":"whoami","arguments":{}}}'

Помилки

  • Реєстрація: invalid_redirect_uri, invalid_client_metadata.
  • Токен: invalid_request, invalid_grant, invalid_client, unsupported_grant_type, invalid_target.
  • Невідомий client_id або незареєстрований redirect_uri під час авторизації показує сторінку помилки, без перенаправлення.

Не знайшли відповіді? Напишіть нам