การยืนยันตัวตนและการกำหนดสิทธิ์ Apache UserGrid 2.x
ติดตั้ง UserGrid เสร็จแล้ว ถ้าจะใช้งานต้องทำอย่างไร จากที่เคยกล่าวไปแล้วเบื้องต้นในวิธีติดตั้ง Apache UserGrid [1][2] จะมี Port สำหรับเรียกด้วย Rest Service คือ port 8080 ส่วนหน้าสำหรับบริหารจัดการจะเป็น 80 ซึ่งเบื้องต้นจะไม่ใช่ ssl ถ้าต้องการความปลอดภัยต้องไปปรับแต่งเพิ่มเติม (ถ้าใช้ ha-proxy ก็ทำ ssl เฉพาะด้านหน้าก็ได้ครับ) โดยอาจจะต้องปรับแต่งที่ตัว Tomcat อ่านเพิ่มเติมได้ที่ https://usergrid.apache.org/docs/installation/ug1-deploy-to-tomcat.html ในส่วนของบทความต่อไปนี้จะกล่าวถึง Authentication และ Permission ซึ่งรายละเอียดทั้งหมดอยู่ใน Web Usergrid : https://usergrid.apache.org/docs/security-and-auth/app-security.html โดยระบบยืนยันตัวตนของ UserGrid จะใช้ OAuth 2.0 ซึ่งสรุปสั้น ๆ คือ Client ขอตั๋วเข้าใช้งาน (Token) โดยได้หลังจากยืนยันตัวตน จากนั้น Server ก็จะให้ตั๋วมาเมื่อยืนยันว่าเป็นตัวจริง จากนั้น Client ก็เอาตั๋วไปยื่นขอใช้งานระบบต่าง ๆ ต่อ โดยมีอีก 3 สิ่งที่ต้องรู้ดังนี้ – Groups : คือการกำหนดกลุ่มของ User เพื่อกำหนดสิทธิ์ให้กลุ่ม แทนที่ต้องมากำหนดสิทธิ์ให้ทีละคน – Roles : คือการกำหนดสิทธิ์ว่าให้เข้าถึง Resource ใดได้บ้าง (User Profile, Application Data) ซึ่งสิ่งนี้จะเป็นตัวที่ต้องกำหนดให้แต่ละคน หรือแต่ละ Group – Permission : เมื่อมีสิทธิ์ใน Resource นั้นแล้วจะมีสิทธิ์ทำอะไรกับ Resource นั้นบ้าง (Select, Insert, Delete, Update) สำหรับการจัดการ Group, Role, Permission สามารถจัดการผ่าน Rest API ได้หมด แต่ในตัวอย่างที่จะเสนอจะทำการจัดการผ่าน UserGrid Admin Portal ดังนี้ ตัวอย่างการเพิ่ม User ใหม่เข้าไปยัง Application ที่ต้องการ 1) เลือก Application ที่ต้องการ จากนั้นเลือก User และกดปุ่มเพิ่ม 2) กรอกรายละเอียดจากนั้นกด Create (รหัสผ่านเงื่อนไขเยอะจะตั้งยากหน่อย) ตัวอย่างการเพิ่มบัญชี test01 เข้าไปอยู่ใน Group CCStaffs 1) สร้าง Group CCStaffs ขึ้นมาก่อน ดังรูป 2) ทำการเพิ่ม User เข้าไปยัง Groups ซึ่งจริง ๆ แล้วทำได้ 2 แบบ คือ เข้าไปที่ User แล้วเพิ่ม Group หรือ เข้าไปที่ Group แล้วเพิ่ม User ดังรูป ตัวอย่างการเพิ่มบัญชี test01 เข้าไปอยู่ใน Role Guest 1) เบื้องต้นจะมี Role ให้เลือก 3 Role แต่จะเลือก Role Guest ซึ่งจริง ๆ แล้วเป็นเหมือน Permission Template เพราะเราสามารถกำหนดสิทธิ์เพิ่มเติมนอกเหนือที่ระบุใน Role ได้อีกในภายหลัง (GET=Select,POST=Insert,PUT=Update,DELETE=Delete) 2) ทำการเพิ่ม User เข้าไปยัง Roles ที่ต้องการ