Väike programm, mis ühendab olemasoleva VPN-i, vajab kontrollerit, mitte uut VPN-i teostust. Toetatud mootor peaks haldama läbirääkimist ja tunneliliiklust; teie programm peaks väljendama kasutaja taotlust ja selgitama tulemust ausalt. Linuxis annab NetworkManageri D-Busi liides sellele kontrollerile konkreetse mudeli, mida järgida.

Neli kontrolli hoiavad kontrollerit ajamast segamini salvestatud profiili, aktiveerimistaotlust ja töötavat seanssi.

Esimene kontroll: millist identiteeti valitakse

Hoidke profiili UUID püsiva identiteedina ja lahendage see halduri kaudu, kui vajate objekti rada. Kuvatavat nime võivad jagada kaks profiili ning käitusaegne siinirada ei ole mõistlik kasutaja eelistus, mida salvestada. Kirjutage valik oma konfiguratsiooni, mitte kommentaari sellest, milline kirje oli nimekirjas teine.

Kontrollige, mida haldur tagastab, enne kui nimetate seda vasteks. UUID, mida enam ei ole, tekitab otsinguvea, mis on teine kooditee kui profiil, mis on olemas ja keeldub aktiveerimast.

Teine kontroll: mida aktiveerimiskutse tagastab

Dokumenteeritud aktiveerimiskutse võtab olemasoleva ühenduse objekti raja, seadme raja ja konkreetse objekti. See tagastab aktiivse ühenduse raja ja see vastus on käepide, mitte valmiduse tulemus. Ärge seadke rakenduse valmiduslippu tagastusväärtusest; tellige selle asemel aktiivse ühenduse olek ja põhjus.

VPN-i puhul valib konkreetne objekt aktiivse põhiühenduse. Juurraja edastamine annab seadme valiku NetworkManagerile, mis valib selle, mis on praegu vaikimisi. See on marsruutimiskonteksti otsus, mitte parooliväli, ja see muudab, millisele seadmele tunnel asetatakse.

Ärge võtke üldist lisa-ja-aktiveeri näidet ega oodake, et see loob VPN-profiili. Dokumenteeritud abivahend jätab VPN-ühendused välja, seega profiili ettevalmistamine või importimine on eraldi, üle vaadatud samm. See loeb, sest ettevalmistamine nõuab volitust ja ülevaatamist, mida ühendusnupp ei anna. Käsitlege importi haldustoiminguna, millel on oma logirida ja oma kinnitaja.

Kolmas kontroll: kuidas olekut esitatakse

Aktiivne ühendus liigub aktiveerimise, aktiivse, deaktiveerimise ja deaktiveeritud oleku vahel ning põhjuseväli ütleb, miks. Kõige selle surumine tõeväärtuseks nimega loggedIn kaotab teabe, mida kasutaja vajab ja mida tugi küsib. Näidake vähemalt, kas ühendus ootab, on loodud või kadunud, ja hoidke põhjuse string tõrkestsenaariumi jaoks.

Seostage asünkroonsed vastused taotlusega, mis need tekitas. Vanema katse hiline lõpetamine ei tohi üle kirjutada uuemat kasutajatoimingut ning Connecti topeltvajutus tuleb kas eirata või käsitleda tühistamise ja uuesti proovimisena nähtava poliitikaga.

Neljas kontroll: mis juhtub pärast taaskäivitust

Kui haldur taaskäivitub või teie kontroller siiniga uuesti ühendub, taastage vaadeldud olek omaniku käest. Ärge jätkake vahemällu salvestatud seansi näitamist aktiivsena, sest vana objektirada on veel mälus. Olekumuutuse signaalid on olemas just selleks, et kontroller saaks uuesti sünkroonida, mitte oletada.

Valige, mida kontrolleri sulgemine tähendab. Olemasoleva masinale kuuluva ühenduse ülesjätmine võib olla õige ning teadlikult lühiajalise seansi lammutamine võib samuti olla õige. Olemasoleva masinale kuuluva ühenduse ülesjätmine võib olla õige; teadlikult lühiajalise seansi lammutamine võib samuti olla õige. Kirjutage see omandileping liidesesse, selle asemel et eeldada, et protsessi väljumine teeb võrgutoimingu. Kasutajad ei peaks oletama, kas akna sulgemine katkestab nende tunnels. Pange vastus liidese teksti, mitte ainult koodikommentaari.

Hoidke volitus ja saladused nende omanike juures

Lubadused tulevad tagasi kui jah, auth või ei, ning liides peaks peegeldama erinevust lubatud, pärast autentimist lubatud ja keelatud vahel. Kontrolleri käitamine rootina ei rakenda lubade poliitikat; see kõrvaldab küsimuse.

Mandaadid kuuluvad toetatud saladusagendile või kliendiintegratsioonile konfigureeritud autentimismeetodi jaoks. Parool lähtekoodis, argumendis või logis on leid ning kohalik haldusvolitus ei ole sama sündmus kui autentimine lüüsi juures.

Lõpuks teatage ühenduse olekust eraldi ülesandest, mida kasutaja soovib täita. Tunnel võib olla aktiivne, samal ajal kui privaatnimi või rakendus jääb kättesaamatuks, ja see teine tõrge väärib oma sõnumit ja oma olekut. Kontroller, mis ütleb täpselt, milline kiht ebaõnnestus, on kasulikum kui see, mis ütleb, et VPN on maas.

Seotud artiklid