Določite operacijo VPN, preden primerjate API-je
Nadzor povezave, priprava profilov, upravljanje uporabnikov in opazovanje so različni API-ji. Najprej poimenujte predmet, dejanje in pogoj uspeha.
Stran izdelka pravi, da ima API, sestanek o integraciji pa se ustavi pri drugem vprašanju. Katera operacija, na katerem predmetu, kdo jo kliče in kaj šteje kot uspeh? Odgovor na ta štiri vprašanja pred primerjavo izdelkov običajno odstrani polovico kandidatov. Tudi preostalo primerjavo spremeni v nekaj, kar lahko razreši test.
Zamenjajte »ima API« z eno operacijo
API je transport, ne zmožnost. Končna točka REST, lokalni vtič in ovoj ukazne vrstice se lahko vsi imenujejo API, vendar ne ponujajo enakovrednih operacij.
Zapišite operacijo kot stavek, preden pogledate dokumentacijo.
Začetek lokalne povezave je dejanje na strani odjemalca z uporabnikom pred njim. Izdaja profila naprave je pripravljalno dejanje z inventarjem za seboj. Onemogočenje dostopa uporabnika je upravno dejanje s sledjo revizije. Ti trije običajno živijo v različnih komponentah, ki jih imajo različne ekipe z različnimi pooblastili.
Štiri polja, ki naredijo pogodbo preverljivo
Izpolnite štiri polja za vsako operacijo: predmet, dejanje, klicatelja in pogoj uspeha. Pogodba z manjkajočim poljem je le želja.
Tabela je celoten delovni list:
| 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 |
Pogoj uspeha je polje, ki ga ljudje preskočijo, in prav on odloča, ali integracija deluje. Shranjena nastavitev ni aktivni tunel, onemogočen račun pa ni končana seja.
Če dve operaciji potrebujeta različna klicatelja, sta to dve integraciji. Združitev v en servisni račun običajno pomeni podelitev večjih pooblastil, kot jih potrebuje katera koli od njiju.
Uskladite vmesnik s plastjo, ki ji res pripada
Skupnostni upravljalni vmesnik OpenVPN se pogovarja z demonom prek TCP ali vtiča Unix. Njegovi ukazi vključujejo opazovanje stanja in signale demonu.
Zato je nadzorni kanal demona, ne gostovani naročniški API ali storitev za registracijo uporabnikov. Skrbno branje njegove dokumentacije vas reši gradnje na plasti, ki predmeta ne poseduje.
Ta dokumentacija tudi pravi, da protokol nima lastnega šifriranja. Kdor doseže vtič, lahko nadzoruje demona, zato ga obravnavajte kot občutljiv nadzor, ne kot tok meritev. Vežite ga na loopback ali vtič Unix in ga postavite za omejeno ureditev, če ga oddaljeni klicatelj potrebuje. Izpostavitev internetu zaradi udobja spremeni nadzorni kanal v incident.
Določite vedenje po klicu
Sprejem ni isto kot dokončanje. Demon se lahko vrne, preden tunel vstane, zato počakajte na dokumentirani dogodek dokončanja ali neuspeha in ga povežite z zahtevo, ki ste jo poslali.
Odločite, kaj klicatelj naredi, če se odgovor izgubi. Slepo ponavljanje ustvarjanja ali ponovne povezave ni isto kot preverjanje, ali je prva zahteva že učinkovala.
Odvzem dostopa so vsaj tri različna dejanja: blokiranje prihodnje prijave, končanje aktivne seje in preklic poverilnice. Zahtevajte tista, ki jih politika res potrebuje, in v pogodbi povejte, katero je katero. Ne označite ene uspešne posodobitve računa kot popolnega preklica brez dokazov. Razlika je pomembna med incidentom, ko ura teče.
Preverite pogodbo s pilotom
Majhen odobren pilot naj pokrije uspeh, zavrnitev, prekinitev in ponovni poskus, nato pa operacijo aplikacije, ki naj bo dovoljena ali zavrnjena.
Za vmesnik na ravni demona dva ukaza vadita opazovanje in signal:
echo state | nc -w 2 127.0.0.1 7505
echo signal SIGTERM | nc -w 2 127.0.0.1 7505Dodelite le pooblastilo, ki ga operacija zahteva. Skrivnosti hranite zunaj rutinskih dnevnikov in zabeležite dovolj zasebnih podrobnosti, da lahko poveste, kateri cilj je bil prizadet in kako se je končalo.
Zapišite pot obnovitve za primer, ko je nadzorni API sam nedosegljiv. Izberite vmesnik, ki poseduje predmet in njegov življenjski cikel; trditve o avtomatizaciji na strani izdelka niso nadomestilo.