Skip to Content

PMIS Federation Matrix

Alpha License: LGPL-3 PMISuite/federation Version: 18.0

Odoo se povezuje z obstoječim Matrix Synapse na istem ali oddaljenem gostitelju. Dodatek strežnika ne uvede, zažene, nastavi ali varnostno kopira. Preverjene osebe federacije in pregledana organizacijska članstva določajo upravljane identitete in sobe.

Funkcionalnosti

  • Nastavitve Matrix po podjetju in omejeni dostopni žetoni v Nastavitvah.

  • Neposredni preverjeni HTTPS do obstoječih Matrix client in Synapse admin API-jev.

  • Trajne pregledane identitete in izbirno uvajanje računov Synapse OIDC.

  • Organizacijske šifrirane zasebne sobe in Spaces samo z vabili.

  • Neodvisno odobrena članstva sob/Spaces z omejenim umikom.

  • Trajne naloge Odoo in dokazila oddaljenega lastništva/revizij za ponovitve.

  • Navigacija Element in opomniki obnovitve brez zbiranja obnovitvenih ključev.

  • Celotni Element Web v Odoo s šifriranim pogovorom in klicnim vmesnikom.

  • Pregledani šifrirani besedilni mostovi Matrix–zasebne skupine Discuss.

  • Natančno preverjanje prstnih odtisov naprav, zaščiteni ključi in trajna šifrirana dokazila ponovitev.

  • Ločeno nameščeni Element Web z viri/posodobitvami distribucije.

  • Delegiranje medijev brskalnika samo izrecnim izvorom Element in Element Call.

  • Ameriška angleščina in slovenski prevodi.

Nastavitve

Zunanja odvisnost odjemalca je Element Web. Na Arch Linux uporabite uradni binarni extra/element-web in njegovo spletno mapo strežite prek HTTPS. Paket upravlja JavaScript, WebAssembly in posodobitve; dodatek ne vsebuje kopij virov, npm ali orodij izgradnje. Glejte Element Web: nastavitev in posodobitve.

Odvisnosti Python

V okolje Odoo poleg njegovih zahtev namestite requirements.txt repozitorija. Modul potrebuje matrix-nio[e2e]>=0.26.0. Šifrirni dodatek zagotovi vodozemac>=0.9.0.post2, peewee~=3.14, atomicwrites~=1.4 in cachetools>=5.3. Manifest jih deklarira posebej, ker Odoo preverja različice paketov, ne odvisnosti dodatkov paketa.

Matrix-nio 0.26 uporablja Rustove vezave vodozemac in ne zahteva starejših libolm ali python-olm. Glejte definicije odvisnosti 0.26. Na Arch Linux naj lastnik okolja PMISuite18 pred namestitvijo modula zažene:

/srv/pmiverse/_pmisuite18/venv/bin/python -m pip install \
    -r /srv/pmiverse/_pmisuite18/repos/pmiverse/federation/requirements.txt

Za druge namestitve prilagodite poti. Sistemski paketi Python niso samodejno vidni v ločenem virtualnem okolju. Element Web ostane ločen paket Arch prek HTTPS. Nato nastavite in preglejte namensko napravo mosta; osebne seje Element so neodvisne.

Nastavitve podjetja in odjemalca

Za izvorno namestitev Arch v obstoječem Odoo LXC za ločenim Nginx glejte postopno uvedbo z obstoječim PostgreSQL, Synapse, Element Web, HTTPS in konferenčnim zaledjem.

  1. Pod Federation > Matrix ustvarite cilj s pravim imenom strežnika Matrix, izvoroma HTTPS homeserver/odjemalca in pregledano namestitvijo. Privzetih naslovov ali lokacij uvedbe ni.

  2. Izberite Directory Owner cilja in Settings > Matrix.

  3. Omogočite integracijo, izberite cilj in vnesite polni ID ter odjemalski žeton namenske integracijske identitete, ne seje navadnega uporabnika.

  4. Ločen skrbniški žeton Synapse in točni obstoječi OIDC provider ID podajte samo za uvajanje računov. Ne omogočata upravljanja gostitelja; Odoo ne nastavi OIDC Synapse. Pri Federation Provider registrirajte prijavnega odjemalca s tem Matrix Target, pregledano namestitvijo in točnim /_synapse/client/oidc/callback. Vezani odjemalci pred prijavo zahtevajo trenutno pripravljeno pregledano identiteto Matrix.

  5. Shranite in Test Saved Connection. Lastnik žetona se mora ujemati z integracijskim uporabnikom. Sobe/članstva uporabljajo client token, računi Synapse administrator token.

  6. Za odjemalca v Odoo nastavite ločen izvor HTTPS Element Web. Če klicni gradnik uporablja drugega, na cilju nastavite Element Call Origin. Mikrofon, kamera, deljenje zaslona, celozaslonski način in autoplay se delegirajo samo tema izvoroma; polje klicne storitve ne uvede ali nastavi.

Element mora s Content-Security-Policy: frame-ancestors dovoliti točni izvor Odoo. X-Frame-Options: DENY ali SAMEORIGIN prepreči vdelavo med izvori. Ohranite izrecni seznam dovoljenj. Tudi Odoo mora v svojih varnostnih/dovolilnih politikah dovoliti okvire in medije. Element, gnezdeni klicni gradnik, brskalnik in nadrejena stran morajo vsi dovoliti ustrezne medije. HTTPS uporabljajte tudi za Odoo. Glejte navodila Element Web.

Za obstoječi Element nastavite odkrivanje transporta MatrixRTC, avtorizacijsko storitev in SFU. Samo upravljanje računov/sob ne zagotovi konferenčnega prenosa; glejte gostovanje Element Call. Pravila shrambe/overjanja brskalnika lahko zahtevajo prvo prijavo prek Open Element, ki je na voljo v vdelanem pogledu.

Poverilnice pripadajo podjetju in so dostopne samo skrbnikom Odoo. V zbirki so shranjene brez šifriranja tega dodatka; zaščitite dostop in varnostne kopije. Žetoni ne gredo v naloge, navigacijske URL-je, stanja ali poročila HTTP napak. TLS preverjanje je obvezno, preusmeritve se ne sledijo, DNS se pripne na zahtevo. Zasebni/povratni cilji zahtevajo izrecne z vejicami ločene IP-je; polje lahko pripne tudi javnega. Link-local, multicast in nedoločeni so zavrnjeni.

Poverilnice so vezane na prvotni UUID zbirke. Nov UUID blokira naloge do ponovne skrbniške nastavitve. Povezava ne uporablja PMIS_FEDERATION_RUNTIME; kopija/ obnovitev z istim UUID in poverilnicami lahko preverjanje prestane, zato jo izolirajte in izključite integracijo pred zagonom delavcev ali opravil.

Uporaba

Šifrirani most Discuss

  1. Pripravite pregledano šifrirano sobo in članstva. Na obeh straneh določite isti preverjeni cilj in UUID-je sobe ter skupno sobo, ob ohranitvi lastnih preslikav imenika in operativnega podjetja.

  2. Pod Federation > Matrix > Reviewed Discuss Bridges ustvarite točno povezavo vrstnikov, sobo, UUID nasprotnega mosta in sklic. Approve Readable Discuss History omogočite šele po pregledu te meje navadnega besedila.

  3. Ustvarite namenskega neskrbniškega storitvenega uporabnika Matrix. Po podprtem prijavnem postopku pridobite žeton nove naprave ter vnesite Bridge Matrix User, Bridge Device ID in Bridge Device Access Token. whoami mora potrditi točnega uporabnika/napravo. Ne uporabite osebne naprave Element: most ustvari lastne šifrirne ključe.

  4. Za pripisano besedilo drugega mosta nastavite Peer Bridge Matrix User. Neodvisno preverite oba javna prstna odtisa vseh odobrenih naprav udeležencev in nasprotnega mosta ter jih vnesite v Verified Device Fingerprints kot spodnji JSON. Nove/spremenjene naprave so do pregleda zavrnjene.

  5. Izberite Approve Bridge in zaženite upravljalno nalogo. Integracijski račun zabeleži privilegirano lastništvo sobe in povabi namenski račun, ta se pridruži z lastnim žetonom. Prva sinhronizacija določi osnovo, ne uvaža stare zgodovine.

  6. Ločeno odobrite Reviewed Matrix Participants glede na trenutna izvorna in uporabljena članstva sobe. Komentarji Discuss pripravljajo samo besedilne naloge do 4096 bajtov UTF-8. Preverjeno šifrirano besedilo se v točno skupino uvozi enkrat; priloge in nešifrirani dogodki so izključeni.

Oblika prstnih odtisov JSON:

[
    {
        "user_id": "@pmis_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:example.com",
        "device_id": "ALICE_DEVICE",
        "ed25519": "VERIFIED_ED25519_PUBLIC_KEY",
        "curve25519": "VERIFIED_CURVE25519_PUBLIC_KEY"
    }
]

Izmišljene vrednosti zamenjajte z neodvisno preverjenimi javnimi ključi iz odkrivanja ključev naprav; sama imena niso dokaz. Udeleženci morajo v svojih odjemalcih preveriti tudi napravo mosta za deljenje ključev sobe. Most ne zaupa novim napravam samodejno in ne posreduje ključev na zahtevo. Vsaka nova odobritev vzpostavi novo osnovo. Stari indeksi Megolm so zavrnjeni tudi z novim ID-jem ali časom dogodka. Seje brez opažene osnove so izključene; pošiljatelj mora preiti na novo sejo ključa sobe, ne deliti stare zgodovine.

Odhodna sporočila so od namenskega mosta z izvirnim pregledanim ID-jem pošiljatelja v telesu in šifriranih metapodatkih. Nasprotni most pripis sprejme samo iz nastavljene preverjene naprave za točno obrnjeni par in UUID mosta. Overjanje Matrix ne ustvari uporabnika Odoo ali članstva podjetja.

Šifrirano vhodno besedilo in kazalec sinhronizacije se zabeležita skupaj; potrdila Discuss se potrdijo pred potrditvijo izvornega predala. Ponovitve uporabijo iste šifrirane bajte in Matrix transaction ID, poznejše naloge čakajo na prejšnje nerešeno besedilo istega mosta. Manjkajoči ključi ohranijo vrstni red, Relay State postane Unavailable, Last Sync At kaže zadnji uspeh. Vrzeli časovnice se obnovijo z omejenim straničenjem; nerešene ustavijo dostavo, ne preskočijo besedila.

Withdraw Bridge takoj ustavi lokalno pooblastilo in pripravi odstranitev namenskega računa iz sobe. Withdraw Participant konča samo njegov Discuss/ mostni obseg. Besedilo s spremenjenim prvotnim prejemnikom ali soglasjem postane nadomeščeno; novo šifriranje uporabi novo sejo ključa sobe. Neodvisna članstva in računi ostanejo. Umik ne izbriše že prejetega besedila/ključev.

Pred menjavo žetona ali prstnih odtisov umaknite most in nato izrecno odobrite novi obseg/udeležence. Uporabnik in naprava mosta sta trajna. Po neobnovljivi izgubi ključev opustite most ter preglejte novo napravo in sobo, ne ponastavljajte ključev pod staro identiteto.

Hramba ključev in obnovitev

Ključi naprave, naključni šifrirni ključ pickle, šifrirani vhodni/izhodni dnevniki, kazalci in označbe ponovitev so v <Odoo data_dir>/matrix_crypto/<database UUID>/<bridge UUID>. Mapa je zasebna lastniku; ključi niso v zapisih Odoo ali brskalniku. Žetoni naprav so v skrbniških poljih zbirke; zaščitite zbirko, kopije in mapo. Vsi delavci mosta potrebujejo isto trajno shrambo z delujočim zaklepanjem/trajnostjo SQLite. Matrix je lahko drugje.

Celotno mapo in zbirko varnostno kopirajte ter dosledno obnovite pred dostavo. Izguba dela shrambe blokira most; za obstoječo napravo ne ustvari tiho novih ključev. Poverilnice/dnevnik so vezani na prvotno zbirko, cilj, sobo, uporabnika in napravo. Kopija zahteva izrecno nastavitev ter drugo pregledano napravo; vezave ne izolirajo gostiteljsko kopiranih poverilnic/ključev. Dokazila ponovitev morajo preživeti obnovitev in ponovno namestitev.

Sobe Matrix in Element

Ob nastavljenem upravljanju računov pripravite pregledano osebo. Ustvarite sobo organizacije s preverjeno preslikavo operativnega podjetja in Provision. Za Space izberite Organization Space, ga pripravite pred izbiro za starša sobe in ločeno odobrite obe članstvi; Space ne dodeli sob.

Approve/Revoke uporabite na točnem pregledanem članstvu. Integracija pred vabilom zabeleži lastništvo v privilegiranem stanju sobe. Prekinjene odgovore lahko ponovite brez prevzema tujih članstev. Preklic umakne samo udeležbo te odločitve Odoo, ne neodvisnega računa ali drugih povezav.

Preglejte nespremenljive naloge in po potrebi Run / Retry. Zdravstveni pregledi preverijo identiteto žetona in client API obstoječe storitve. My Matrix Identity in My Matrix Rooms sta dosegljiva običajnim uporabnikom prek trenutnih preverjenih lokalnih preslikav in odobrenega dostopa.

Matrix Client v meniju ali Open in Odoo na identiteti/članstvu odpre odjemalca: ena trenutna identiteta takoj, več jih zahteva izbor. V Element se prijavite kot prikazana identiteta. Overjanje Matrix je neodvisno; Odoo ne zamenja integracijskega žetona podjetja za osebno sejo in ne pregleduje računa v drugem izvoru. Dostop v Element določata Matrix overjanje in članstvo.

Celotni vmesnik Element upravlja šifrirane pogovore, vabila, zgodovino, priloge, naprave, obnovitev in podprte klice/konference v strani Odoo. Dejanske možnosti so odvisne od različice Element in MatrixRTC. Ta vmesnik ne kopira dešifriranih sporočil v Discuss.

Članstvo sobe določa tudi klice. Uporabite njene kontrole klicev/moderiranja, brez ločene odobritve ali najema Odoo. Na mostu Open in Odoo odpre točno sobo po osebni identiteti/članstvu. Umik Discuss ohrani neodvisno članstvo Matrix; za konec tega ga prekličite ločeno. Umik sobe ne jamči takojšnjega odklopa že povezanega udeleženca SFU.

Odoo ponovno preveri identiteto/podjetje vsakih 30 sekund in ob fokusu okna. Neuspeh odstrani okvir, sprememba nastavitev zahteva ponovno odprtje. Pause Client odstrani okvir, Resume / Retry pred povezavo znova odobri. Odhod s strani odstrani okvir in medijski vmesnik. Omejevanje brskalnika v ozadju lahko preverjanja odloži; oddaljeni preklic upravlja Matrix. Odstranitev okvira ne odjavi neodvisnega računa ali prekliče aktivnega SFU udeleženca; za to uporabite kontrole Element.

Ob prvi navigaciji opomnik zahteva shranitev obnovitvenega ključa drugje in točno potrditev I saved my recovery key. Ohranijo se samo potrditev, identiteta, uporabnik, čas in različica pravil. Vnesena fraza je začasna; obnovitveni ključ se ne zbira. Po spremembi naprav/materiala uporabite Renew Recovery Reminder. Seje in šifrirano zgodovino upravlja Element.

Meja integracije

Ni posebnega demona PMIVerse Matrix, vtičnice Unix, enote systemd, lokalnega Synapse API-ja ali odvisnosti gostiteljskega datotečnega sistema Matrix. Zasebni dnevnik naprave pripada okolju Odoo in je ločen od upravljanja strežnika. Neposredni povezovalnik podpira zdravje, račune, sobe, Spaces in članstva; naprava nio izvaja pregledani šifrirani besedilni most po istem pripetem HTTPS, brez nešifriranega nadomestila. Osebne pogovore in klice zagotovi vdelani Element. Odoo ne izvaja MatrixRTC admission/focus storitve; veljajo sprejemna/moderatorska pravila Matrix brez ločenih najemov klicev Odoo. Glejte integracijsko pogodbo.