Cum se configurează autentificarea unică (SSO) cu Keycloak în Element Web

Element Web nu se autentifică direct împotriva Keycloak. Element solicită serverului său de acasă Matrix metodele de conectare acceptate; serverul de acasă finalizează OpenID Connect (OIDC) cu Keycloak și returnează utilizatorul la Element. Pentru o implementare Synapse care utilizează suportul OIDC încorporat, configurați un client OIDC confidențial în Keycloak, adăugați furnizorul respectiv la Synapse și, opțional, ajustați opțiunile Element Web config.jsonpentru a afișa sau a porni automat SSO.

Acest ghid utilizează furnizorul OIDC încorporat în Synapse, care este o cale de implementare comună. Dacă serverul dvs. principal deleagă autentificarea către Matrix Authentication Service (MAS), utilizați configurația callback-ului MAS și a furnizorului descrise mai jos. Cele două adrese URL de callback sunt diferite. Instrucțiunile au fost verificate în raport cu documentația de configurare Element Web, ghidul OIDC Synapse v1.144, ghidul SSO MAS upstream actual și ghidul de administrare Keycloak 26.8.0 pe 6 octombrie 2026; pachetul de implementare și etichetele UI pot varia în funcție de versiune.

Mai întâi, identifică ce cale de autentificare folosești

ImplementareUnde este configurat KeycloakAdresa URL de apel invers Keycloak
OIDC încorporat în SynapseSinapsăoidc_providershttps://matrix.example.com/_synapse/client/oidc/callback
Sinapsele deleagă autentificarea către MASMASupstream_oauth2.providershttps://auth.example.com/upstream/callback/<provider-id>

Verificați documentația de configurare și implementare Synapse înainte de a crea un client. Callback-ul trebuie să aparțină componentei care comunică cu Keycloak; nu înregistrați adresa URL a site-ului web al Element ca callback.

Ceea ce ai nevoie

  • O adresă URL HTTPS publică pentru Synapse, cum ar fi https://matrix.example.com, și un emitent de realm Keycloak accesibil, cum ar fi https://sso.example.com/realms/company.
  • Acces administrativ la domeniul Keycloak și la configurația și serviciul Synapse.
  • O copie de rezervă a configurației curente și o modalitate de a utiliza jurnalele Synapse sau o consolă de server dacă conectarea eșuează.
  • O decizie privind furnizarea conturilor: ce utilizatori Keycloak se pot conecta, ce revendicare îi identifică și dacă trebuie păstrate conturile Matrix existente.

Configurați Keycloak pentru Synapse OIDC

1. Creați un client OIDC confidențial

În domeniul utilizat pentru conturile Matrix, creați un client pentru Synapse utilizând protocolul OpenID Connect. Activați codul de autorizare sau fluxul standard și autentificarea clientului, astfel încât Synapse să poată utiliza un secret client la punctul final al token-ului. Setați ID-ul clientului la o valoare pe care o veți utiliza și în Synapse, de exemplu synapse.

Setați URI-ul de redirecționare valid la apelul invers Synapse exact:

https://matrix.example.com/_synapse/client/oidc/callback

Înlocuiți numele de gazdă exemplu cu adresa URL publică de bază configurată efectiv pentru Synapse. Nu utilizați un wildcard larg, cum ar fi *în producție. Keycloak validează URI-urile de redirecționare, astfel încât o nepotrivire de gazdă, schemă, cale sau bară oblică finală poate cauza o eroare de tipul „URI-ul de redirecționare nu este permis”.

Salvați clientul, copiați secretul generat și stocați-l ca secret pe server. Nu îl puteți accesa în elementele public config.json, controlul sursei, capturile de ecran și JavaScript-ul pe client ale Element Web. Consola de administrare Keycloak poate eticheta autentificarea sau acreditările clientului diferit în funcție de versiune; verificați dacă clientul rezultat este confidențial și poate utiliza fluxul standard al codului de autorizare.

2. Confirmați emitentul și revendicările

Emitentul identifică realmul, nu adresa rădăcină a serverului Keycloak. Pentru acest exemplu, utilizați https://sso.example.com/realms/company. Confirmați că configurația OpenID a realmului este accesibilă la <issuer>/.well-known/openid-configurationși că emitentul său anunțat corespunde exact cu valoarea pe care o veți da pentru Synapse.

Synapse are nevoie de o revendicare de identitate stabilă pentru a asocia contul Keycloak cu un utilizator Matrix. Furnizorul său OIDC identifică în mod normal subiectul extern folosind revendicarea subiectului OIDC; maparea numelui de utilizator de mai jos o folosește preferred_usernameca parte locală Matrix. Asigurați-vă că Keycloak returnează efectiv această revendicare și că numele de utilizator sunt unice și stabile conform politicii contului dvs. Dacă organizația dvs. permite modificări ale numelui de utilizator, alegeți și testați o strategie de mapare înainte de producție; o modificare neașteptată a mapării poate afecta contul Matrix pe care o persoană îl accesează.

Configurați Sinapsa

3. Adăugați furnizorul OIDC

Adăugați o intrare de furnizor la configurația principală a Synapse, de obicei homeserver.yaml. Îmbinați-o cu YAML-ul existent în loc să înlocuiți alte setări. Înlocuiți emitentul realm-ului și secretul clientului real:

oidc_providers:
  - idp_id: keycloak
    idp_name: "Keycloak"
    issuer: "https://sso.example.com/realms/company"
    client_id: "synapse"
    client_secret: "REPLACE_WITH_THE_CLIENT_SECRET"
    scopes: ["openid", "profile", "email"]
    user_mapping_provider:
      config:
        localpart_template: "{{ user.preferred_username }}"
        display_name_template: "{{ user.name }}"

Domeniile de aplicare solicitate controlează ce informații despre utilizator poate returna Keycloak; acestea nu garantează că fiecare solicitare este populată. Dacă nu aveți nevoie de importul adresei de e-mail sau al numelui afișat, reduceți domeniile de aplicare și maparea în mod corespunzător. Păstrați fișierul de configurare lizibil doar de către administratorul serviciului și procesul Synapse, după cum este necesar pentru implementarea dvs. Dacă gestionați Synapse prin containere sau o diagramă, plasați setările furnizorului în sursa de configurare acceptată, în loc să editați un fișier generat care va fi suprascris.

4. Opțional, configurați deconectarea de pe canalul din spate

În mod implicit, deconectarea de la un serviciu nu încheie neapărat sesiunea de browser a tuturor celorlalte servicii. Dacă doriți ca notificările de deconectare Keycloak să încheie sesiunea Synapse, activați-o backchannel_logout_enabled: truesub furnizorul Keycloak din Synapse și setați adresa URL de deconectare Backchannel a Keycloak la:

https://matrix.example.com/_synapse/client/oidc/backchannel_logout

Acest lucru este opțional și depinde de politica de deconectare și de configurarea clientului. Testați ambele direcții de deconectare: deconectare Synapse și deconectare Keycloak. Nu presupuneți că deconectarea din Element încheie sesiunea Keycloak.

5. Reporniți și testați Synapse

Validați YAML-ul cu verificările de configurare ale implementării, apoi reporniți sau reîncărcați Synapse folosind metoda acceptată de configurația pachetului sau containerului. Examinați jurnalele Synapse pentru erori de descoperire OIDC, autentificare client, apel invers sau mapare a revendicărilor. Folosiți mai întâi un cont de testare și confirmați că ID-ul matricei și numele afișat sunt valorile așteptate.

Configurați Element Web

6. Păstrați SSO-ul opțional sau redirecționați automat

Odată ce Synapse anunță autentificarea OIDC, Element Web poate prezenta opțiunea de autentificare SSO. Setarea Element sso_redirect_optionscontrolează experiența browserului; nu configurează Keycloak și nu stochează secretul clientului. Adăugați o setare ca aceasta la setările oferite de Element Web config.jsondacă doriți ca vizitatorii neautentificați care sosesc pe pagina de bun venit sau de autentificare să fie direcționați către fluxul SSO disponibil:

{
  "sso_redirect_options": {
    "immediate": false,
    "on_welcome_page": true,
    "on_login_page": true
  }
}

Pentru o implementare care necesită cu adevărat conectare doar prin SSO, setați "immediate": truesă porniți SSO pentru toți utilizatorii neautentificați. Acest lucru poate face ca parola sau alte opțiuni de conectare să fie mai greu de accesat, așadar testați recuperarea și accesul de administrator înainte de a le impune. Dacă utilizatorii trebuie să aleagă între SSO și o altă metodă, lăsați redirecționarea automată dezactivată și testați dacă opțiunea SSO apare în fluxul de conectare.

Dacă Synapse utilizează serviciul de autentificare Matrix

MAS este un serviciu de autentificare separat și poate acționa ca și client OIDC pentru Keycloak. În această arhitectură, configurați URI-ul de redirecționare al Keycloak ca https://auth.example.com/upstream/callback/<provider-id>, unde ID-ul furnizorului se potrivește cu configurația MAS. Configurați furnizorul sub upstream_oauth2.providerselementul ; al MAS utilizează apoi fluxul de autentificare bazat pe MAS al serverului de domiciliu. Nu utilizați Synapse /_synapse/client/oidc/callbackpentru această conexiune în amonte. MAS necesită un furnizor OIDC care să accepte fluxul codului de autorizare. Formatul său de configurare, ID-ul furnizorului necesar și pașii de migrare sunt diferiți de . încorporat în Synapse oidc_providers.

Neînțelegeri frecvente și remedieri

  • „Trebuie doar să schimb configurația Element.” Element controlează fluxul browserului, în timp ce Synapse sau MAS se ocupă de OIDC. Configurați mai întâi furnizorul corect de pe partea de server principal.
  • „O autentificare Keycloak reușită dovedește că maparea contului este corectă.” Autentificarea poate reuși chiar dacă este selectată o revendicare localpart sau de profil greșită. Testați cu un utilizator care nu este de producție și verificați ID-ul matricei rezultat.
  • „SSO dezactivează automat parolele și înregistrarea.” Aceste politici sunt controlate de serverul principal și de implementare. Examinați separat setările de conectare și înregistrare ale Synapse și confirmați politica aprobată.
  • „Deconectarea de la Element mă deconectează de peste tot.” Sesiunile de browser pot rămâne active la Keycloak. Configurați și testați deconectarea prin back-channel dacă este necesară terminarea centralizată a sesiunii.

Listă de verificare

  • Clientul Keycloak folosește fluxul de cod de autorizare, autentificarea clientului și apelul invers exact pentru Synapse sau MAS.
  • Adresa URL a emitentului se potrivește cu metadatele de descoperire ale realm-ului, iar secretul clientului este stocat pe server.
  • Synapse sau MAS pornește fără erori de configurare OIDC și expune metoda de conectare dorită.
  • Un utilizator de test se poate conecta dintr-o sesiune nouă de browser, ajunge în contul Matrix așteptat și poate finaliza o sesiune Element normală.
  • Comportamentul la deconectare, conturile existente, restricțiile de înregistrare și orice acces de administrator de rezervă corespund politicii dvs.

Referințe oficiale

Lasă un comentariu

10 cele mai bune instrumente Ping Sweep pentru găsirea dispozitivelor în rețeaua dvs.

10 cele mai bune instrumente Ping Sweep pentru găsirea dispozitivelor în rețeaua dvs.

Comparați 10 instrumente de scanare ping pentru descoperirea rapidă a rețelelor LAN, scanarea multi-platformă și gestionarea adreselor IP. Aflați ce vă poate spune o scanare (sweep).

6 Cele mai bune instrumente de gestionare a rețelei pentru urmărirea performanței

6 Cele mai bune instrumente de gestionare a rețelei pentru urmărirea performanței

Comparați șase instrumente de gestionare a rețelei pentru monitorizarea performanței, inclusiv acoperirea SNMP, maparea, alertele, modelele de implementare și compromisurile de costuri.

QoS în rețele: Ce face calitatea serviciilor și cum funcționează

QoS în rețele: Ce face calitatea serviciilor și cum funcționează

Aflați ce înseamnă QoS în rețele, cum marcajele DSCP și cozile de trafic prioritizează aplicațiile vocale, video și de business și ce nu poate remedia QoS.

Cel mai bun software de server SFTP pentru transferuri securizate de fișiere

Cel mai bun software de server SFTP pentru transferuri securizate de fișiere

Compară software-ul de server SFTP fiabil pentru Windows și Linux, inclusiv OpenSSH, Bitvise, SolarWinds și SFTPGo. Găsește soluția potrivită pentru nevoile tale de securitate și transfer de fișiere.

Cele mai bune practici de monitorizare a rețelei: Ce să urmăriți și ce instrumente să utilizați

Cele mai bune practici de monitorizare a rețelei: Ce să urmăriți și ce instrumente să utilizați

Construiți o monitorizare practică a rețelei cu o acoperire clară a dispozitivelor, indicatori de performanță utili, alerte acționabile și o comparație între SolarWinds NPM, PRTG și OpManager.

Cele mai bune 7 instrumente de gestionare a adreselor IP pentru echipele de rețea

Cele mai bune 7 instrumente de gestionare a adreselor IP pentru echipele de rețea

Comparați șapte instrumente de gestionare a adreselor IP pentru descoperirea subrețelelor, coordonarea DNS și DHCP, inventarul rețelei și IPAM open-source.

10 cele mai bune instrumente de scanare a rețelei pentru descoperirea dispozitivelor și a adreselor IP

10 cele mai bune instrumente de scanare a rețelei pentru descoperirea dispozitivelor și a adreselor IP

Comparați instrumentele de scanare a rețelei pentru descoperirea rapidă a dispozitivelor, scanări IP pe mai multe platforme și IPAM pentru întreprinderi, cu îndrumări privind potrivirea fiecărei opțiuni la rețeaua dvs.

Cum se utilizează Nmap pentru Traceroute și citirea căii de rețea

Cum se utilizează Nmap pentru Traceroute și citirea căii de rețea

Folosește opțiunea --traceroute din Nmap pentru a mapa salturi la o gazdă autorizată, a înțelege ieșirea saltului și a RTT-ului și a depana răspunsurile lipsă fără a suprascana.

6 Cele mai bune instrumente de monitorizare a serverelor Windows pentru o disponibilitate și o performanță mai bune

6 Cele mai bune instrumente de monitorizare a serverelor Windows pentru o disponibilitate și o performanță mai bune

Comparați șase instrumente de monitorizare Windows Server în funcție de colectarea datelor Windows, vizibilitatea aplicațiilor, modelul de implementare și licențierea pentru a găsi instrumentul potrivit.

6 instrumente de monitorizare a rețelei Linux pentru dispozitive, gazde și trafic

6 instrumente de monitorizare a rețelei Linux pentru dispozitive, gazde și trafic

Comparați șase instrumente de monitorizare a rețelei Linux pentru descoperirea dispozitivelor SNMP, grafice de interfață, metrici gazdă, verificări de servicii și fluxuri de trafic.