Un plugin comunitar adaugă liste de permisiuni pentru fiecare cheie API Jellyfin
În Jellyfin, orice cheie API pe care o creezi are aceeași greutate ca o cheie de administrator. Un dezvoltator comunitar a considerat asta suficient de incomod încât să construiască o soluție și a publicat-o acum ca versiune timpurie: API Key Middleware, cu o cerere deschisă de feedback.
Cum funcționează limitarea
Fiecare cheie primește propria listă de permisiuni, construită dintr-o metodă HTTP asociată cu o cale. Implementarea este intenționat graduală:
- O cheie nou creată începe în modul audit, astfel încât cererile trec neatinse.
- După câteva zile de utilizare normală, vizitezi constructorul de reguli din pagina pluginului. Apelurile pe care cheia le-a făcut efectiv sunt preselectate.
- Verifici selecția, treci cheia în enforce, iar orice cerere din afara listei primește un 403.
Pluginul afișează fiecare endpoint expus de server, fiecare cu descrierea proprie din Jellyfin. Endpointurile rezervate administratorului sunt marcate, la fel și cele pe care o anumită cheie a fost observată că le accesează. Domeniul de aplicare se limitează la cheile API: sesiunile utilizatorilor și traficul anonim rămân neatinse.
Pe cine afectează
Pe oricine emite chei pentru dashboarduri, agenți de monitorizare sau scripturi de automatizare. Autorul l-a scris inițial pentru un singur server, motivat de riscul ca un singur fișier de configurare expus să ofere acces la tot, iar apoi l-a pregătit pentru un public mai larg.
Aspecte de reținut
- Dezvoltarea și testarea au avut loc pe Jellyfin 12.4.0.
- Eșuează în siguranță deschisă: dezactivarea pluginului sau o eroare de încărcare, de exemplu după un upgrade Jellyfin, restaurează accesul complet pentru fiecare cheie. Confirmă că apare ca Active după actualizare.
- Restrânge ce pot face cheile; nu înlocuiește actualizările Jellyfin, un firewall sau un VPN.
- Autorul declară deschis că lucrarea a fost realizată împreună cu Claude (AI-ul de la Anthropic) prin Claude Code, care a acoperit o parte mare a implementării, testării și revizuirii de securitate, în timp ce autorul a stabilit direcția, a luat deciziile și a validat totul pe propriul server.
Codul este GPL-3.0. Se dorește feedback despre ocoliri (metode de autentificare, cazuri limită de rutare), despre utilizabilitate și despre comportamentul pe alte configurații; raportările de securitate trebuie trimise prin canalul privat al GitHub.
Comentariu pentru cei care își găzduiesc singuri serviciile
Cheile API cu permisiuni limitate sunt o lacună pe care mulți dintre noi am tolerat-o ani de zile, așa că acesta este un pas în direcția bună. Tratează-l ca un singur strat de întărire, nu ca un perimetru: deoarece eșuează în siguranță deschisă, o eroare de încărcare tăcută după un upgrade readuce discret accesul complet, așa că adaugă o verificare „este pluginul Active?” în rutina ta de după actualizare. Rulează mai întâi în modul audit, lasă traficul real să se acumuleze, apoi aplică regulile și urmărește logurile pentru erori 403 neașteptate. Dacă folosești mai multe pluginuri care comunică cu API-ul Jellyfin, pagina noastră de pluginuri Jellyfin arată cum gestionăm compatibilitatea.