កំណត់ត្រាការសម្រេចចិត្តខាងស្ថាបត្យកម្ម៖ ជម្រើសនៃការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ និងការផ្តល់សិទ្ធិ
ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ (authentication) និងការផ្តល់សិទ្ធិ (authorization) របស់កម្មវិធីគេហទំព័រ គឺជាគោលគំនិតសំខាន់ពីរក្នុងការធានាសុវត្ថិភាពការចូលប្រើកម្មវិធី និងសេវាកម្ម។ ទាំងពីរទាក់ទងនឹងអត្តសញ្ញាណរបស់អ្នកប្រើ និងរបៀបដែលសិទ្ធិត្រូវបានផ្តល់ ប៉ុន្តែពួកវាផ្តោតលើទិដ្ឋភាពខុសគ្នា៖
- ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ (Authentication) គឺជាដំណើរការនៃការផ្ទៀងផ្ទាត់អត្តសញ្ញាណរបស់អ្នកប្រើ ឬប្រព័ន្ធ។
- ការផ្តល់សិទ្ធិ (Authorization) គឺជាដំណើរការនៃការកំណត់ថាតើធនធាន ឬសកម្មភាពអ្វីខ្លះដែលអ្នកប្រើ ឬប្រព័ន្ធដែលបានផ្ទៀងផ្ទាត់អាចចូលប្រើបាន។
ឥឡូវនេះ ចូរយើងស្វែងយល់ឱ្យស៊ីជម្រៅអំពីពិធីការ និងបច្ចេកវិទ្យាជាក់លាក់ដែលអ្នកបានលើកឡើង ដែលត្រូវបានប្រើជាទូទៅក្នុងកម្មវិធីគេហទំព័រទំនើប សម្រាប់គ្រប់គ្រងការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ និងការផ្តល់សិទ្ធិ។
1. OAuth (Open Authorization)
OAuth គឺជាស្តង់ដារបើកចំហសម្រាប់ការផ្តល់សិទ្ធិ។ វាអនុញ្ញាតឱ្យអ្នកប្រើផ្តល់ការចូលប្រើមានកំណត់ដល់កម្មវិធីភាគីទីបីចំពោះធនធានរបស់ពួកគេ ដោយមិនចាំបាច់ចែករំលែកព័ត៌មានសម្ងាត់ចូលប្រើរបស់ពួកគេ។ គំនិតសំខាន់គឺ ការចូលប្រើដែលបានប្រគល់សិទ្ធិ។ OAuth ត្រូវបានប្រើជារឿយៗក្នុងស្ថានភាពដែលអ្នកប្រើអាចចូលទៅកាន់សេវាកម្មភាគីទីបី (ឧ. ចូលដោយប្រើ Google) ដោយមិនផ្តល់ឈ្មោះអ្នកប្រើ និងពាក្យសម្ងាត់ផ្ទាល់ទៅភាគីទីបីនោះ។
- លំហូរ: OAuth ជាធម្មតាអនុវត្តតាមលំហូរ ផ្អែកលើថូខឹន (token) ដែលម៉ាស៊ីនមេផ្តល់សិទ្ធិចេញថូខឹនចូលប្រើទៅកម្មវិធីភាគីទីបី។ ថូខឹននេះតំណាងឱ្យសិទ្ធិរបស់អ្នកប្រើ ហើយកម្មវិធីប្រើវាដើម្បីចូលប្រើទិន្នន័យ ឬធនធានរបស់អ្នកប្រើពី API។
- ឧទាហរណ៍: អ្នកប្រើចូលទៅកាន់កម្មវិធីភាគីទីបីដោយប្រើគណនី Google របស់ពួកគេ។ Google ផ្ទៀងផ្ទាត់អត្តសញ្ញាណរបស់អ្នកប្រើ ហើយបន្ទាប់មកផ្តល់ថូខឹនដែលអនុញ្ញាតឱ្យកម្មវិធីភាគីទីបីចូលប្រើទិន្នន័យ Google មួយចំនួន (ឧ. Google Calendar)។
OAuth មិនដោះស្រាយការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវដោយផ្ទាល់ទេ វាគឺអំពីការផ្តល់ការចូលប្រើ។ សម្រាប់ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ OAuth ត្រូវបានផ្គូផ្គងជារឿយៗជាមួយពិធីការផ្សេងទៀត ដូចជា OpenID Connect។
2. OpenID Connect (OIDC)
OpenID Connect (OIDC) គឺជាស្រទាប់អត្តសញ្ញាណដែលកសាងលើ OAuth 2.0 ដែលបន្ថែមការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវទៅលើសមត្ថភាពផ្តល់សិទ្ធិរបស់ OAuth។ ជាសំខាន់ OpenID Connect ពង្រីក OAuth ដើម្បីដោះស្រាយ ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវរបស់អ្នកប្រើ ហើយផ្តល់វិធីស្តង់ដារសម្រាប់កម្មវិធីក្នុងការផ្ទៀងផ្ទាត់អត្តសញ្ញាណរបស់អ្នកប្រើ។
- លំហូរ: នៅពេលអ្នកប្រើចូលដោយប្រើ OpenID Connect កម្មវិធីភាគីទីបីស្នើសុំថូខឹនអត្តសញ្ញាណ (ID token) (បន្ថែមលើថូខឹនចូលប្រើ OAuth)។ ថូខឹនអត្តសញ្ញាណមានព័ត៌មានអំពីអ្នកប្រើ (ដូចជាឈ្មោះអ្នកប្រើ អ៊ីមែល និងការអះអាងផ្សេងទៀត)។ នេះអនុញ្ញាតឱ្យកម្មវិធីដឹងថាអ្នកប្រើជានរណា និងថាតើពួកគេត្រូវបានផ្ទៀងផ្ទាត់ឬអត់។
- ឧទាហរណ៍: ការចូលទៅកាន់សេវាកម្មដូចជា Slack ដោយប្រើគណនី Google របស់អ្នក (Google ជាអ្នកផ្តល់ OpenID Connect) ពាក់ព័ន្ធនឹងការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវតាមរយៈ OpenID Connect ចំណែក OAuth គ្រប់គ្រងការចូលប្រើធនធាន Google របស់អ្នក។
OIDC ធ្វើឱ្យកម្មវិធីភាគីទីបីងាយស្រួលជាងក្នុងការ ផ្ទៀងផ្ទាត់អ្នកប្រើ ខណៈដែលនៅតែអនុញ្ញាតឱ្យមានការគ្រប់គ្រងលម្អិតលើធនធានដែលកម្មវិធីទាំងនោះអាចចូលប្រើ។
3. SAML (Security Assertion Markup Language)
SAML គឺជាស្តង់ដារចាស់ជាងដែលផ្អែកលើ XML ប្រើសម្រាប់ផ្លាស់ប្តូរទិន្នន័យការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ និងការផ្តល់សិទ្ធិរវាងភាគី ជាពិសេសក្នុងស្ថានភាព Single Sign-On (SSO)។ វាត្រូវបានប្រើជាចម្បងក្នុងបរិស្ថានសហគ្រាស ដើម្បីអនុញ្ញាតឱ្យអ្នកប្រើផ្ទៀងផ្ទាត់ម្តង ហើយចូលប្រើកម្មវិធីច្រើនដោយមិនត្រូវបញ្ចូលព័ត៌មានសម្ងាត់ម្តងទៀត។
- លំហូរ: អ្នកប្រើដំបូងផ្ទៀងផ្ទាត់ជាមួយអ្នកផ្តល់អត្តសញ្ញាណ (IdP)។ IdP បង្កើត SAML assertion ដែលបានចុះហត្ថលេខា ដែលរួមមានអត្តសញ្ញាណរបស់អ្នកប្រើ និងគុណលក្ខណៈពាក់ព័ន្ធ។ assertion ត្រូវបានផ្ញើទៅអ្នកផ្តល់សេវា (SP) ដែលប្រើវាដើម្បីផ្តល់សិទ្ធិចូលប្រើកម្មវិធី។
- ឧទាហរណ៍: និយោជិតម្នាក់ចូលទៅកាន់វិបផតថលក្រុមហ៊ុនរបស់ពួកគេ (IdP) ហើយត្រូវបានចូលដោយស្វ័យប្រវត្តិទៅកាន់ប្រព័ន្ធផ្សេងទៀតដូចជាអ៊ីមែល CRM ។ល។ ដោយមិនត្រូវបញ្ចូលព័ត៌មានសម្ងាត់ម្តងទៀត។ ដំណើរការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវផ្អែកលើ SAML assertion ដែលផ្ញើដោយ IdP។
SAML ត្រូវបានប្រើជាទូទៅក្នុង ដំណោះស្រាយ SSO សហគ្រាស ហើយដំណើរការបានល្អសម្រាប់កម្មវិធីគេហទំព័រក្នុងបរិស្ថានក្រុមហ៊ុន ប៉ុន្តែវាមិនសូវងាយស្រួលសម្រាប់ឧបករណ៍ចល័តប្រៀបធៀបនឹង OAuth/OIDC។
4. WS-Federation (Web Services Federation)
WS-Federation គឺជាពិធីការមួយទៀតដែលប្រើសម្រាប់ Single Sign-On (SSO) ជាពិសេសក្នុងបរិស្ថានសហគ្រាសផ្អែកលើ Microsoft។ វាជាផ្នែកនៃក្រុមលក្ខណៈបច្ចេកទេស WS- (Web Services)* ហើយអនុញ្ញាតឱ្យមានសហព័ន្ធអត្តសញ្ញាណនៅទូទាំងដែនសុវត្ថិភាពផ្សេងៗ (ដូចជារវាងអង្គការផ្សេងៗ ឬរវាងសេវាកម្មផ្សេងៗ)។
- លំហូរ: WS-Federation អនុញ្ញាតឱ្យ អ្នកផ្តល់អត្តសញ្ញាណដែលទុកចិត្ត (IdP) ផ្ទៀងផ្ទាត់អ្នកប្រើ និងចេញថូខឹនដែលអ្នកផ្តល់សេវាអាចប្រើសម្រាប់ការផ្តល់សិទ្ធិ។ វាស្រដៀងនឹង SAML ប៉ុន្តែត្រូវបានប្រើជារឿយៗក្នុងស្ថានភាពដែលពឹងផ្អែកខ្លាំងលើបច្ចេកវិទ្យា Microsoft។
- ឧទាហរណ៍: អ្នកប្រើចូលទៅកាន់កម្មវិធីសហគ្រាសដែលបង្ហោះដោយ Microsoft Azure Active Directory (AD) ហើយអត្តសញ្ញាណរបស់ពួកគេអាចត្រូវបានប្រើដើម្បីចូលប្រើសេវាកម្មសហព័ន្ធផ្សេងទៀត រួមទាំងកម្មវិធីដែលបង្ហោះដោយអ្នកលក់ភាគីទីបី។
ទោះបី WS-Federation ត្រូវបានជំនួសភាគច្រើនដោយពិធីការថ្មីជាងដូចជា OAuth2.0 និង OpenID Connect ក្នុងបរិស្ថានគេហទំព័រទំនើបជាច្រើនក៏ដោយ វានៅតែត្រូវបានប្រើក្នុងប្រព័ន្ធចាស់ ជាពិសេសក្នុងសហគ្រាសដែលផ្តោតលើ Microsoft។
5. LDAP (Lightweight Directory Access Protocol)
LDAP គឺជាពិធីការដែលប្រើដើម្បីចូលប្រើ និងគ្រប់គ្រងសេវាកម្មថតរចនាសម្ព័ន្ធ ដែលប្រើជាទូទៅសម្រាប់ ផ្ទុកព័ត៌មានសម្ងាត់ចូលប្រើរបស់អ្នកប្រើ និងគ្រប់គ្រងការត្រួតពិនិត្យការចូលប្រើក្នុងថតកណ្តាល (ហៅជារឿយៗថា សេវាកម្មថត)។ LDAP មិនមែនជាពិសេសអំពីការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ ឬការផ្តល់សិទ្ធិទេ ប៉ុន្តែត្រូវបានប្រើដើម្បីផ្ទុក និងទាញយកទិន្នន័យអត្តសញ្ញាណ ដែលបន្ទាប់មកត្រូវបានប្រើក្នុងដំណើរការទាំងនោះ។
- ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ: LDAP អនុញ្ញាតឱ្យកម្មវិធីផ្ទៀងផ្ទាត់អ្នកប្រើ ដោយសាកសួរសេវាកម្មថតសម្រាប់ព័ត៌មានសម្ងាត់ (ដូចជាពាក្យសម្ងាត់)។
- ការផ្តល់សិទ្ធិ: វាក៏គ្រប់គ្រងតួនាទី និងសិទ្ធិរបស់អ្នកប្រើ ដោយជួយកំណត់ថាតើអ្នកប្រើមានសិទ្ធិចូលប្រើធនធានជាក់លាក់ឬអត់។
- ឧទាហរណ៍: សហគ្រាសជាច្រើនប្រើថតផ្អែកលើ LDAP (ឧ. Active Directory) សម្រាប់ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ និងការផ្តល់សិទ្ធិ ជាពិសេសក្នុងបរិស្ថាន Windows។
LDAP មានសារៈសំខាន់សម្រាប់សហគ្រាសក្នុងការគ្រប់គ្រងការចូលប្រើរបស់អ្នកប្រើនៅទូទាំងប្រព័ន្ធខាងក្នុង ប៉ុន្តែក្នុងបរិបទគេហទំព័រទំនើប LDAP ត្រូវបានរួមបញ្ចូលជារឿយៗជាមួយពិធីការផ្សេងទៀតដូចជា SAML ឬ OAuth សម្រាប់ការគ្រប់គ្រងអត្តសញ្ញាណកាន់តែពេញលេញ។
6. អ្នកផ្តល់ Social SSO
អ្នកផ្តល់ Single Sign-On (SSO) តាមបណ្តាញសង្គម ដូចជា Facebook, Google, Twitter, GitHub និងផ្សេងទៀត អនុញ្ញាតឱ្យអ្នកប្រើផ្ទៀងផ្ទាត់ចូលទៅកាន់កម្មវិធីភាគីទីបី ដោយប្រើព័ត៌មានសម្ងាត់បណ្តាញសង្គមរបស់ពួកគេ។ នេះគឺជាប្រភេទនៃ ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវផ្អែកលើ OAuth ដែលសេវាកម្មភាគីទីបី (ឧ. Google) ជាអ្នកផ្តល់អត្តសញ្ញាណ។
- លំហូរ: អ្នកប្រើចុច “ចូលដោយ Google” (ជាឧទាហរណ៍)។ កម្មវិធីបញ្ជូនបន្តទៅ Google ដែលអ្នកប្រើចូល (ប្រសិនបើមិនទាន់បានចូល)។ បន្ទាប់មក Google ផ្តល់ថូខឹនចូលប្រើ ឬថូខឹនអត្តសញ្ញាណទៅកម្មវិធីភាគីទីបី ដែលអាចត្រូវបានប្រើដើម្បីផ្ទៀងផ្ទាត់អ្នកប្រើ ហើយប្រហែលជាចូលប្រើទិន្នន័យរបស់ពួកគេ។
- ឧទាហរណ៍: កម្មវិធីជាច្រើនអនុញ្ញាតឱ្យអ្នកចូលដោយប្រើព័ត៌មានសម្ងាត់ Google ឬ Facebook របស់អ្នក។ កម្មវិធីនឹងប្រើ OAuth ឬ OpenID Connect នៅពីក្រោយឆាក ដើម្បីផ្ទៀងផ្ទាត់អត្តសញ្ញាណរបស់អ្នក ហើយក្នុងករណីខ្លះចូលប្រើទិន្នន័យបណ្តាញសង្គមមួយចំនួន។
Social SSO គឺជាវិធីសាស្ត្រងាយស្រួល និងត្រូវបានទទួលយកយ៉ាងទូលំទូលាយសម្រាប់ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ ព្រោះវាកាត់បន្ថយការលំបាកសម្រាប់អ្នកប្រើ ដែលប្រហែលជាមិនចង់បង្កើតឈ្មោះអ្នកប្រើ និងពាក្យសម្ងាត់មួយទៀត។
សេចក្តីសង្ខេបនៃភាពខុសគ្នា៖
- OAuth: ប្រើសម្រាប់ការផ្តល់សិទ្ធិ អនុញ្ញាតឱ្យកម្មវិធីភាគីទីបីចូលប្រើទិន្នន័យអ្នកប្រើ ដោយមិនបង្ហាញព័ត៌មានសម្ងាត់។
- OpenID Connect: ពង្រីក OAuth ដើម្បីផ្តល់ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ ដែលអនុញ្ញាតឱ្យកម្មវិធីផ្ទៀងផ្ទាត់អត្តសញ្ញាណអ្នកប្រើ។
- SAML: ពិធីការផ្អែកលើ XML ប្រើសម្រាប់ SSO ជារឿយៗក្នុងបរិស្ថានសហគ្រាស។
- WS-Federation: ពិធីការជាក់លាក់របស់ Microsoft សម្រាប់សហព័ន្ធអត្តសញ្ញាណ ប្រើក្នុងប្រព័ន្ធចាស់។
- LDAP: ពិធីការសម្រាប់សាកសួរសេវាកម្មថតដើម្បីផ្ទៀងផ្ទាត់អ្នកប្រើ និងគ្រប់គ្រងការផ្តល់សិទ្ធិ។
- អ្នកផ្តល់ Social SSO: ប្រព័ន្ធផ្អែកលើ OAuth (ដូចជា Google, Facebook) ដែលអនុញ្ញាតឱ្យកម្មវិធីភាគីទីបីផ្ទៀងផ្ទាត់អ្នកប្រើ ដោយប្រើព័ត៌មានសម្ងាត់បណ្តាញសង្គមរបស់ពួកគេ។
បច្ចេកវិទ្យានីមួយៗទាំងនេះមានចំណុចខ្លាំង និងករណីប្រើប្រាស់ផ្ទាល់ខ្លួន ហើយក្នុងកម្មវិធីទំនើប អ្នកអាចឃើញការផ្សំគ្នានៃពួកវាត្រូវបានប្រើសម្រាប់ទិដ្ឋភាពផ្សេងៗនៃសុវត្ថិភាព (ឧ. OAuth/OIDC សម្រាប់ការចូលប្រើ API, SAML សម្រាប់ SSO សហគ្រាស)។