Iddefinixxi l-operazzjoni tal-VPN qabel ma tqabbel l-API
Il-kontroll tal-konnessjonijiet, il-provvista tal-profili, l-amministrazzjoni tal-utenti u l-osservazzjoni huma API differenti. L-ewwel semmi l-oġġett, l-azzjoni u l-kundizzjoni ta' suċċess.
Paġna tal-prodott tgħid li għandha API, u l-laqgħa tal-integrazzjoni tieqaf fit-tieni mistoqsija. Liema operazzjoni, fuq liema oġġett, min iċċempel, u x'hiex tgħodd bħala suċċess? Li twieġeb dawn l-erbgħa qabel ma tqabbel il-prodotti normalment tneħħi nofs il-kandidati. Hija wkoll iddawwar il-paragun li jifdal f'xi ħaġa li test jista' jiddeċiedi.
Issostitwixxi l-affermazzjoni li għandha API b'operazzjoni waħda
API hija trasport, mhux kapaċità. Punt tat-tmiem REST, socket lokali u kisi tal-linja tal-kmand jistgħu kollha jissejħu API, u ma joffrux operazzjonijiet ekwivalenti.
Ikteb l-operazzjoni bħala sentenza qabel ma tiftaħ id-dokumentazzjoni.
It-tnedija ta' konnessjoni lokali hija azzjoni min-naħa tal-klijent b'utent quddiemha. Il-ħruġ ta' profil ta' apparat hija azzjoni ta' provvista b'inventar warajha. L-iżattivar tal-aċċess ta' utent hija azzjoni amministrattiva b'traċċa ta' verifika. Dawn it-tlieta normalment jgħixu f'komponenti differenti, proprjetà ta' timijiet differenti, b'awtorità differenti.
Erba oqsma li jagħmlu l-kuntratt testabbli
Imla erba oqsma għal kull operazzjoni: l-oġġett, l-azzjoni, min iċċempel u l-kundizzjoni ta' suċċess. Kuntratt b'qasam nieqes huwa xewqa.
It-tabella hija l-folja tax-xogħol kollha:
| 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 |
Il-kundizzjoni ta' suċċess huwa l-qasam li n-nies jaqbeżu, u huwa dak li jiddeċiedi jekk l-integrazzjoni taħdimx. Setting salvat mhuwiex tunnel attiv, u kont diżattivat mhuwiex sessjoni mitmuma.
Jekk żewġ operazzjonijiet jeħtieġu min iċċempel differenti, huma żewġ integrazzjonijiet. Li jiġu miġbura f'kont ta' servizz wieħed normalment ifisser li tingħata aktar awtorità milli teħtieġ waħda minnhom.
Qabbel l-interface mal-livell reali tagħha
L-interface tal-ġestjoni tal-komunità ta' OpenVPN titkellem ma daemon permezz ta' TCP jew socket Unix. Il-kmandi tagħha jinkludu osservazzjonijiet tal-istat u sinjali lid-daemon.
Dan jagħmilha kanal ta' kontroll tad-daemon, mhux API ta' abbonament ospitata u lanqas servizz ta' reġistrazzjoni tal-utenti. Li taqra d-dokumentazzjoni tagħha b'attenzjoni tevita li tibni kontra saff li ma jippossjedix l-oġġett.
L-istess dokumentazzjoni tgħid li l-protokoll ma jġorr l-ebda kriptaġġ tiegħu. Kull min jista' jasal għas-socket jista' jikkontrolla d-daemon, għalhekk ittrattah bħala kontroll sensittiv u mhux bħala fluss ta' metrika. Orbtu ma loopback jew ma socket Unix, u poġġih wara arranġament ristrett jekk min iċċempel mill-bogħod jeħtieġu. L-esponiment tiegħu għall-internet għall-konvenjenza jbiddel kanal ta' kontroll f'inċident.
Speċifika l-imġiba wara s-sejħa
L-aċċettazzjoni mhijiex l-istess bħat-tlestija. Id-daemon jista' jirritorna qabel ma jitla t-tunnel, għalhekk stenna l-avveniment dokumentat ta' tlestija jew falliment u orbtu mat-talba li bgħatt.
Iddeċiedi x'jagħmel min iċċempel jekk ir-risposta tintilef. Li tirrepeti ħolqien jew qagħda mill-ġdid għall-agħma mhuwiex l-istess bħal li tivverifika jekk l-ewwel talba diġà ħadet effett.
It-tneħħija tal-aċċess hija mill-inqas tliet azzjonijiet differenti: timblokka d-dħul fil-futur, ttemm sessjoni attiva u tħassar il-kredenzjali. Itlob dawk li l-politika tassew titlob, u għid fil-kuntratt liema hija liema. Ttikketta aġġornament ta' kont wieħed b'suċċess bħala tħassir sħiħ mingħajr evidenza. Id-differenza tgħodd waqt inċident, meta l-arloġġ ikun miexi.
Iċċekkja l-kuntratt b'pilota
Pilota żgħir approvat għandu jkopri suċċess, rifjut, interruzzjoni u prova mill-ġdid, segwit mill-operazzjoni tal-applikazzjoni li suppost tiġi permessa jew miċħuda.
Għal interface fil-livell tad-daemon, żewġ kmandi jeżerċitaw l-osservazzjoni u sinjal:
echo state | nc -w 2 127.0.0.1 7505
echo signal SIGTERM | nc -w 2 127.0.0.1 7505Agħti biss l-awtorità li teħtieġ l-operazzjoni. Żomm is-sigrieti barra mil-logs ta' rutina, u illogja biżżejjed dettall privat biex tgħid liema mira ntlaqtet u kif spiċċat.
Ikteb il-mogħdija tal-irkupru għall-każ li l-API tal-kontroll stess tkun waqgħet. Agħżel l-interface li tippossjedi l-oġġett u ċ-ċiklu tal-ħajja tiegħu; affermazzjonijiet tal-awtomazzjoni fuq paġna tal-prodott mhumiex sostitut.