eLearning.edu.pl API
ENPL

Uwierzytelnianie

Klient integracji uwierzytelnia się kluczem API albo przez OAuth 2.0 client credentials. Obie metody używają tego samego sekretu; administrator IT decyduje, które z nich klient może stosować.

Klucz API

Wysyłaj sekret w każdym żądaniu:

GET /api/v1/users HTTP/1.1
Host: https://api.elearning.edu.pl
X-Tenant-Code: your-tenant
X-API-Key: lms_live_xxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

OAuth 2.0 client credentials

Wymień identyfikator klienta i sekret na token typu bearer (RFC 6749 §4.4), a potem używaj tokenu do czasu jego wygaśnięcia:

BASE_URL="${BASE_URL:-https://api.elearning.edu.pl}"

# 1. Exchange the client id and secret for a 15-minute token.
TOKEN=$(curl --fail-with-body -sS "$BASE_URL/api/v1/oauth/token" \
  -H "X-Tenant-Code: $TENANT_CODE" \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  --data-urlencode grant_type=client_credentials \
  --data-urlencode "scope=users:read compliance:read" | jq -r .access_token)

# 2. Use the token until it expires.
curl --fail-with-body -sS "$BASE_URL/api/v1/compliance/matrix?limit=10" \
  -H "X-Tenant-Code: $TENANT_CODE" \
  -H "Authorization: Bearer $TOKEN"
{"access_token": "eyJ…", "token_type": "Bearer", "expires_in": 900, "scope": "users:read compliance:read"}
GET /api/v1/compliance/matrix HTTP/1.1
Host: https://api.elearning.edu.pl
X-Tenant-Code: your-tenant
Authorization: Bearer eyJ…
  • Token jest ważny 15 minut. Używaj go ponownie aż do wygaśnięcia; punkt wydawania tokenów pozwala na 10 tokenów na minutę na klienta.
  • scope jest opcjonalny; domyślnie token dostaje wszystkie zakresy klienta.
  • Stan klienta (wyłączony, unieważniony sekret, lista adresów IP, data ważności) jest sprawdzany przy każdym żądaniu, więc unieważnienie klienta działa od razu — także dla wydanych już tokenów.

Błędy uwierzytelniania

Nieudane uwierzytelnienie zwraca 401 bez podania przyczyny (zły sekret, klient wygasły lub wyłączony, adres spoza listy) — celowo. Punkt wydawania tokenów zwraca błędy OAuth (invalid_client, invalid_scope, …) zgodnie z RFC 6749 §5.2.

SCIM

Dostawcy tożsamości (np. Microsoft Entra ID) używają klienta z zakresem scim. Skonfiguruj dostawcę tak:

  • Tenant URL: https://api.elearning.edu.pl/scim/v2/your-tenant
  • Secret token: sekret klienta (długoterminowy) albo token OAuth.