การรักษาความปลอดภัยสำหรับองค์ประกอบระยะไกล

Oracle Content Management ช่วยให้ผู้พัฒนาที่เป็นบุคคลภายนอกสามารถรวมองค์ประกอบที่กำหนดเองของตนเองเข้ากับแพลตฟอร์มของ Oracle Content Management โดยที่จัดเก็บองค์ประกอบเหล่านี้ไว้ในเซิร์ฟเวอร์ระยะไกล

องค์ประกอบระยะไกลแต่ละรายการต้องรีจิสเตอร์การตั้งค่าและจุดสิ้นสุดการแสดงผลกับ Oracle Content Management แล้ว นอกเหนือไปจากจุดสิ้นสุด ผู้พัฒนายังต้องระบุคีย์ข้อมูลลับที่ไม่ซ้ำกันองค์ประกอบที่รีจิสเตอร์ด้วย

Oracle Content Management จะเรียกใช้จุดสิ้นสุดขององค์ประกอบที่รีจิสเตอร์เพื่อรับเนื้อหาในเพจของไซต์ เนื่องจากจุดสิ้นสุดเหล่านี้เปิดเผยต่ออินเตอร์เน็ตสาธารณะ ผู้พัฒนาควรตรวจสอบว่าจุดสิ้นสุดขององค์ประกอบระยะไกลที่รีจิสเตอร์ถูกเรียกใช้จาก Oracle Content Management สำหรับการตรวจสอบความถูกต้องของผู้เรียก จะมีการส่งโทเค็นที่เซ็นชื่อไปiยังจุดสิ้นสุดที่รีจิสเตอร์ของ URL ฝ่ายที่เรียกได้รับการตรวจสอบสิทธิ์ด้วยการตรวจสอบลายเซ็นดิจิตอลที่รวมอยู่ในโทเค็นที่เซ็นชื่อด้วยคีย์ข้อมูลลับขององค์ประกอบระยะไกลที่ได้รับการระบุในระหว่างกระบวนการรีจิสเตอร์

รูปแบบของโทเค็นคือ:

{base64 encoded serialized JSON data}.{base64 encoded signature}

โทเค็นตัวอย่างที่ระบุให้กับจุดสิ้นสุดของแอปที่รีจิสเตอร์ มีดังนี้

eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=

โทเค็นประกอบด้วยส่วนที่ไม่ซ้ำกันสองส่วน: ข้อมูลและลายเซ็น โดยคั่นด้วยตัวคั่น '.'

สำหรับแนวทางทั่วไป ผู้พัฒนาควรตรวจสอบสิทธิ์ของโทเค็นในโหมดแก้ไขหรือแสดงตัวอย่างก่อนที่จะให้สิทธิ์เข้าใช้จุดสิ้นสุดที่รีจิสเตอร์ขององค์ประกอบเสมอ นอกจากนี้ ขณะที่ตรวจสอบสิทธิ์ของฝ่ายที่เรียกในจุดสิ้นสุดการตั้งค่า ผู้พัฒนาควรมองหาค่า SITE_OWNER ในฟิลด์ สิทธิ์ ของโทเค็นเสมอ ฟิลด์ สิทธิ์ ของโทเค็นจะแสดงค่า SITE_OWNER ในโหมดแก้ไขเท่านั้น โทเค็นที่สร้างในระหว่างเซสชันการแก้ไขจะไม่ถูกกำหนดเป็นรายการถาวรกลับไปที่โมเดลเพจ และถูกแลกเปลี่ยนกับโทเค็นรันไทม์ที่มีค่า NULL ในฟิลด์ สิทธิ์

ข้อมูล

ส่วนข้อมูลของอินสแตนซ์คือสตริงที่เข้ารหัส Base64 JSON ต่อไปนี้เป็นโครงสร้างของสตริง JSON:

{
  "instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E",
  "permissions": "",
  "entitlements": "",
  "signdate": "1435426735293",
  "sitedomain": "service1-tenant4.localhost"
}
ชื่อฟิลด์ คำอธิบาย

instanceid

ตัวระบุที่ไม่ซ้ำกันขององค์ประกอบสำหรับรายการภายในของ Oracle Content Management

signdate

วันที่สร้างลายเซ็น

sitedomain

ชื่อโดเมนของอินสแตนซ์ Oracle Content Management

permissions

ตั้งค่าสิทธิ์สำหรับสมาชิกของไซต์ ในโหมดแก้ไข จะมีค่า "SITE_OWNER" ไม่เช่นนั้นจะไม่มีค่าใดๆ เลย

entitlements

ลิสต์ของคุณสมบัติพรีเมียมที่ซื้อโดยเจ้าของไซต์

ลายเซ็น

ส่วนข้อมูลของอินสแตนซ์องค์ประกอบระยะไกลจะได้รับการซีเรียลไลซ์ก่อนที่จะถูกเซ็นโดย APP_SECRET_KEY คีย์ลับนี้ต้องมีการสร้างและแสดงให้กับผู้พัฒนาในขณะที่รีจิสเตอร์องค์ประกอบ ลายเซ็นจะได้รับการคำนวณด้วยการสร้างแฮชของส่วนข้อมูลของอินสแตนซ์องค์ประกอบ (โครงสร้าง JSON ที่มีการซีเรียลไลซ์) ด้วยคีย์ข้อมูลลับตามที่แสดงที่นี่

$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)

อัลกอริทึมแฮชที่ใช้ในการสร้างลายเซ็นคือ SHA256 โทเค็นเป็นการรวมโครงสร้าง JSON ที่ซีเรียลไลซ์ นำมาต่อกับองค์ประกอบลายเซ็นที่สร้าง ดังที่แสดงในที่นี้

$instance = {base64encoded serialized JSON structure}.{base64encoded $signature}