Malý program, ktorý pripája existujúce VPN, potrebuje radič, nie novú implementáciu VPN. Podporovaný engine má zvládať vyjednávanie a prevádzku tunela; váš program má vyjadriť požiadavku používateľa a poctivo vysvetliť výsledok. V Linuxe dáva rozhranie NetworkManager D-Bus tomuto radiču konkrétny model, ktorého sa dá držať.

Štyri kontroly bránia tomu, aby si radič pomýlil uložený profil, požiadavku na aktiváciu a bežiacu reláciu.

Prvá kontrola: ktorá identita sa vyberá

Držte UUID profilu ako trvalú identitu a rozlišujte ho cez správcu, keď potrebujete cestu k objektu. Zobrazované meno môžu zdieľať dva profily a cesta zbernice za behu nie je rozumné používateľské nastavenie na uloženie. Zapíšte voľbu do vlastnej konfigurácie, nie do komentára o tom, ktorý záznam bol v zozname druhý.

Overte, čo správca vracia, než to nazvete zhodou. UUID, ktoré už neexistuje, vedie k chybe hľadania, čo je iná cesta kódu než profil, ktorý existuje a odmieta sa aktivovať.

Druhá kontrola: čo vracia volanie aktivácie

Dokumentované volanie aktivácie prijíma cestu k objektu existujúceho pripojenia, cestu k zariadeniu a konkrétny objekt. Vracia cestu k aktívnemu pripojeniu a tá odpoveď je úchyt, nie výsledok pripravenosti. Nestavajte príznak pripravenosti aplikácie z vrátenej hodnoty; prihláste sa namiesto toho na odber stavu a dôvodu aktívneho pripojenia.

Pri VPN konkrétny objekt vyberá aktívne základné pripojenie. Odovzdanie koreňovej cesty prenecháva voľbu zariadenia NetworkManageru, ktorý vyberie to, ktoré je práve predvolené. To je rozhodnutie o kontexte smerovania, nie pole pre heslo, a mení, na ktorom zariadení je tunel vrstvený.

Neberte všeobecný príklad pridania a aktivácie a nečakajte, že vytvorí profil VPN. Dokumentovaný pomocník vylučuje pripojenia VPN, takže zriadenie alebo import profilu je samostatný, revidovaný krok. To je dôležité, pretože zriadenie vyžaduje oprávnenie a revíziu, ktoré tlačidlo pripojenia neponúka. Berte import ako administratívnu akciu s vlastným riadkom protokolu a vlastným schvaľovateľom.

Tretia kontrola: ako je stav reprezentovaný

Aktívne pripojenie prechádza aktiváciou, aktívnym stavom, deaktiváciou a deaktivovaným stavom a pole dôvodu hovorí prečo. Zlúčenie toho všetkého do booleovskej hodnoty zvanej loggedIn stráca informácie, ktoré používateľ potrebuje a ktoré bude podpora žiadať. Ukazujte aspoň, či je pripojenie čakajúce, nadviazané alebo preč, a uchovajte reťazec dôvodu pre prípad zlyhania.

Priraďte asynchrónne odpovede k požiadavke, ktorá ich vyvolala. Neskoré dokončenie staršieho pokusu nesmie prepísať novšiu akciu používateľa a opakované stlačenie Connect má byť buď ignorované, alebo poňaté ako zrušenie a nový pokus s viditeľnou politikou.

Štvrtá kontrola: čo sa stane po reštarte

Keď sa správca reštartuje alebo sa váš radič znova pripojí k zbernici, zostavte pozorovaný stav znova od vlastníka. Nepokračujte v zobrazovaní uloženej relácie ako aktívnej len preto, že stará cesta k objektu je stále v pamäti. Signály zmeny stavu existujú práve preto, aby sa radič mohol resynchronizovať namiesto hádania.

Zvoľte, čo znamená zavrieť radič. Ponechať existujúce pripojenie vlastnené strojom zapnuté môže byť správne a rozobrať zámerne krátkodobú reláciu tiež môže byť správne. Ponechať existujúce pripojenie vlastnené strojom zapnuté môže byť správne; rozobrať zámerne krátkodobú reláciu tiež môže byť správne. Zapíšte túto zmluvu o vlastníctve do rozhrania, namiesto toho, aby ste predpokladali, že ukončenie procesu vykoná sieťovú akciu. Používatelia nemajú hádať, či zavretím okna prídu o tunel. Dajte odpoveď do textu rozhrania, nie len do komentára v kóde.

Ponechajte právomoci a tajomstvá u ich vlastníkov

Oprávnenia sa vracajú ako áno, auth alebo nie, a rozhranie má odrážať rozdiel medzi povolené, povolené po autentifikácii a zamietnuté. Spúšťanie radiča ako root nezavádza politiku oprávnení; odstraňuje otázku.

Prihlasovacie údaje patria podporovanému agentovi tajomstiev alebo klientskej integrácii pre nakonfigurovanú metódu autentifikácie. Heslo v zdrojovom kóde, v argumente alebo v protokole je nález a miestna administratívna autorizácia nie je tá istá udalosť ako autentifikácia voči bráne.

Nakoniec hláste stav pripojenia oddelene od úlohy, ktorú chce používateľ vykonať. Tunel môže byť aktívny, zatiaľ čo súkromné meno alebo aplikácia zostávajú nedostupné, a toto druhé zlyhanie si zaslúži vlastnú správu a vlastný stav. Radič, ktorý presne povie, ktorá vrstva zlyhala, je užitočnejší než ten, ktorý povie, že VPN je mimo prevádzky.

Súvisiace články