Bepale de VPN-operaasje foardat jo API's ferlykje
Ferbiningsbehear, profisjefoarsjenning, brûkersbehear en observaasje binne ferskillende API's. Neam earst it objekt, de aksje en de betingst foar súkses.
In produktpagina seit dat it in API hat, en de yntegraasjefergadering rint fêst by de twadde fraach. Hokker operaasje, op hokker objekt, troch wa oproppen, en wat jildt as súkses? It beäntwurdzjen fan dy fjouwer foardat jo produkten ferlykje, skrast meastentiids de helte fan de kandidaten fuort. It makket ek de oerbleaune ferliking ta eat dat in test besljochtsje kin.
Ferfange de bewearing dat it in API hat troch ien operaasje
In API is in ferfier, net in fermogen. In REST-endpunt, in lokale socket en in kommandorigel-omhulsel kinne allegear API hjitte, en se biede gjin lykweardige operaasjes.
Skriuw de operaasje as in sin foardat jo de dokumintaasje iepenje.
It starten fan in lokale ferbining is in kliïntside-aksje mei in brûker der foar. It útjaan fan in apparaatprofil is in foarsjenningsaksje mei in ynventaris der efter. It útskeakeljen fan tagong fan in brûker is in administraasje-aksje mei in auditspoar. Dy trije libje meastentiids yn ferskillende komponinten, yn eigendom fan ferskillende teams, mei ferskillende autoriteit.
Fjouwer fjilden dy't it kontrakt testber meitsje
Folje fjouwer fjilden yn foar elke operaasje: it objekt, de aksje, de opropper en de betingst foar súkses. In kontrakt mei in ûntbrekkend fjild is in winsk.
De tabel is it hiele wurkblêd:
| 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 |
De betingst foar súkses is it fjild dat minsken oerslaan, en it is dejinge dy't beslút oft de yntegraasje wurket. In bewarre ynstelling is gjin aktive tunnel, en in útskeakele account is gjin einige sesje.
As twa operaasjes ferskillende oproppers nedich hawwe, binne it twa yntegraasjes. Se bondelje yn ien tsjinstaccount betsjut meastentiids mear autoriteit jaan as ien fan beide nedich hat.
Pas de ynterface oan syn wirklike laach oan
De mienskiplike behearynterface fan OpenVPN praat mei in daemon fia TCP of in Unix-socket. Syn opdrachten omfetsje steatsobservaasjes en daemonsignalen.
Dat makket it in kontrôlekanaal foar de daemon, net in hoste abonnemint-API of in brûkerregistraasjetsjinst. It dokumintaasje soarchfâldich lêzen foarkomt dat jo bouwe tsjin in laach dy't it objekt net besit.
Dyselde dokumintaasje seit ek dat it protokol gjin eigen fersifering hat. Wa't de socket berikke kin, kin de daemon kontrolearje, behannelje it dus as gefoelige kontrôle en net as in metryske stream. Byn it oan loopback of in Unix-socket, en set it efter in beheinde regeling as in opôfkoppeler it nedich hat. It iepenbier meitsjen nei it ynternet foar gemak makket fan in kontrôlekanaal in ynsidint.
Bepale gedrach nei de oprop
Akseptaasje is net itselde as foltôging. De daemon kin weromkomme foardat de tunnel omheech is, wachtsje dus op it dokumintearre foltôgings- of mislearringsevent en keppelje it oan it fersyk dat jo stjoerd hawwe.
Beslis wat de opropper docht as it antwurd ferlern giet. In oanmeitsjen of in werferbining blind werhelje is net itselde as kontrolearje oft it earste fersyk al effekt hân hat.
Tagong ferwiderje binne teminsten trije ferskillende aksjes: takomstige oanmelding blokkearje, in libbene sesje beëinigje en de bewiisredens yntrekke. Freegje om dy't it belied echt fereasket, en sis yn it kontrakt hokker hokker is. Labelje ien suksesfolle accountfernijing net as folsleine yntrekking sûnder bewiis. It ferskil is wichtich by in ynsidint, as de klok rint.
Kontrolearje it kontrakt mei in pilot
In lytse goedkarde pilot moat súkses, ôfwizing, ûnderbrekking en opnij probearjen dekke, folge troch de applikaasje-operaasje dy't tastien of wegere wurde moat.
Foar in ynterface op daemonnivo oefenje twa opdrachten observaasje en in signaal:
echo state | nc -w 2 127.0.0.1 7505
echo signal SIGTERM | nc -w 2 127.0.0.1 7505Jou allinnich de autoriteit dy't de operaasje fereasket. Hâld geheimen bûten routine-logs, en log genôch priveedetails om te sizzen hokker doel rekke is en hoe't it einige.
Skriuw it herstelpaad op foar it gefal dat de kontrôle-API sels del is. Kies de ynterface dy't it objekt en syn libbenssyklus besit; automatisearringsbewearings op in produktpagina binne gjin ferfanging.