สวัสดีครับเพื่อน ๆ ชาว IT วันนี้กลับมาพบกันอีกครั้งกับ Cloud HM Blog สาระน่ารู้ และข่าวสารทางด้าน IT ใหม่ ๆ อัพเดททุกเดือน สำหรับเรื่องที่จะมาแนะนำกันในครั้งนี้ก็คือ Single Sign-on นั่นเองครับ หลาย ๆ คนเคยได้ยินชื่อแต่อาจจะยังไม่รู้ว่ามันคืออะไร วันนี้เรามาดูกันครับ
Single Sign-on คืออะไร?
Single Sign-on หรือตัวย่อคือ SSO คือ Service ที่ใช้ในการตรวจสอบก่อนการอนุญาตในการเข้าถึงบริการต่าง ๆ ที่ต้องอาศัยการตรวจสอบสิทธิ์ด้วยการ Login ด้วยการใช้ Username และ Password เพียงแค่ชุดเดียวในการที่จะเข้าถึงได้หลาย ๆ Application
ใครบ้างที่จะใช้ SSO? คนใช้มีอยู่ทุกรูปแบบไม่ว่าจะเป็นองค์กรขนาดใหญ่, บริษัทขนาดเล็ก หรือแม้กระทั่งการใช้งานส่วนบุคคล เพื่อให้สะดวกต่อการจัดการเรื่อง Username และ Password นั่นเอง
การใช้งาน SSO โดยทั่วไปจะเป็นลักษณะการใช้งานบน Web Service ที่จะมี Agent บน Application Server โดยรับ Credential ที่กรอกมาจากผู้ใช้งาน และจะนำไปเทียบกับส่วนที่มีการเก็บข้อมูลของผู้ใช้งานว่าตรงกันหรือไม่ เช่น LDAP Directory
การใช้งานแบบนี้จะทำให้ผู้ใช้งานมีสิทธิ์ที่จะเข้าใช้งาน Application ต่าง ๆ ที่มีการทำงานร่วมกับ SSO ทำให้หลังจากผู้ใช้งาน Login แล้ว จะไม่จำเป็นต้องกรอก Username และ Password ในการใช้งาน Application ที่มีการผูกไว้กับ SSO ในช่วงเวลาไล่เลี่ยกันหลังจากที่ Login ไปแล้วครับ
Single Sign-on มีหลักการทำอย่างไร?
Single Sign-on เป็นใช้การจัดการแบบ Federated Identity Management (FIM) แปลเป็นไทยก็คือ มีศูนย์กลางในการจัดการข้อมูลนั่นเอง และใช้ระบบที่เรียกว่า Identity Federation เช่น OAuth ซึ่งย่อมาจาก Open Authorization เป็นตัวที่ช่วยให้สามารถเอาข้อมูลส่วนตัวจากบัญชีของผู้ใช้งานไปใช้งานกับ 3rd Party อย่างเช่น Facebook ได้ โดยที่ไม่ได้เปิดเผยในส่วนของ Password ของผู้ใช้งาน
OAuth ทำตัวเหมือนเป็นตัวแทนของผู้ใช้งานในการกระจายสิทธิ์ไปยัง Application อื่น ๆ หลักการทำงานก็คือเวลาที่ผู้ใช้งานจะเข้าใช้งาน Application ระบบของ Application เหล่านั้นก็จะส่งคำร้องไปยัง Identity provider เพื่อให้อนุญาตในการเข้าใช้งาน Identity Provider เมื่อได้รับข้อมูลมาก็จะตรวจสอบและอนุญาตให้เข้าใช้งานได้นั่นเอง
รูปแบบการใช้งานของ SSO
SSO บางชนิดใช้ Protocol เช่น Kerberos และ SAML ในการทำงาน
SAML เป็นหนึ่งในภาษาทางคอมพิวเตอร์ที่เรียกว่า Extensible Markup Language (XML) ซึ่งเป็นสิ่งที่ช่วยอำนวยความสะดวกในการแลกเปลี่ยนข้อมูลของผู้ใช้งานทั้งในเรื่องของ Authorization และ Authentication ระหว่าง Domain SSO ที่เป็นแบบ SAML จะทำงานร่วมกันกับผู้ใช้งาน และ Identity Provider ในการเก็บรักษาทั้งข้อมูลของทั้ง 2 ฝ่าย
สำหรับ SSO ที่เป็นแบบ Kerberos หลังจากที่ผู้ใช้งานกรอก Credential ใส่ระบบแล้ว จะมีการสร้าง Ticket เรียกว่า Ticket-granting Ticket (TGT) ตัว TGT จะสร้าง Ticket ให้สำหรับ Application อื่น ๆ ที่ผู้ใช้งานต้องการที่ใช้ให้ โดยที่ Application อื่น ๆ ไม่จำเป็นต้องถาม Credential จากผู้ใช้งานอีก
อีกรูปแบบนึงที่ขอกล่าวถึง ก็คือการใช้ Smart card ในการใช้งาน SSO ระบบจะสอบถาม User ให้ใช้ Card ในการ Sign-in เรากรอก Credential ในครั้งแรกที่จะใช้งาน หลังจากที่ได้ใช้ Card ไปแล้ว ผู้ใช้งานไม่จำเป็นต้องกรอก Username และ Password อีกสำหรับ Application อื่น ๆ โดยที่ SSO Smart Card จะเก็บข้อมูลของ Certificate และ Password ไว้ให้
ความเสี่ยงในด้านความปลอดภัยที่ต้องพึงระวังเมื่อใช้งาน SSO
ถึงแม้ว่า Single Sign-on จะช่วยอำนวยความสะดวกให้กับผู้ใช้งาน แต่ก็เป็นเหมือนดาบสองคม เนื่องจากเราจะได้มีความเสี่ยงเพิ่มขึ้นเพราะว่า ถ้ามีผู้ไม่หวังดีโจมตีผ่านช่องโหว่เข้ามาแล้วสามารถดึงเอาข้อมูล Credential ของเราไปได้ เค้าก็จะสามารถเข้าถึงทุก ๆ Application ที่ใช้ Credential เดียวกันได้ วิธีที่จะหลีกเลี่ยงการเกิดปัญหานี้คือ ให้เปิดใช้งาน Two-factor Authentication (2FA) หรือ Multifactor Authentication (MFA) ร่วมกับการใช้งาน SSO จะช่วยเพิ่มความปลอดภัยให้มากขึ้นนั่นเอง
SSO ที่ผูกกับ Social Media
Social Media ที่นิยมใช้งานร่วมกับ SSO ได่แก่ Google, LinkedIn, Twitter และ Facebook ช่วยให้ผู้ใช้งานสามารถ Log in เข้าไปใช้งาน Application ได้ด้วยการใช้ Credential จาก Social Media อย่างที่บอกไปแล้วว่าแม้ว่า Social SSO ช่วยให้ผู้ใช้งานสะดวกในการเข้าใช้งาน Application แต่ก็แลกมากับความเสี่ยงที่ใช้เพียงแค่ช่องโหว่เดียว ผู้ไม่หวังดีก็สามารถเข้าถึงข้อมูลของ Application ที่มีการผูกไว้กับ SSO ได้Apple เองก็พึ่งทำระบบ SSO ขึ้นมาและวางตัวเองเป็นระบบ SSO ทางเลือกที่เป็นแบบรักษาความเป็นส่วนตัวของผู้ใช้ ให้ผู้คนได้ใช้งานเป็นทางเลือกแทน SSO จากเจ้าอื่นเช่น Google, Facebook, LinkedIn และ Twitter ระบบนี้จะเรียกว่า Sign in with Apple ซึ่งจะจำกัดการเข้าถึงข้อมูลจากทาง Third-party ซึ่ง SSO ของ Apple จะบังคับให้ผู้ใช้งานต้องเปิด 2FA ไว้กับบัญชี Apple ID ที่รองรับการทำงานร่วมกับ Face ID และ Touch ID บนอุปกรณ์ของ iOS
SSO ที่ใช้งานระดับองค์กร
Enterprise single sign-on (eSSO) เป็น Software ที่ให้บริการในการจัดการ Password สำหรับ Client และ Server โดยการทำหน้าที่เป็นตัวแทนในการ Log in ไปยัง Application ที่ต้องการ เช่น 1Password การใช้งานแบบนี้จะเหมาะสำหรับ Application ที่ไม่ได้ทำระบบมาให้สามารถผูกกับ SSO ได้
Advantages and disadvantages of SSO
ข้อดีของการใช้งาน SSO
- ทำให้ผู้ใช้งานไม่จำเป็นต้องจำ Username และ Password ของแต่ละ Application
- ง่ายต่อการใช้งาน ขั้นตอนการ Login ไม่จำเป็นต้องกรอก Password ซ้ำอีกครั้ง
- โอกาสโดน Phishing ต่ำ
- สะดวกกับ IT Helpdesk ที่ไม่ต้องมาแก้ปัญหาเรื่องการ Reset Password ให้บ่อย ๆ
ข้อเสียของการใช้งาน SSO
- บาง Application ไม่ได้ให้ความสำคัญในเรื่องของความปลอดภัย พวกการเปิด 2FA หรือ MFA ทำให้มีโอกาสโดน Hack ได้
- ถ้าจำ Username และ Password ไม่ได้ จะทำให้ไม่สามารถใช้งานหลาย ๆ ระบบได้
- ถ้ามีคน Hack เข้าระบบนึงได้ ก็จะสามารถเข้าระบบใน Application อื่น ๆ ได้เช่นกัน
ยกตัวอย่างผู้ให้บริการ SSO ในตลาด
ในตลาดมีผู้ให้บริการ SSO หลาย ๆ เจ้าที่หลาย ๆ คนที่อ่านอาจจะรู้จักอยู่แล้ว บางเจ้าก็ให้บริการอื่น ๆ ด้วย แต่พ่วงด้วย SSO เช่น
OneLogin – เป็นระบบใช้งานบน Cloud ในเรื่องของ Identity & Access Management (IAM) ที่รองรับการใช้งานด้วย
SSOOkta – เป็นเครื่องมือสำหรับการใช้งาน SSO Okta รองรับการทำ 2FA
Microsoft Active Directory – หลาย ๆ องค์กรใช้งาน AD เป็นหลักอยู่แล้ว เราสามารถนำมาประยุกต์ใช้กับการทำ SSO ได้
เป็นอย่างไรกันบ้างสำหรับเรื่องของ SSO หวังว่าทุกคนจะนำเอาไปปรับใช้ให้เกิดประโยชน์นะครับ สำหรับท่านที่สนใจบริการของ Cloud HM สามารถติดต่อเราได้ผ่านช่องทางนี้นะครับ
ขอบคุณครับ