Przejdź do treści
HRC pagalba
Spis dokumentacji

OAuth dla twórców aplikacji AI

Zaktualizowano

Ta strona jest dla osób, które tworzą aplikację AI lub klienta MCP. Jeśli tylko podłączasz swoją aplikację, przeczytaj Podłączanie agenta AI przez MCP.

Serwer MCP HRC pagalba używa OAuth 2.1 z dynamiczną rejestracją klienta (RFC 7591) i PKCE. Nie ma sekretu klienta (token_endpoint_auth_method: none).

Wykrywanie

Wywołanie bez tokenu dostaje 401 z linkiem do opisu zasobu:

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

Rejestracja klienta

Od 1 do 20 redirect_uris: https, http tylko na localhost, 127.0.0.1 lub [::1], albo własny schemat aplikacji (np. 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"], ...}

Autoryzacja z PKCE

Skieruj użytkownika na adres autoryzacji z 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

Użytkownik loguje się do https://app.hrc.lt i w oknie zgody wybiera istniejącego agenta AI albo tworzy nowego (domyślnie z zestawem „Na co dzień”), potem naciska „Zezwól”. Prośba jest ważna 10 minut, otrzymany kod 5 minut i tylko raz.

Okno zgody z nazwą aplikacji AI

Tokeny

Token dostępu (hrc_oat_...) jest ważny 1 godzinę, potem odśwież go przez refresh_token. Po odświeżeniu stary token dostępu od razu przestaje działać.

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

Wywołanie 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":{}}}'

Błędy

  • Rejestracja: invalid_redirect_uri, invalid_client_metadata.
  • Token: invalid_request, invalid_grant, invalid_client, unsupported_grant_type, invalid_target.
  • Nieznany client_id lub niezarejestrowany redirect_uri przy autoryzacji pokazuje stronę błędu, bez przekierowania.

Nie ma tu odpowiedzi? Napisz do nas