Smart Tech Solutions for Sustainable Enterprise Transformation

Partner with Us for Expert Guidance in Transforming Your
Organization into a Business Technology Leader.

Illustration explaining authorization concept in SAP S/4HANA Public Cloud for backend developers, focusing on secure access control and role-based authorization

Authorization ใน SAP S/4HANA Public Cloud จากมุมมอง Developer ออกแบบสิทธิ์อย่างไรให้ปลอดภัย โดยไม่ต้องเขียนโค้ดซับซ้อน

เคยสงสัยไหมว่า ใน SAP S/4HANA Public Cloud ระบบรู้ได้อย่างไรว่า ใคร “ควรเห็นข้อมูลอะไร” และ “ทำอะไรได้บ้าง” ทั้งที่เราไม่เห็น PFCG Role, Authorization Object หรือ AUTHORITY-CHECK แบบที่คุ้นเคยในระบบ On-Premise 

แล้วถ้าเราเป็น Developer ที่ต้องพัฒนา Custom CDS View หรือ RAP Application จะออกแบบ Authorization อย่างไรให้ปลอดภัย เป็นมาตรฐาน และไม่ฝืนแนวทางของ SAP 

บทความนี้ เนทติเซนท์ จะพาไปทำความเข้าใจกับ Authorization ใน Public Cloud แบบเห็นภาพรวม โดยอธิบายด้วยภาษาที่เข้าใจง่าย ไม่จำเป็นต้องเป็น SAP สายลึกก็อ่านรู้เรื่อง 

Authorization ใน Public Cloud ต่างจาก On-premise อย่างไร 

ใน S/4HANA Public Cloud แนวคิดเรื่องการควบคุมสิทธิ์ “ไม่ได้เริ่มจาก Code” แต่เริ่มจาก โครงสร้างสิทธิ์ที่ผูกกับ Fiori Launchpad และ IAM Framework โดยระบบได้มีการออกแบบให้ลดการเขียน Code ตรวจสิทธิ์เอง ใช้การตั้งค่า (Configuration) เป็นหลัก และให้ระบบ “กรองข้อมูลให้โดยอัตโนมัติ” 

ซึ่ง Authorization จะทำงานผ่านโครงสร้างหลัก 4 ระดับ 

ประเด็นสำคัญที่ Developer ต้องเข้าใจคือ ใน Public Cloud การจำกัดข้อมูลไม่ได้เกิดจาก ABAP Code โดยตรง แต่เกิดจาก Restriction Field ที่ระบบใช้กรองข้อมูลผ่าน OData Service หรือ CDS View แบบอัตโนมัติ   

มุมมองสำหรับ Developer ต้องออกแบบอะไรบ้าง 

CDS Authorization – คุมข้อมูลตั้งแต่ระดับ Data Model 

ใน Custom CDS View ควรกำหนด Annotation ให้ระบบรู้ว่า View นี้ต้องมีการตรวจสิทธิ์ เช่น @AccessControl.authorizationCheck: #CHECK   

จากนั้นสร้าง DCL (Data Control Language) เพื่อกำหนดเงื่อนไขการเข้าถึงข้อมูล เช่น 

define role ZR_PURCHASE_AUTH {  

  grant select on ZR_PURCHASE_VH  

    where werks = aspect pfcg_auth( ‘WERKS’ );  

} 

ซึ่งผลลัพธ์ที่ได้คือ เมื่อผู้ใช้เปิด App หลังจากนั้น OData จะกรองข้อมูลให้อัตโนมัติ เหลือเฉพาะ Plant (WERKS) ที่ผู้ใช้มีสิทธิ์ โดย ไม่ต้องเขียน AUTHORITY-CHECK ใน ABAP เลย 

RAP Authorization – คุมสิทธิ์ระดับ Action และ Record 

ใน RAP (Restful ABAP Programming Model) เราสามารถกำหนดสิทธิ์ของแต่ละ Action ได้ชัดเจน 

ตัวอย่างใน Behavior Definition : 

  • create ( authorization : global );  
  • update ( authorization : none, features : instance );  
  • delete ( authorization : update );  
  •  action ( authorization : instance ) customAction; 

นอกจากนี้ ยังสามารถควบคุมละเอียดขึ้นผ่าน Method เช่น 

  • get_global_authorizations → ตรวจสิทธิ์ระดับระบบ 
  • get_instance_authorizations → ตรวจสิทธิ์ราย record 
  • get_instance_features → เปิด/ปิด field หรือ action ตามสิทธิ์ 

Best Practice สำหรับ Developer 

  • ออกแบบ CDS ให้มีฟิลด์ที่ใช้เป็น Restriction Field ได้ เช่น Company Code, Plant 
  • ใช้ DCL ควบคุมข้อมูล แทนการเขียนเงื่อนไขใน ABAP 
  • หลีกเลี่ยงการ Hardcode User ID หรือ Role Name 
  • ทดสอบด้วย Test User หลาย Role เพื่อยืนยันว่า Restriction ทำงานถูกต้อง   
  • ทำงานร่วมกับ Functional Consultant ด้าน IAM เพื่อกำหนด Business Role ให้สอดคล้องกับ Logic ของ App   

จาก Code-Driven สู่ Configuration-Driven Authorization 

ใน S/4HANA Public Cloud ส่วนของ Authorization ไม่ใช่เรื่องของ “เขียนโค้ดเพิ่ม” อีกต่อไป แต่คือ “ออกแบบให้ระบบจัดการสิทธิ์ได้เอง” ซึ่งสิ่งที่ Developer ควรต้องทำความเข้าใจ คือ

  • Business Role ควบคุมได้ทั้งสิทธิระดับ App และ Data 
  • CDS และ RAP ต้องออกแบบให้รองรับ Restriction โดยธรรมชาติ 
  • การทำงานร่วมกับ Functional และ IAM สำคัญพอๆ กับการเขียน Code

เพราะฉะนั้น Authorization ใน SAP S/4HANA Public Cloud จึงไม่ใช่เรื่องของการเขียน Code ให้มากขึ้น แต่คือการออกแบบระบบให้เข้าใจบทบาทของผู้ใช้และจัดการสิทธิ์ได้อย่างเหมาะสมตั้งแต่ต้น

และเมื่อ Developer ออกแบบ CDS และ RAP ให้สอดคล้องกับโครงสร้างของ Business Role และ Restriction ระบบก็จะช่วยดูแลเรื่องความปลอดภัยให้โดยอัตโนมัติ พร้อมรองรับการขยายระบบในอนาคต

หากองค์กรกำลังพัฒนา หรือวางแผนปรับใช้ SAP S/4HANA Public Cloud และอยากมั่นใจว่า Authorization มีความถูกต้อง ความปลอดภัย และถูกออกแบบอย่างไร  

ทีม เนทติเซนท์ ยินดีแลกเปลี่ยนประสบการณ์และช่วยมองภาพรวมไปด้วยกัน ตั้งแต่การออกแบบ Data Model, CDS, RAP ไปจนถึงการเชื่อมโยงกับ Business Role และ IAM ให้สอดคล้องกับการใช้งานจริงขององค์กร 

ทำความรู้จักกับหลังบ้านของ SAP Cloud เพิ่มเติมได้ที่

สอบถามข้อมูลเพิ่มเติมได้ที่   

Email : [email protected]        

LINE : @netizen        

Website : www.netizen.co.th