Pe un server Matrix auto-găzduit, „restricționarea înregistrării” poate însemna orice, de la oprirea tuturor înscrierilor publice până la permiterea accesului doar al persoanelor care au un cod de invitație. Pentru Synapse, cea mai simplă alegere este dezactivarea înregistrării publice. Dacă doriți în continuare să se alăture persoane noi, solicitați token-uri de înregistrare și oferiți fiecărei persoane un token limitat, care expiră. Aceste controale afectează crearea de noi conturi locale; nu elimină utilizatorii existenți și nu dezactivează federația Matrix.
Alegeți controlul care se potrivește serverului dvs.
| Gol | Abordarea sinapselor | Compromisul principal |
| Doar un administrator creează conturi | Setați enable_registration: false; utilizați interfața CLI de administrare sau un flux de lucru de administrare controlat. | Persoanele nu se pot înscrie de pe un client Matrix. Protejați orice secret de înregistrare partajat. |
| Invită o comunitate mică | Activează înregistrarea și solicită token-uri de înregistrare; emite token-uri de unică folosință, cu durată scurtă de viață. | Administratorii trebuie să distribuie și să gestioneze token-urile. Oricine primește un token valid îl poate folosi. |
| Permiteți înscrierea publicului larg | Mențineți înregistrarea deschisă și adăugați verificări anti-abuz adecvate, cum ar fi CAPTCHA sau token-uri, plus limite de rată și monitorizare. | Mai multe dificultăți pentru utilizatorii legitimi și nicio verificare nu garantează protecția împotriva abuzurilor. |
| Folosește un furnizor de identitate | Configurați SSO și dezactivați crearea automată a contului în setările Synapse ale furnizorului atunci când accesul trebuie aprobat în prealabil. | Necesită administrarea furnizorului de identitate; o autentificare SSO validă nu înseamnă neapărat existența unui cont Matrix. |
Exemplele de mai jos sunt pentru Synapse. Dendrite, Conduit și alte implementări de servere de acasă utilizează interfețe de configurare și administrare diferite. Verificați documentația serverului înainte de a aplica setările Synapse.
Opțiunea 1: Dezactivați înregistrarea publică
Pentru un server privat de acasă, o organizație mică sau un server unde un administrator alocă fiecărui cont, dezactivați înregistrarea clienților în configurația Synapse activă:
enable_registration: false
Synapse documentează această setare ca fiind dezactivată în mod implicit. Editați fișierul de configurare pe care serviciul sau containerul îl încarcă efectiv, validați YAML-ul, apoi reporniți Synapse folosind procesul normal de gestionare a serviciilor. O implementare Docker poate monta configurația dintr-o cale gazdă, așadar editarea unui fișier cu nume similar în interiorul containerului poate să nu modifice fișierul utilizat la pornire.
Cu înregistrarea dezactivată, utilizatorii nu pot crea conturi noi prin fluxul obișnuit de înregistrare a clientului. Administratorii pot crea în continuare conturi prin metode administrative acceptate. Synapse avertizează în mod specific că setarea registration_shared_secretpermite crearea de conturi folosind secretul respectiv chiar dacă enable_registrationeste fals. Tratați-l ca pe o acreditare cu impact ridicat: nu-l înregistrați în repozitorii, chat și dump-uri din mediul public; limitați accesul și păstrați-l numai dacă fluxul de lucru de administrare îl necesită. Oricine deține secretul poate crea conturi, inclusiv conturi de administrator.
Dacă utilizați OIDC, CAS sau o altă integrare SSO, verificați și setarea de înregistrare automată a furnizorului respectiv. Synapse documentează opțiunile de înregistrare la nivel de furnizor, deoarece un utilizator ar putea fi creat automat la prima conectare SSO reușită. Pentru OIDC, verificați, oidc_providers[].enable_registrationprecum și setarea generală de înregistrare.
Opțiunea 2: Permiteți înregistrarea doar cu token-uri
Folosește token-uri de înregistrare atunci când membrii ar trebui să își poată crea propriile conturi, dar înscrierile ar trebui aprobate sau distribuite de un administrator. În configurația Synapse, setează ambele valori:
enable_registration: true
registration_requires_token: true
Ambele sunt necesare: setarea token-ului necesită un token în timpul înregistrării, în timp ce înregistrarea în sine trebuie să fie și ea activată. Aplicați modificarea și reporniți Synapse. Conturile existente și token-urile create anterior nu sunt eliminate prin modificarea acestei setări.
Creați un token cu utilizare limitată
Synapse oferă o API de administrare pentru token-uri de înregistrare. Cererile necesită un token de acces de administrator. De exemplu, această cerere creează un token care poate finaliza o înregistrare:
curl -sS -X POST "$SYNAPSE_URL/_synapse/admin/v1/registration_tokens/new" \
-H "Authorization: Bearer $ADMIN_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data '{"uses_allowed": 1}'
Înlocuiți variabilele de mediu cu adresa URL de bază a serverului dvs. de acasă și un token de acces de administrator. Păstrați tokenul de administrator privat și evitați să lipiți comenzi care conțin acreditări reale în jurnale partajate sau postări de asistență. API-ul poate accepta, de asemenea, un timp de expirare în milisecunde de la epoca Unix. Folosiți un token de unică folosință pentru o invitație individuală și setați o expirare atunci când fluxul dvs. de lucru îl poate calcula și menține în mod fiabil. Un token cu limite omise poate avea utilizări nelimitate și nicio expirare, așadar verificați câmpurile returnate înainte de a-l distribui.
Pentru a inspecta token-urile, un administrator poate apela GET /_synapse/admin/v1/registration_tokens. Răspunsul include utilizările permise, înregistrările în așteptare, înregistrările finalizate și expirarea. Dacă un token este divulgat, actualizați utilizările sale permise la zero sau ștergeți-l prin intermediul API-ului de administrare documentat. Un token este o acreditare de înscriere, nu o invitație la o cameră Matrix; nu adaugă automat noul cont la o cameră.
Notă importantă privind compatibilitatea: API-ul de administrare a jetonului de înregistrare al Synapse este dezactivat atunci când este activată integrarea Matrix Authentication Service (MAS). În această configurație, utilizați în schimb API-ul de administrare MAS sau interfața de comandă MAS documentată pentru implementarea dvs. Nu presupuneți că o comandă de jeton Synapse va funcționa neschimbată cu MAS.
Opțiunea 3: Adăugați cecuri la înregistrarea publică
Dacă obiectivul dvs. este să permiteți oricui să solicite un cont, solicitarea de token-uri poate fi prea restrictivă. Configurația Synapse documentează, de asemenea, cerințele CAPTCHA și ale identificatorilor terți ca posibile verificări. CAPTCHA depinde de un furnizor configurat corect și poate adăuga costuri de accesibilitate și confidențialitate. Solicitarea unei adrese de e-mail sau a unui număr de telefon poate adăuga dependențe de configurare și verificare; nu este același lucru cu aprobarea fiecărui cont. Confirmați ce servicii de verificare sunt acceptate de fapt de versiunea și fluxul clientului dvs. înainte de a transforma o cerință 3PID într-o poartă de acces.
Limitarea ratei este utilă alături de aceste controale, deoarece reduce solicitările repetate, dar nu decide cine are voie să se înregistreze. Monitorizați încercările de înregistrare și jurnalele serverului și ajustați limitele pentru trafic și implementare. Evitați copierea fragmentelor de configurare vechi fără a verifica versiunea Synapse instalată: opțiunile de înregistrare și de serviciu de identitate s-au modificat în timp.
Ce schimbă și ce nu schimbă închiderea înregistrării
- Controlează noile conturi locale. Dezactivarea înregistrării blochează fluxul normal de creare a conturilor pe serverul de acasă.
- Nu șterge conturi. Utilizatorii existenți își păstrează conturile, cu excepția cazului în care îi suspendați sau îi dezactivați separat.
- Nu dezactivează federația. Utilizatorii de pe alte servere principale pot comunica în continuare cu utilizatorii și camerele locale, în funcție de apartenența la cameră și de setările de federație.
- Nu face ca o cameră să fie accesată doar prin invitație. Regulile de înscriere în cameră sunt o setare separată; token-urile de înregistrare nu înlocuiesc invitațiile la cameră.
- Nu blochează neapărat fiecare cale de furnizare. API-urile de administrare, un secret partajat configurat, serviciile de aplicație și setările de creare a contului SSO necesită o verificare separată.
O regulă de proxy invers care ascunde o adresă URL de înregistrare poate fi un control suplimentar la nivelul rețelei, dar este ușor să întrerupă fluxurile clientului și nu înlocuiește configurația proprie a serverului de acasă. Folosește setarea la nivel de aplicație ca și control principal și testează implementarea reală după orice modificare a proxy-ului.
Verificați rezultatul
- Verificați sursa de configurare efectivă, inclusiv orice montare de legare a containerului sau configurație generată, pentru valorile de înregistrare intenționate.
- Reporniți Synapse și verificați jurnalele de pornire pentru erori YAML sau setări neacceptate.
- De la un client Matrix deconectat, încercați să începeți o nouă înregistrare. Cu înregistrarea dezactivată, fluxul nu ar trebui să ofere o înscriere publică utilizabilă. Cu înregistrarea cu token-uri obligatorii activată, o solicitare fără un token valid nu ar trebui să se finalizeze.
- Pentru înregistrarea token-urilor, testați cu un token temporar de unică folosință și confirmați că acesta finalizează crearea unui singur cont. Verificați răspunsul API-ului de administrare pentru informații despre
completed, și expirare.pending
- Testați o cale SSO configurată separat și orice scripturi de furnizare a contului. Confirmați că acestea se comportă conform politicii dvs. de acces.
Nu utilizați un token de invitație real pentru un cont de testare decât dacă intenționați să îl utilizați. Dacă setarea pare ineficientă, verificați mai întâi dacă ați modificat fișierul pe care Synapse îl încarcă efectiv și dacă serviciul a repornit. Apoi, verificați dacă există un secret de înregistrare partajat, o înregistrare automată SSO sau un alt mecanism de furnizare de încredere.
Referințe oficiale
Configurația versionată a Synapse și documentația API-ului de administrare reprezintă sursa de adevăr pentru numele opțiunilor și câmpurile de solicitare. Instrucțiunile de mai sus nu presupun un anumit sistem de operare, o imagine a containerului, un proxy invers sau un client Matrix; confirmați aceste detalii specifice implementării înainte de a aplica modificările.