Edge for Private Cloud v4.18.05
يوضّح هذا المستند طريقة تفعيل استرداد رموز الدخول إلى OAuth 2.0 وإبطالها باستخدام رقم تعريف المستخدم أو رقم تعريف التطبيق أو كليهما.
تتم إضافة معرّفات التطبيقات تلقائيًا إلى رمز دخول OAuth. لذلك، بعد استخدام الإجراء أدناه لتفعيل إمكانية الوصول إلى الرموز المميّزة لمؤسسة، يمكنك الوصول إلى الرموز المميّزة حسب رقم تعريف التطبيق.
لاسترداد رموز الوصول إلى OAuth 2.0 وإبطالها حسب معرّف المستخدم النهائي، يجب أن يكون معرّف المستخدم النهائي متوفرًا في رمز الوصول. يوضّح الإجراء أدناه كيفية إضافة معرّف مستخدم نهائي إلى رمز مميّز حالي أو إلى رموز مميّزة جديدة.
تلقائيًا، عندما ينشئ Edge رمز دخول عبر بروتوكول OAuth 2.0، يكون التنسيق على النحو التالي:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", "refresh_count" : "0" }
يُرجى ملاحظة ما يلي:
- يحتوي الحقل
application_name
على معرّف UUID للتطبيق المرتبط بالرمز المميّز. في حال تفعيل استرداد رموز الوصول لبروتوكول OAuth 2.0 وإبطالها حسب معرّف التطبيق، هذا هو معرّف التطبيق الذي تستخدمه. - يحتوي الحقل
access_token
على قيمة رمز الوصول OAuth 2.0.
لتفعيل استرداد رموز الوصول إلى OAuth 2.0 وإبطالها حسب رقم تعريف المستخدم النهائي، عليك ضبط سياسة OAuth 2.0 لتضمين رقم تعريف المستخدم في الرمز المميّز، كما هو موضّح في الإجراء أدناه.
رقم تعريف المستخدم النهائي هو السلسلة التي يستخدمها Edge كسمة تعريف المطوّر، وليس عنوان البريد الإلكتروني للمطوّر. يمكنك تحديد رقم تعريف المطوّر من عنوان بريده الإلكتروني باستخدام طلب البيانات من واجهة برمجة التطبيقات Developer API.
بعد ضبط Edge لتضمين رقم تعريف المستخدم النهائي في الرمز المميّز، يتم تضمينه في الحقل app_enduser، كما هو موضّح أدناه:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", "refresh_count" : "0" }
واجهات برمجة التطبيقات لاسترداد رموز الوصول إلى OAuth 2.0 وإبطالها حسب معرّف المستخدم ومعرّف التطبيق
يمكنك استخدام واجهات برمجة التطبيقات التالية للوصول إلى رموز OAuth المميزة حسب رقم تعريف المستخدم أو رقم تعريف التطبيق أو كليهما:
- الحصول على رمز مميّز لبروتوكول OAuth 2.0 للوصول إلى البيانات باستخدام معرّف المستخدم النهائي أو معرّف التطبيق
- إبطال رمز OAuth 2.0 رمز الوصول حسب رقم تعريف المستخدم النهائي أو رقم تعريف التطبيق
إجراء تفعيل الوصول إلى الرمز المميّز
اتّبِع الإجراء التالي لتفعيل استرداد رموز الوصول إلى OAuth 2.0 وإبطالها باستخدام رقم تعريف المستخدم النهائي ورقم تعريف التطبيق.
الخطوة 1: تفعيل إمكانية استخدام الرموز المميّزة للوصول إلى مؤسسة
يجب تفعيل إمكانية الوصول إلى الرموز المميّزة لكل مؤسسة بشكل منفصل. استخدِم واجهة برمجة التطبيقات PUT API أدناه لكل مؤسسة تريد تفعيل استرداد رموز الوصول إلى OAuth 2.0 وإبطالها حسب رقم تعريف المستخدم النهائي أو رقم تعريف التطبيق.
يجب أن يكون المستخدم الذي يجري المكالمة التالية في الدور orgadmin أو
opsadmin
للمؤسسة. استبدِل values بقيَمك الخاصة
بمؤسستك:
curl -H "Content-type:text/xml" -X POST \ https://management_server_IP;:8080/v1/organizations/org_name \ -d '<Organization name="org_name"> <Properties> <Property name="features.isOAuthRevokeEnabled">true</Property> <Property name="features.isOAuth2TokenSearchEnabled">true</Property> </Properties> </Organization>' \ -u USER_EMAIL:PASSWORD
الخطوة 2: ضبط الأذونات لدور مسؤول العمليات في المؤسسة
يجب منح أذونات لاسترداد (HTTP GET) وإبطال (HTTP PUT) رموز OAuth 2.0 المميزة استنادًا إلى orgadmin
وopsadmin
فقط في المؤسسة
استنادًا إلى معرّف المستخدم أو معرّف التطبيق. للتحكّم في الوصول، اضبط أذونات get وput على مورد /oauth2 ل
مؤسسة. يحتوي هذا المرجع على عنوان URL بالشكل التالي:
https://management_server_IP:8080/v1/organizations/org_name/oauth2
من المفترض أن يكون دور orgadmin
قد حصل على الأذونات اللازمة. بالنسبة إلى دور
opsadmin
لمورد /oauth2، يجب أن تظهر الأذونات على النحو التالي:
<ResourcePermission path="/oauth2"> <Permissions> <Permission>get</Permission> <Permission>put</Permission> </Permissions> </ResourcePermission>
يمكنك استخدام طلب الحصول على
إذن لواجهة برمجة تطبيقات مورد واحد لمعرفة الأدوار التي لديها أذونات لمورد
/oauth2
.
استنادًا إلى الاستجابة، يمكنك استخدام طلبَي واجهة برمجة التطبيقات إضافة أذونات للمورد إلى دور و حذف إذن للمورد لإجراء أي تعديلات ضرورية على أذونات المورد /oauth2.
استخدِم أمر curl
التالي لمنح الدور opsadmin
get
والأذونات put
لمورد /oauth2
. استبدِل
values بالقيم الخاصة بمؤسستك:
curl -X POST -H 'Content-type:application/xml' \ http://management_server_IP:8080/v1/organizations/org_name/userroles/opsadmin/permissions \ -d '<ResourcePermission path="/oauth2"> <Permissions> <Permission>get</Permission> <Permission>put</Permission> </Permissions> </ResourcePermission>' \ -u USEREMAIL:PASSWORD
استخدِم الأمر curl
التالي لإبطال أذونات get
وput
لمورد /oauth2
من الأدوار غير
orgadmin
وopsadmin
. استبدِل values بالقيم
الخاصة بمؤسستك:
curl -X DELETE -H 'Content-type:application/xml' \ http://management_server_IP:8080/v1/organizations/org_name/userroles/roles/permissions \ -d '<ResourcePermission path="/oauth2"> <Permissions></Permissions> </ResourcePermission>' \ -u USEREMAIL:PASSWORD
الخطوة 3: ضبط سمة oauth_max_search_limit
تأكَّد من ضبط السمة conf_keymanagement_oauth_max_search_limit
في الملف /opt/apigee/customer/application/management-server.properties
على 100:
conf_keymanagement_oauth_max_search_limit = 100
إذا لم يكن هذا الملف متوفّرًا، أنشِئه.
تضبط هذه السمة حجم الصفحة المستخدَم عند جلب الرموز المميّزة. تنصح Apigee باستخدام القيمة 100، ولكن يمكنك ضبطها على القيمة التي تراها مناسبة.
عند إجراء عملية تثبيت جديدة، يجب أن تكون السمة قد تم ضبطها على 100. إذا كان عليك تغيير قيمة لهذه السمة، عليك إعادة تشغيل "خادم الإدارة" و"معالج الرسائل" باستخدام أوامر التالية:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
الخطوة 4: ضبط سياسة OAuth 2.0 التي تنشئ الرموز المميّزة لتضمين رقم تعريف المستخدم النهائي
اضبط سياسة OAuth 2.0 المستخدَمة لإنشاء رموز الوصول لتضمين معرّف المستخدم النهائي في الرمز المميّز. من خلال تضمين أرقام تعريف المستخدمين النهائيين في رمز الوصول، يمكنك استرداد الرموز وإبطالها باستخدام رقم التعريف.
لضبط السياسة من أجل تضمين رقم تعريف مستخدم نهائي في رمز الدخول، يجب أن يشتمل الطلب الذي يؤدي إلى إنشاء رمز الدخول على رقم تعريف المستخدم النهائي ويجب تحديد متغيّر الإدخال الذي يحتوي على رقم تعريف المستخدم النهائي.
تُنشئ سياسة OAuth 2.0 أدناه، المُسماة GenerateAccessTokenClient، رمزًا مميزًا لوصول
بروتوكول OAuth 2.0. يُرجى ملاحظة إضافة علامة <AppEndUser>
بخط عريض تحدد
المتغيّر الذي يحتوي على معرّف المستخدم النهائي:
<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient"> <DisplayName>OAuth 2.0.0 1</DisplayName> <ExternalAuthorization>false</ExternalAuthorization> <Operation>GenerateAccessToken</Operation> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> <GrantType>request.queryparam.grant_type</GrantType> <AppEndUser>request.header.appuserID</AppEndUser> <ExpiresIn>960000</ExpiresIn> </OAuthV2>
يمكنك بعد ذلك استخدام الأمر curl
التالي لإنشاء رمز مميز لوصول OAuth 2.0، مع تمرير معرّف المستخدم كعنوان appuserID
:
curl -H "appuserID:6ZG094fgnjNf02EK" \ https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials \ -X POST -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNXFmP&client_secret=gk5K5lIp943AY4'
في هذا المثال، يتم تمرير appuserID
كعنوان طلب. يمكنك إرسال
المعلومات كجزء من طلب بطرق متعدّدة. على سبيل المثال، يمكنك إجراء ما يلي كبديل:
- استخدام متغيّر مَعلمة للنموذج:
request.formparam.appuserID
- استخدام متغيّر تدفق يوفّر رقم تعريف المستخدم النهائي