تكوين عمليات توزيع بوابة API
مع العلم بأن وظيفتك جاهزة، يمكنك تكاملها واختبار آلية التصديق المحلي لتدقيق JWT باستخدام Oracle Identity Cloud Service.
تكوين توزيع جيت واي API مع مراجعة JWT الأصلية
وباستخدام سمة تدقيق JWT المحلي لجيت واي Oracle Cloud Infrastructure، يمكن إضافة نظام تصديق يستند إلى Java (JWT) لنشرك.
يسمح نوع JWT هذا بتحديد البيانات المطلوبة لإجراء مراجعة مقطع الوصول الوارد (من خلال الرأس أو المعلمة). تتطلب السياسة المعلومات التالية:
- جهات الإصدار المسموح بها: جهات إصدار المقاطع. يتم دعم خوادم OAuth متعددة، ولكن في هذه الحالة ستستخدم
https://identity.oraclecloud.com/
. - الجمهور: الموارد المطلوب السماح لها بالوصول إلى هذا المقطع.
- المفاتيح العامة: مجموعة مفاتيح ويب Json (JWKS) المطلوب استخدامها لمراجعة المقطع، ضمن المصدرين والجمهور. يُسمح بنوعين من JWKS:
- مفاتيح ثابتة: مع هذا الخيار، يلزم تحديد JWKS يدويًا باستخدام صيغة JSON، ويجب أن تتوفر لديك الخصائص المطلوبة وفقًا لـ RFC 7517 القسم 4.
- المفاتيح البعيدة: مع هذا الخيار، يجب تحديد عنوان URL يمكن من خلاله استهلاك JWKS باستخدام REST. الحد الخاص بهذه الميزة هو أن عنوان URL المحدد يحتاج إلى عدم حماية، حيث إن هذه الميزة لا تدعم حاليًا إمكانية قراءة عناوين URL المحمية لاسترجاع JWKS.
- خيارات متقدمة:
- الحد الأقصى لمهمة Clow بالثواني: إذا كانت جيت واي API وموفر الهوية لهما بعض الاختلافات في التوقيت، فستسمح لك هذه القيمة بتعديل وقت نافذة صلاحية المقطع لمحاولة ضبط التوقيت بين خدمتين.
- المطالبات: للتحقق من المطالبات إذا كان ذلك مطلوبًا للمقطع الوارد. على سبيل المثال، مطالبة
client_id
أو مطالبةuser_id
.
قم بتكوين اسم توزيع جديد في جيت واي API مع توجيه للوصول إلى الوظيفة التي تم تكوينها في الخطوات السابقة،باستخدام نقطة النهاية ومراجعة JWT. في هذا المثال، تتم تسمية التوزيع:my_jwt_test
.
my_jwt_test
لتوزيع جيت واي API.
اختبار استدعاء REST لنقطة النهاية
لاختبار استدعاء REST لنقطة النهاية الجديدة، يمكنك استخدام سمة الحصول على مقطع وصول جديد لشركة Postman.
الرجاء ملاحظة أنه في حالة استخدام المقطع الذي تم إنشاؤه في الخطوات التالية لن تتمكن من الوصول إلى نقاط انتهاء Oracle Fusion Applications Cloud Service مباشرة، لأن المقطع تم إنشاؤه باستخدام تطبيق Oracle Identity Cloud Service من Oracle Visual Builder ويُمكن فقط الوصول إلى Oracle Functions مع التكوين الحالي، وذلك لكل المجالات التي قمت بإعدادها مسبقًا. أيضًا، إذا استخدمت تطبيق Oracle Identity Cloud Service مختلف لإنشاء المقطع، وكان هذا التطبيق يفتقد إلى المنح للوصول إلى مجال مورد Oracle Functions فلن تسمح جيت واي API بالطلب (وسينتج عنه الخطأ 401) لأنك أضفت الجمهور من مورد Oracle Functions Oracle Identity Cloud Service. في حالة إضافة المطالبات عن طريق التحقق من الهوية من جانب العميل ، فإن بوابة API تتحقق من تطابق المقاطع مع تلك المقاطع فقط مع معرف عميل Apps في خدمة Oracle Identity Cloud .
استخدم المعلمات التالية للاختبار:
- نوع منح: بيانات صلاحية كلمة السر - يتم استخدام نوع المنح هذا للتأكد من أن اسم المستخدم الذي تم إدخاله سيكون موضوعًا في المقطع الذي تم إنشاؤه.
- عنوان URL لمقطع الوصول: عنوان URL لـ OAuth لطبعة Oracle Identity Cloud Service. على سبيل المثال،
https://idcs-myinstance.identity.dc1.oraclecloud.com/oauth2/v1/token
. - اسم المستخدم: مستخدم موجود في كل من Oracle Identity Cloud Service وOracle Fusion Applications Cloud Service مشتملاً على امتيازات ملائمة في كليهما.
- كلمة السر: أدخل كلمة السر لهذا المستخدم.
- ClientId: معرف مورد Oracle Identity Cloud Service Client Oracle Functions المقترن بـ Oracle Visual Builder.
- ClientSecret: البيانات السرية للعميل لمورد Oracle Identity Cloud Service App Client Oracle Functions المقترن بـ Oracle Visual Builder
- المجال: يجب أن يتطابق هذا المجال مع الموارد التي يوفرها تطبيق Oracle Functions Oracle Identity Cloud Service. على سبيل المثال،
https://myservice.apigateway.dc1.oci.customer-oci.com/saasextension
{
"principal": "mary.jane",
"gotPrincipalFrom": "BEARER",
"statusCode": "200",
"response": {
"items": [],
"count": 0,
"hasMore": false,
"limit": 25,
"offset": 0,
"links": [
{
"rel": "self",
"href": "https://myfusionservice.fa.dc1.oraclecloud.com:443/fscmRestApi/resources/11.13.18.05/expenses",
"name": "expenses",
"kind": "collection"
}
]
}
}
تكوين توزيع جيت واي API اختياريًا باستخدام التصديق المخصص
استخدم هذه الطريقة إذا اخترت استخدام وظيفة تصديق مخصصة لمراجعة مقطع الحامل للمكالمات الواردة إلى نقاط انتهاء جيت واي API.
هذه هي الدالة الاختيارية التي قمت بتعريفها في حالة اتباع الخطوات من قسم تعريف وظيفة تصديق بشكل اختياري في Oracle Cloud Infrastructure.
جزء التعليمات البرمجية التالي هو مثال لملف JSON الخاص بمواصفات توزيع Oracle Cloud Infrastructure API الذي يمكنك استخدامه في التوزيع بدلاً من استخدام المعالج. ضمن هذا الملف، يمكننا الاطلاع على:
- السطور 1-8: نظام طلب تصديق. هذا هو التعريف الذي يوجه أي طلب في هذا التوزيع، عليك أولاً باستدعاء هذه الدالة (functionId)، وإدخال tokenHeader، وإذا كانت القيمة حقيقي true (حقيقي)، وخلاف ذلك الاستجابة برسالة HTTP غير معتمدة.
- السطور 9-17: تعريف مشاركة الموارد عبر المصادر (CORS) لإدارة ومشاركتها عبر المصادر والتحكم فيها.
- السطور 18-43: نقطتا إدخال عنوان URL/VERBs لوظائف فردية في FaaS.
{
"requestPolicies": {
"authentication": {
"type": "CUSTOM_AUTHENTICATION",
"isAnonymousAccessAllowed": true,
"functionId": "OCID1.fnfunc.oc1.phx.xxxxxxxxxxxxxxx",
"tokenHeader": "Authorization"
}
"cors":{
"allowedOrigins": [<list-of-origins>],
"allowedMethods": [<list-of-methods>],
"allowedHeaders": [<list-of-implicit-headers>],
"exposedHeaders": [<list-of-exposed-headers>],
"isAllowCredentialsEnabled": <true|false>,
"maxAgeInSeconds": <seconds>
}
},
"routes": [
{
"path": "/opportunities",
"methods": [
"GET"
],
"requestPolicies": {},
"backend": {
"type": "ORACLE_FUNCTIONS_BACKEND",
"functionId": "OCID1.fnfunc.oc1.phx.xxxxxxxxxxxxxxx"
}
},
{
"path": "/opportunities/{optyid}",
"methods": [
"PATCH"
],
"requestPolicies": {},
"backend": {
"type": "ORACLE_FUNCTIONS_BACKEND",
"functionId": "OCID1.fnfunc.oc1.phx.xxxxxxxxxxxxxxx"
}
}
]
}
</seconds></true|false></list-of-exposed-headers></list-of-implicit-headers></list-of-methods></list-of-origins>