Definējiet VPN operāciju pirms API salīdzināšanas
Savienojuma kontrole, profilu nodrošināšana, lietotāju administrēšana un novērošana ir dažādi API. Vispirms nosauciet objektu, darbību un veiksmes nosacījumu.
Produkta lapa apgalvo, ka tam ir API, un integrācijas sanāksme iestrēgst pie otrā jautājuma. Kura operācija, uz kura objekta, kas to izsauc un kas tiek uzskatīts par veiksmi? Atbildot uz šiem četriem pirms produktu salīdzināšanas, parasti izkrīt puse kandidātu. Tas arī pārvērš atlikušo salīdzinājumu kaut kā tādā, ko var izšķirt tests.
Aizstājiet apgalvojumu par API ar vienu operāciju
API ir transports, nevis spēja. REST galapunkts, lokāla ligzda un komandrindas ietvars visi var tikt saukti par API, un tie nepiedāvā līdzvērtīgas operācijas.
Pierakstiet operāciju kā teikumu pirms dokumentācijas atvēršanas.
Lokāla savienojuma sākšana ir klienta puses darbība, kuras priekšā ir lietotājs. Ierīces profila izsniegšana ir nodrošināšanas darbība, aiz kuras ir inventārs. Lietotāja piekļuves atslēgšana ir administratīva darbība ar audita pēdām. Šīs trīs parasti dzīvo dažādos komponentos, dažādu komandu īpašumā, ar atšķirīgām pilnvarām.
Četri lauki, kas padara līgumu pārbaudāmu
Aizpildiet četrus laukus katrai operācijai: objektu, darbību, izsaucēju un veiksmes nosacījumu. Līgums ar trūkstošu lauku ir vēlēšanās.
Tabula ir viss darba lapa:
| Field | Question | Example |
|---|---|---|
| Object | What is being acted on? | One enrolled device |
| Action | Observe, create, change, start, stop, or revoke? | Revoke |
| Caller | Which identity calls it? | Deployment service |
| Success | What observable state proves it? | Future sign-in denied |
Veiksmes nosacījums ir lauks, ko cilvēki izlaiž, un tieši tas izšķir, vai integrācija strādā. Saglabāts iestatījums nav aktīvs tunelis, un atslēgts konts nav beigusies sesija.
Ja divām operācijām vajadzīgi dažādi izsaucēji, tās ir divas integrācijas. To apvienošana vienā servisa kontā parasti nozīmē piešķirt vairāk pilnvaru, nekā vajag katrai no tām.
Saskaņojiet saskarni ar tās faktisko slāni
OpenVPN kopienas pārvaldības saskarne sazinās ar dēmonu pa TCP vai Unix ligzdu. Tās komandās ietilpst stāvokļa novērošana un signāli dēmonam.
Tas to padara par dēmona vadības kanālu, nevis mitinātu abonementa API vai lietotāju reģistrācijas pakalpojumu. Rūpīga tās dokumentācijas lasīšana pasargā no būvēšanas uz slāņa, kam objekts nepieder.
Tā pati dokumentācija saka, ka protokolam nav sava šifrējuma. Ikviens, kas sasniedz ligzdu, var kontrolēt dēmonu, tāpēc uztveriet to kā sensitīvu vadību, nevis metrikas plūsmu. Piesieniet to pie loopback vai Unix ligzdas un, ja attālinātam izsaucējam tas vajadzīgs, novietojiet aiz ierobežotas kārtības. Tā atklāšana internetā ērtības dēļ pārvērš vadības kanālu incidentā.
Norādiet uzvedību pēc izsaukuma
Pieņemšana nav tas pats, kas pabeigšana. Dēmons var atgriezties pirms tuneļa pacelšanas, tāpēc gaidiet dokumentēto pabeigšanas vai kļūmes notikumu un saistiet to ar nosūtīto pieprasījumu.
Izlemiet, ko izsaucējs dara, ja atbilde pazūd. Akli atkārtot izveidi vai atkārtotu savienojumu nav tas pats, kas pārbaudīt, vai pirmais pieprasījums jau ir iedarbojies.
Piekļuves noņemšana ir vismaz trīs dažādas darbības: bloķēt turpmāku pierakstīšanos, izbeigt aktīvu sesiju un atsaukt akreditācijas datus. Pieprasiet tos, ko politika patiešām prasa, un līgumā pasakiet, kurš ir kurš. Neapzīmējiet vienu veiksmīgu konta atjauninājumu kā pilnīgu atsaukšanu bez pierādījumiem. Atšķirība ir svarīga incidenta laikā, kad pulkstenis iet.
Pārbaudiet līgumu ar pilotu
Mazam apstiprinātam pilotam jāaptver veiksme, noraidījums, pārtraukums un atkārtots mēģinājums, un pēc tam lietojumprogrammas operācija, kurai jābūt atļautai vai aizliegtai.
Dēmona līmeņa saskarnei divas komandas trenē novērošanu un signālu:
echo state | nc -w 2 127.0.0.1 7505
echo signal SIGTERM | nc -w 2 127.0.0.1 7505Piešķiriet tikai tās pilnvaras, ko prasa operācija. Turiet noslēpumus ārpus ikdienas žurnāliem un reģistrējiet pietiekami daudz privātu detaļu, lai pateiktu, kurš mērķis tika skarts un kā tas beidzās.
Pierakstiet atjaunošanas ceļu gadījumam, kad pati vadības API nav pieejama. Izvēlieties saskarni, kurai pieder objekts un tā dzīves cikls; automatizācijas apgalvojumi produkta lapā nav aizstājējs.