Ορίστε τη λειτουργία VPN πριν συγκρίνετε API
Ο έλεγχος σύνδεσης, η παροχή προφίλ, η διαχείριση χρηστών και η παρατήρηση είναι διαφορετικά API. Ονομάστε πρώτα το αντικείμενο, την ενέργεια και τη συνθήκη επιτυχίας.
Μια σελίδα προϊόντος λέει ότι έχει API, και η συνάντηση ενοποίησης κολλάει στη δεύτερη ερώτηση. Ποια λειτουργία, σε ποιο αντικείμενο, από ποιον καλείται και τι μετράει ως επιτυχία; Η απάντηση σε αυτά τα τέσσερα πριν από τη σύγκριση προϊόντων συνήθως εξαλείφει τους μισούς υποψηφίους. Κάνει επίσης την υπόλοιπη σύγκριση κάτι που μπορεί να κρίνει μια δοκιμή.
Αντικαταστήστε τη δήλωση ότι έχει API με μία λειτουργία
Το API είναι μεταφορά, όχι δυνατότητα. Ένα τελικό σημείο REST, ένα τοπικό socket και ένα περιτύλιγμα γραμμής εντολών μπορούν όλα να ονομαστούν API, και δεν προσφέρουν ισοδύναμες λειτουργίες.
Γράψτε τη λειτουργία ως πρόταση πριν ανοίξετε την τεκμηρίωση.
Η έναρξη τοπικής σύνδεσης είναι ενέργεια στην πλευρά του πελάτη με έναν χρήστη μπροστά της. Η έκδοση προφίλ συσκευής είναι ενέργεια παροχής με ένα απόθεμα πίσω της. Η απενεργοποίηση της πρόσβασης χρήστη είναι διοικητική ενέργεια με ίχνος ελέγχου. Αυτά τα τρία ζουν συνήθως σε διαφορετικά στοιχεία, ανήκουν σε διαφορετικές ομάδες και έχουν διαφορετική εξουσία.
Τέσσερα πεδία που κάνουν το συμβόλαιο ελέγξιμο
Συμπληρώστε τέσσερα πεδία για κάθε λειτουργία: το αντικείμενο, την ενέργεια, τον καλούντα και τη συνθήκη επιτυχίας. Ένα συμβόλαιο με πεδίο που λείπει είναι μια ευχή.
Ο πίνακας είναι ολόκληρο το φύλλο εργασίας:
| 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 |
Η συνθήκη επιτυχίας είναι το πεδίο που οι άνθρωποι παραλείπουν, και είναι αυτό που κρίνει αν η ενοποίηση λειτουργεί. Μια αποθηκευμένη ρύθμιση δεν είναι ενεργή σήραγγα, και ένας απενεργοποιημένος λογαριασμός δεν είναι τερματισμένη συνεδρία.
Αν δύο λειτουργίες χρειάζονται διαφορετικούς καλούντες, είναι δύο ενοποιήσεις. Η συγκέντρωσή τους σε έναν λογαριασμό υπηρεσίας συνήθως σημαίνει παραχώρηση μεγαλύτερης εξουσίας από όση χρειάζεται οποιαδήποτε από τις δύο.
Ταιριάξτε τη διεπαφή με το πραγματικό της επίπεδο
Η κοινοτική διεπαφή διαχείρισης του OpenVPN μιλά με έναν δαίμονα μέσω TCP ή Unix socket. Οι εντολές της περιλαμβάνουν παρατηρήσεις κατάστασης και σήματα προς τον δαίμονα.
Αυτό την κάνει κανάλι ελέγχου του δαίμονα, όχι φιλοξενούμενο API συνδρομής ούτε υπηρεσία εγγραφής χρηστών. Η προσεκτική ανάγνωση της τεκμηρίωσής της σας γλιτώνει από το να χτίσετε πάνω σε ένα επίπεδο που δεν κατέχει το αντικείμενο.
Η ίδια τεκμηρίωση λέει ότι το πρωτόκολλο δεν φέρει δική του κρυπτογράφηση. Όποιος μπορεί να φτάσει στο socket μπορεί να ελέγξει τον δαίμονα, γι αυτό αντιμετωπίστε το ως ευαίσθητο έλεγχο και όχι ως ροή μετρικών. Δέστε το σε loopback ή Unix socket, και βάλτε το πίσω από περιορισμένη ρύθμιση αν το χρειάζεται απομακρυσμένος καλών. Η έκθεσή του στο διαδίκτυο για ευκολία μετατρέπει ένα κανάλι ελέγχου σε περιστατικό.
Καθορίστε τη συμπεριφορά μετά την κλήση
Η αποδοχή δεν είναι το ίδιο με την ολοκλήρωση. Ο δαίμονας μπορεί να επιστρέψει πριν σηκωθεί η σήραγγα, οπότε περιμένετε το τεκμηριωμένο συμβάν ολοκλήρωσης ή αποτυχίας και συνδέστε το με το αίτημα που στείλατε.
Αποφασίστε τι κάνει ο καλών αν χαθεί η απάντηση. Η τυφλή επανάληψη μιας δημιουργίας ή επανασύνδεσης δεν είναι το ίδιο με τον έλεγχο αν το πρώτο αίτημα έχει ήδη δράσει.
Η αφαίρεση πρόσβασης είναι τουλάχιστον τρεις διαφορετικές ενέργειες: αποκλεισμός μελλοντικής σύνδεσης, τερματισμός ζωντανής συνεδρίας και ανάκληση του διαπιστευτηρίου. Ζητήστε όσες απαιτεί πραγματικά η πολιτική, και πείτε στο συμβόλαιο ποια είναι ποια. Μην χαρακτηρίσετε μια επιτυχημένη ενημέρωση λογαριασμού ως πλήρη ανάκληση χωρίς απόδειξη. Η διαφορά μετράει κατά τη διάρκεια ενός περιστατικού, όταν το ρολόι τρέχει.
Δοκιμάστε το συμβόλαιο με πιλότο
Ένας μικρός εγκεκριμένος πιλότος πρέπει να καλύπτει επιτυχία, απόρριψη, διακοπή και επανάληψη, και μετά τη λειτουργία εφαρμογής που υποτίθεται ότι επιτρέπεται ή απαγορεύεται.
Για διεπαφή σε επίπεδο δαίμονα, δύο εντολές ασκούν παρατήρηση και σήμα:
echo state | nc -w 2 127.0.0.1 7505
echo signal SIGTERM | nc -w 2 127.0.0.1 7505Παραχωρήστε μόνο την εξουσία που απαιτεί η λειτουργία. Κρατήστε τα μυστικά έξω από τα συνήθη αρχεία καταγραφής, και καταγράψτε αρκετή ιδιωτική λεπτομέρεια για να πείτε ποιος στόχος επηρεάστηκε και πώς τελείωσε.
Γράψτε τη διαδρομή ανάκτησης για την περίπτωση που το ίδιο το API ελέγχου είναι κάτω. Επιλέξτε τη διεπαφή που κατέχει το αντικείμενο και τον κύκλο ζωής του· οι ισχυρισμοί αυτοματισμού σε μια σελίδα προϊόντος δεν είναι υποκατάστατο.