
ในยุคที่ระบบต่างๆ ภายในองค์กรมีจำนวนมาก การบริหารจัดการผู้ใช้งานในแต่ละระบบอย่างแยกขาดกลายเป็นภาระที่ไม่จำเป็นอีกต่อไป ด้วยแนวคิด “Identity as a Service” และมาตรฐาน SCIM (System for Cross-domain Identity Management) ทำให้องค์กรสามารถรวมศูนย์การจัดการตัวตนของผู้ใช้งานให้ทำงานได้อย่างมีประสิทธิภาพและปลอดภัย
บทความนี้จะพาคุณไปรู้จักการใช้งาน SCIM ร่วมกับ Mendix Application โดยใช้ Azure Active Directory (Azure AD) เป็นแหล่งกลางในการจัดการผู้ใช้งาน
SCIM คืออะไร
SCIM เป็นมาตรฐานกลางที่ออกแบบมาเพื่อช่วยให้การสร้าง แก้ไข และลบข้อมูลผู้ใช้งานระหว่างระบบสามารถทำได้โดยอัตโนมัติผ่าน RESTful API และใช้โครงสร้างข้อมูลแบบ JSON ตัวอย่างการใช้งานเช่น:
- เมื่อมีการเพิ่มพนักงานใหม่ใน Azure AD → ระบบ Mendix จะสร้างบัญชีผู้ใช้งานโดยอัตโนมัติ
- หากมีการลบพนักงานออก → บัญชีใน Mendix จะถูกลบหรือปิดการใช้งานตามไปด้วย
Use Case: การ Provision ผู้ใช้งานจาก Azure AD ไปยัง Mendix
เป้าหมาย:
- ลดขั้นตอนการจัดการผู้ใช้งานด้วยตนเอง
- เพิ่มความปลอดภัยด้วยการควบคุมสิทธิ์จากศูนย์กลาง
- ให้ Azure AD เป็นแหล่งข้อมูลเดียวของผู้ใช้งาน (Single Source of Truth)
สถาปัตยกรรมระบบ
ระบบจะประกอบด้วย 2 ส่วนหลัก:
- Azure AD: ทำหน้าที่เป็น SCIM Client ซึ่งจะส่งคำสั่งในการเพิ่ม/อัปเดต/ลบผู้ใช้
- Mendix App: ทำหน้าที่เป็น SCIM Server ที่รองรับ SCIM API และอัปเดตข้อมูลผู้ใช้ในระบบตามคำสั่งจาก Azure AD
การเชื่อมต่อจะใช้ HTTPS พร้อม Authentication เช่น Basic Auth หรือ OAuth2
ขั้นตอนการติดตั้งและตั้งค่า
1. การใช้งาน SCIM module ภายใน Mendix
- ไปที่ Marketplace เพื่อค้นหา SCIM module
- ดาวน์โหลด SCIM module และสิ่งที่ต้องใช้สำหรับ SCIM module มายังแอปของคุณ ดังนี้
- Community Commons
- MxModelReflection
- Encryptions
- UserCommons
- กำหนด Security เพื่อใช้งาน SCIM module และส่วนต่าง ๆ ให้เรียบร้อย
- ตั้งค่า After Startup ไปที่ Microflow SCIM.ASU_StartUp
- ตั้งค่า Navigations ประกอบไปด้วย 2 เมนู คือ
- เมนูของ MxModelReflection ใช้หน้าเพจ MxObjects_Overview
- เมนูของ SCIM ใช้ Nanoflow Call_IdPConfOverview
- กำหนดค่าของ Encryption Key ใน Encryption module แนะนำให้กำหนดค่าที่ Profile Setting > Constants > สร้าง Encryption.EncryptionKey 32 ตัวอักษร

2. ตั้งค่า Azure AD ให้ทำ Provisioning ไปยัง SCIM API
- เข้าไปที่ Azure Portal > Enterprise Applications
- คลิ๊กปุ่ม Create your own application
- ใส่ชื่อแอปที่ต้องการ
- เลือก option เป็น integrate any other application.. ตามภาพด้านล่าง

- คลิ๊กไปที่ Provisioning เพื่อไปกำหนด connection ไปยัง Mendix App ในการเรียก API

- กดปุ่ม + เพื่อ New Configuration เพื่อทำการเชื่อมต่อกับ Mendix App
- ใส่ Tenant URL ในที่นี้ก็คือ URL ของ scim api เช่น https://{your-domain}/scim/v2
- Secret token ให้ทำการ Copy ค่าจาก Mendix App

- ทดสอบการเชื่อมต่อด้วยปุ่ม “Test Connection”

3. กำหนด Attribute Mapping
Azure AD จะส่งค่าผ่าน SCIM API โดยอิงจาก Attribute Mapping ที่ตั้งไว้ เช่น:
- userPrincipalName → userName
- givenName → firstName
- surname → lastName
- mail → email

สามารถแมปข้อมูลเพิ่มเติมได้ตามโครงสร้างใน Mendix
4. ทดสอบการใช้งาน
- เพิ่มผู้ใช้ใน Azure AD → ตรวจสอบว่ามีการสร้างใน Mendix
- ปรับปรุงข้อมูลผู้ใช้ → ตรวจสอบว่า Mendix อัปเดตตาม
- ลบผู้ใช้ → ตรวจสอบว่า Mendix ปิดการใช้งานหรือลบข้อมูลตาม
ข้อดีของการใช้ SCIM กับ Mendix
- ลดภาระของแผนก IT ในการจัดการผู้ใช้งาน
- เพิ่มความปลอดภัยและควบคุมได้จากศูนย์กลาง
- รองรับการทำงานแบบ Hybrid หรือ Multi-App Ecosystem
- ปรับปรุงประสบการณ์ผู้ใช้งานให้ราบรื่นเมื่อต้องใช้หลายระบบ
สรุป
การเชื่อมต่อ SCIM ระหว่าง Azure AD กับ Mendix ช่วยให้การจัดการผู้ใช้งานกลายเป็นเรื่องอัตโนมัติและปลอดภัยมากยิ่งขึ้น องค์กรสามารถลดต้นทุนการจัดการบัญชีผู้ใช้งาน และยังสร้างความมั่นใจได้ว่าข้อมูลในแต่ละระบบสอดคล้องและเป็นปัจจุบันอยู่เสมอ
สามารถอ่านรายละเอียดเพิ่มเติมการใช้งานได้จาก https://docs.mendix.com/appstore/modules/scim/