Sistemul de Autentificare Emby
1. Arhitectura de Bază a Autentificării Emby
1.1 Componentele Sistemului de Autentificare
Emby folosește un sistem hibrid de autentificare cu următoarele componente:
- Emby Server Authentication Engine - Motorul principal de autentificare
- Local User Database - Baza de date locală cu utilizatori
- Emby Connect Service - Serviciul global de autentificare
- Token Management System - Sistemul de gestionare a token-urilor
2. Protocolul de Autentificare Emby
2.1 Autentificare Locală
Când un utilizator se autentifică local pe serverul Emby:
POST /Users/AuthenticateByName
Content-Type: application/json
{
"Username": "nume_utilizator",
"Pw": "parola"
}Serverul Emby procesează cererea:
- Verifică credențialele în baza de date locală
- Validează hash-ul parolei
- Generează un AccessToken unic
- Returnează detaliile utilizatorului și token-ul
2.2 Răspunsul de Autentificare
{
"User": {
"Id": "user_id",
"Name": "nume_utilizator",
"HasPassword": true,
"HasConfiguredPassword": true
},
"SessionInfo": {
"PlayState": {},
"AdditionalUsers": [],
"Capabilities": {}
},
"AccessToken": "access_token_string",
"ServerId": "server_id"
}3. Sistemul Emby Connect
3.1 Autentificare cu Emby Connect
Emby Connect permite autentificarea unică across multiple servers:
POST /Users/AuthenticateWithConnect
{
"ConnectUsername": "email@example.com",
"ConnectPassword": "parola_connect"
}3.2 Linkarea Conturilor
Pentru a lega un cont local de Emby Connect:
POST /Users/{UserId}/Connect/Link
{
"ConnectUsername": "email@example.com",
"ConnectPassword": "parola_connect"
}4. Managementul Token-urilor și Sesțiunilor
4.1 Structura Token-urilor Emby
Emby folosește token-uri de acces cu următoarele caracteristici:
- Token-uri unice generate pentru fiecare sesiune
- Valabilitate configurată în server settings
- Asociate cu dispozitivul și aplicația client
4.2 Verificarea Token-urilor
Toate cererile autentificate folosesc header-ul:
X-Emby-Token: access_token_string
Serverul verifică token-ul la fiecare request:
- Validează semnătura token-ului
- Verifică expirarea
- Confirmă asocierea cu utilizatorul
- Verifică permisiunile
5. Securitatea în Emby
5.1 Storage-ul Parolelor
Emby folosește algoritmi moderni pentru parole:
- Hash-uri securizate cu salt unic
- Algoritmi PBKDF2 sau bcrypt
- Policy de complexitate configurată
5.2 Protecție împotriva Atacurilor
- Rate limiting pentru autentificări eșuate
- Lockout temporar după multiple încercări
- Validare input pentru prevenirea injection
- Logging extensiv al activității de autentificare
6. Fluxurile de Autentificare
6.1 Autentificare Inițială
- Clientul trimite cerere de autentificare
- Serverul validează credențialele
- Generează token de acces
- Returnează datele sesiunii
- Clientul stochează token pentru cereri viitoare
6.2 Autentificare cu Emby Connect
- Clientul trimite credențiale Emby Connect
- Serverul validează cu serviciul Connect
- Caută utilizatorul local asociat
- Generează token pentru sesiunea locală
- Returnează acces la serverul local
7. API-urile Principale de Autentificare
7.1 Endpoint-uri Cheie
- POST /Users/AuthenticateByName - Autentificare locală
- POST /Users/AuthenticateWithConnect - Autentificare Connect
- POST /Users/{UserId}/Connect/Link - Linkare cont
- POST /Sessions/Logout - Închidere sesiune
- GET /Users/{UserId} - Verificare sesiune
7.2 Header-uri de Autentificare
X-Emby-Authorization: MediaBrowser Client="ClientName", Device="DeviceName",DeviceId="device_id", Version="client_version" X-Emby-Token: access_token
8. Gestionarea Sesțiunilor
8.1 Tracking Sesțiuni Active
Emby ține evidența sesiunilor active cu:
- Detalii despre dispozitiv
- Timpul de autentificare
- Ultima activitate
- Starea de redare curentă
Acest sistem oferă o autentificare robustă și flexibilă pentru platforma Emby, suportând atât utilizatori locali cât și autentificarea globală prin Emby Connect.