Uzak Bileşenlerin Güvenliği

Oracle Content Management, üçüncü taraf geliştiricilerin özel bileşenlerini Oracle Content Management platformuna entegre etmelerine olanak tanır ancak bu bileşenler bir uzak sunucuda saklanabilir.

Her uzak bileşenin ayarları ve görüntüleme uç noktaları Oracle Content Management uygulamasına kaydedilmelidir. Geliştiricilerin uç noktalara ek olarak, kayıtlı bileşen için benzersiz olan bir şifre anahtarı sağlamaları gerekir.

Oracle Content Management bir site sayfasındaki içeriği gerçekleştirmek için kayıtlı bileşenin uç noktalarını çağırır. Bu uç noktalar genel İnternette gösterildiğinden, geliştiriciler kayıtlı bir uzak bileşenin uç noktalarının Oracle Content Management'den çağrıldığını doğrulamalıdır. Çağrıyı yapanın gerçekliğini doğrulamak için bir URL'nin kayıtlı uç noktalarına imzalı bir belirteç sağlanır. Çağıran tarafın kimlik doğrulaması, kayıt işlemi sırasında sağlanan uzak bileşenin şifre anahtarı ile imzalı belirtece gömülen dijital imza doğrulanarak yapılır.

Belirtecin formatı:

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

Kayıtlı uygulama uç noktalarına iletilen örnek bir belirteç:

eyJpbnN0YW5jZWlkIjoiQTRGOTE3REY5OTZEN0Q3ODBCMjUzODZFOTFEMDA3ODJGMjVBRjY2Rjc3OTIiLCJzaWduZGF0ZSI6IjE0NDU2MzcwNTk5MTciLCJzaXRlZG9tYWluIjoic2VydmljZTEtdGVuYW50MS51cy5vcmFjbGUuY29tIiwicGVybWlzc2lvbnMiOiJTSVRFX09XTkVSIiwiZW50aXRsZW1lbnRzIjoiIn0=.5p3of7t11OwuysF3zpm+YgICSHH8C/BHczdbVZx2VH8=

Belirteç iki ayrı parçadan oluşur: '.' sınırlayıcısıyla ayrılmış veri ve imza.

Geliştiriciler genel bir kural olarak, bir bileşenin kayıtlı uç noktalarına erişim vermeden önce her zaman belirtecin kimliğini Düzenleme veya Önizleme modunda doğrulamalıdır. Buna ek olarak, geliştiriciler ayarlar uç noktasında çağıran tarafın kimliğini doğrularken her zaman belirtecin izinler alanında SITE_OWNER değerini aramaya dikkat etmelidir. Belirtecin izinler alanı SITE_OWNER değerini sadece Düzenleme modunda gösterir. Düzenleme oturumu sırasında oluşturulan bir belirteç hiçbir zaman sayfa modeline geri aktarılmaz ve izinler alanında bir NULL değeri içeren bir çalıştırma zamanı belirteciyle değiştirilir.

Veri

Anın veri parçası Base64 JSON kodlanmış dizesidir. JSON dizesinin yapısı şu şekildedir:

{
  "instanceid": "BBDC7614F693B75110D811E6C0B77C935FAEC5112E5E",
  "permissions": "",
  "entitlements": "",
  "signdate": "1435426735293",
  "sitedomain": "service1-tenant4.localhost"
}
Alan Adı Açıklama

instanceid

Oracle Content Management geçici kullanıcısına yönelik bir bileşenin benzersiz belirleyicisi.

signdate

İmza oluşturma tarihi.

sitedomain

Oracle Content Management anının etki alanı adı.

permissions

Site üyesinin izin grubu. Düzenleme modunda "SITE_OWNER" değerini içerir; aksi takdirde değer içermez.

entitlements

Site sahibinin satın aldığı ücretli özelliklerin listesi.

İmza

Bir APP_SECRET_KEY tarafından imzalanmadan önce serileştirilen uzak bileşen anının veri bölümü. Bu şifre anahtarı oluşturulmalı ve bileşen kaydedilirken geliştiriciye gösterilmelidir. İmza burada gösterildiği gibi şifre anahtarı ile bileşen anının (serileştirilmiş JSON yapısı) veri parçası için bir hash oluşturarak hesaplanır:

$signature = HMAC (serialized JSON structure, APP_SECRET_KEY)

İmza oluşturulurken kullanılan hash algoritması SHA256'dır. Belirteç daha sonra şurada gösterildiği gibi serileştirilmiş JSON yapısının ve oluşturulmuş imza bileşeninin birleşimi olur:

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