Junior
Τι είναι η βασική αυθεντικοποίηση (Basic Auth);
sobes.tech AI
Απάντηση από AI
Ο βασικός μηχανισμός αυθεντικοποίησης είναι ο πιο απλός τρόπος αυθεντικοποίησης πελάτη HTTP, ορισμένος στο πρότυπο RFC 7617.
Αρχή λειτουργίας:
- Ο πελάτης στέλνει ένα αίτημα HTTP σε προστατευμένο πόρο.
- Ο διακομιστής απαντά με κατάσταση
401 Unauthorizedκαι επικεφαλίδαWWW-Authenticate: Basic realm="<realm>", όπου<realm>είναι μια κειμενική περιγραφή της προστατευόμενης περιοχής (πόρου). - Ο περιηγητής ή η εφαρμογή πελάτη εμφανίζει ένα παράθυρο διαλόγου για την εισαγωγή ονόματος χρήστη και κωδικού.
- Ο πελάτης κωδικοποιεί το όνομα χρήστη και τον κωδικό σε μια συμβολοσειρά σε μορφή
username:password. - Η προκύπτουσα συμβολοσειρά κωδικοποιείται με Base64.
- Ο πελάτης επαναλαμβάνει το αίτημα, προσθέτοντας την επικεφαλίδα
Authorization: Basic <base64_κωδικοποιημένη_συμβολοσειρά>, όπου<base64_κωδικοποιημένη_συμβολοσειρά>είναι το αποτέλεσμα της κωδικοποίησης Base64. - Ο διακομιστής αποκωδικοποιεί την συμβολοσειρά Base64, διαχωρίζει το όνομα χρήστη και τον κωδικό και ελέγχει τα διαπιστευτήρια.
- Αν τα διαπιστευτήρια είναι σωστά, ο διακομιστής στέλνει τον ζητούμενο πόρο. Διαφορετικά, απαντά ξανά με
401 Unauthorized.
Παράδειγμα επικεφαλίδας Authorization:
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
όπου YWxhZGRpbjpvcGVuc2VzYW1l είναι μια συμβολοσειρά κωδικοποιημένη σε Base64 από το aladdin:opensesame.
Χαρακτηριστικά:
- Απλότητα: Εύκολη υλοποίηση τόσο στην πλευρά του πελάτη όσο και στην πλευρά του διακομιστή.
- Ασφάλεια: Τα διαπιστευτήρια μεταδίδονται, αν και κωδικοποιούνται σε Base64, αλλά χωρίς κρυπτογράφηση. Το Base64 είναι κωδικοποίηση, όχι κρυπτογράφηση. Κατά την υποκλοπή της κίνησης, τα δεδομένα μπορούν εύκολα να αποκωδικοποιηθούν. Μόνο σε συνδυασμό με HTTPS παρέχει ένα ελάχιστο επίπεδο ασφάλειας.
- Κατάσταση: Δεν διατηρεί κατάσταση στον διακομιστή μεταξύ αιτημάτων (stateless). Κάθε αίτημα απαιτεί την επικεφαλίδα
Authorization. - Εμπειρία χρήστη: Το παράθυρο διαλόγου του περιηγητή είναι λιγότερο ευέλικτο και λιγότερο φιλικό προς τον χρήστη σε σύγκριση με προσαρμοσμένες φόρμες αυθεντικοποίησης.
Χρήση: Χρησιμοποιείται κυρίως για την προστασία API, στατικών πόρων ή σε απλά εσωτερικά συστήματα, όπου η ασφάλεια δεν είναι κρίσιμη, ή πάντα σε συνδυασμό με SSL/TLS (HTTPS).