Authentication & Authorization in OpenShift
OpenShift मधील Authentication (ओळख पटविणे / प्रमाणीकरण) आणि Authorization (अधिकार परवानगी) हे दोन महत्वाचे सुरक्षा घटक आहेत, विशेषतः जेव्हा आपण क्लस्टरमध्ये सुरक्षेचा विचार करता.
Authentication (ओळख पटविणे) म्हणजे काय?
Authentication म्हणजे कोण access घेण्याचा प्रयत्न करत आहे हे ओळखणे. किवा Authentication म्हणजे वापरकर्ता कोण आहे हे ओळखणे.
उदाहरणार्थ: एखादा यूजर किंवा सेवा (service) OpenShift मध्ये लॉगिन करत असताना त्याची ओळख निश्चित केली जाते – यालाच Authentication म्हणतात
OpenShift मध्ये Authentication कशाप्रकारे काम करते?
- वापरकर्त्याला लॉगिन करताना OpenShift ला ओढख दिली जाते
- OpenShift मध्ये वेगवेगळ्या Authentication Provider चा वापर केला जातो
OpenShift वेगवेगळ्या प्रकारचे ओळख पटविण्याचे पर्याय वापरतो:
- OAuth (Open Authorization) – GitHub, Google, OpenID, etc
- LDAP (उदा. कंपनीचा user directory)
- HTPasswd (फाईल बेस्ड यूजर)
- Keystone (OpenStack साठी)
- Request Header Based Authentication
- GitHub / Google login
- Kerberos / Active Directory
उदाहरण: जर एखादा यूजर oc login वापरून लॉगिन करत असेल, तर OpenShift तो कोण आहे हे verify करतो. किवा जर तुम्ही GitHub वापरुन लॉगिन करता, तर GitHub तुमचं प्रमाणीकरण करतो आणि OpenShift तुम्हाला ओढखतो.
Authorization (अधिकार परवानगी) म्हणजे काय?
Authorization म्हणजे त्या यूजरला काय परवानगी आहे ते तपासणे. किवा Authorization म्हणजे एखाद्या वापरकर्त्याला काय करू दिल जाईल ह्या गोष्टी ठरवणे
Authentication नंतर OpenShift तपासतो की त्या यूजरला एखाद्या action ची परवानगी आहे का – उदा:
- Pod तयार करणे
- Deployment delete करणे
- Logs पाहणे
OpenShift मध्ये Authorization कशाप्रकारे काम करते?
- OpenShift मध्ये RBAC (Role-Based Access Control) वापरले जाते.
- RBAC नुसार, प्रत्येक वापरकर्त्याला Roles दिले जातात.
- Role मध्ये काही permissions (अधिकार) दिलेले असतात.
मुख्य गोष्टी:
- Role – कोणते अधिकार दिले आहेत (जसे की pod वाचणे, तयार करणे इ.)
- RoleBinding – कोणत्या user/group ला कोणते role द्यायचे याबद्दल सांगते किवा कोणते role लागू आहेत
Role चे प्रकार
- ClusterRole – संपूर्ण क्लस्टरसाठी अधिकार
- Role – एका namespace साठी अधिकार
समजा – एक वापरकर्ता developer1 आहे
- तो GitHub वापरुन लॉगिन करतो – Authentication झाल
- त्याला edit नावाचा role दिला गेला आहे project – a मध्ये – Authorization झाल म्हणजे तो project – a मध्ये pods तयार करू शकतो पण project – b मध्ये नाही.
घटक | अर्थ |
Authentication | वापरकर्ता कोण आहे हे ओढखणे |
Authorization | वापरकर्त्याला काय परवानगी आहे ते ठरवणे |
RBAC | Role-Based access control – Role आणि permission च व्यवस्थापण |
- उदाहरण:
kind: Role
metadata:
name: pod-reader
rules:
– apiGroups: [“”]
resources: [“pods”]
verbs: [“get”, “list”]
- ही Role एखाद्या user ला bind केली तर त्या user ला pod वाचायची परवानगी मिळते.
Authentication + Authorization = सुरक्षित OpenShift
एकदा user ची ओळख पटली (authentication), त्यानंतर OpenShift ठरवतो की त्याला काय करता येईल (authorization). दोन्ही एकत्र वापरून OpenShift सुरक्षिततेसाठी मजबूत प्रणाली तयार करतो.
वापराचे उदाहरण:
oc login –token=abc123 –server=https://mycluster.example.com
- हे authentication आहे – कोण login करत आहे ते तपासले जाते.
oc get pods
- हे authorization तपासते – logged in user ला pods पाहण्याची परवानगी आहे का?
