# ऑथेंटिकेशन, ऑथराइज़ेशन और एन्क्रिप्शन — System Design: Architecture, Scale और Trade-offs

Source: https://www.skillbyai.com/hi/system-design/sd-security-basics

> Authentication को authorization से अलग रखें, JWT जैसे signed tokens उपयोग करें, और transit व rest में data सुरक्षित रखें।

## AuthN बनाम AuthZ

**ऑथेंटिकेशन** पहचान की पुष्टि करता है ('आप प्रिया हैं') — पासवर्ड, टोकन, OAuth। **ऑथराइज़ेशन** तय करता है कि वह पहचान क्या कर सकती है ('प्रिया इस ऑर्डर को पढ़ सकती है पर मिटा नहीं सकती') — रोल, स्कोप, ACL। इन्हें अलग जाँच रखें; इन्हें मिलाने से सुरक्षा बग और भ्रामक एरर दोनों होते हैं।

## स्केल पर ऑथ

साझा डेटाबेस के साथ हर सेवा पर पहचान सत्यापित करना स्केल नहीं करता। **साइन्ड टोकन (JWT)** पहचान और दावे ले जाते हैं जिन्हें कोई भी सेवा पब्लिक की से स्थानीय रूप से सत्यापित कर सकती है — ऑथ सेवा को प्रति-रिक्वेस्ट कॉल नहीं। ट्रेड-ऑफ: एक्सपायर होने से पहले टोकन रद्द करना कठिन है।

## फ़ेस्टिवल में रिस्टबैंड

JWT प्रवेश द्वार पर लगाई गई फ़ेस्टिवल रिस्टबैंड जैसा है: कोई भी स्टाफ़ सदस्य एक नज़र में जान सकता है कि आपको अंदर आने की अनुमति है (ऑथेंटिकेशन) और आपका रंग किन क्षेत्रों की अनुमति देता है (ऑथराइज़ेशन), हर बार टिकट बूथ को रेडियो किए बिना।

**Quiz:** 'ट्रांज़िट में एन्क्रिप्शन' किससे सुरक्षा देता है, जो 'रेस्ट में एन्क्रिप्शन' नहीं देता?

- [ ] कोई भौतिक डिस्क चुरा ले
- [ ] एक समझौता किया गया डेटाबेस बैकअप
- [ ] कमज़ोर password policy
- [x] कोई नेटवर्क पर यात्रा करते समय डेटा को इंटरसेप्ट करे

*Answer:* कोई नेटवर्क पर यात्रा करते समय डेटा को इंटरसेप्ट करे. TLS क्लाइंट और सर्वर के बीच या सेवाओं के बीच चलते डेटा की रक्षा करता है; रेस्ट-एन्क्रिप्शन डिस्क पर संग्रहीत डेटा की रक्षा करता है। आपको दोनों चाहिए।
