Edge for Private Cloud الإصدار 4.19.01
يوضّح هذا المستند طريقة تفعيل استرداد رموز الدخول عبر بروتوكول 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
على المعرّف الفريد العالمي للتطبيق المرتبط بالرمز المميّز. في حال تفعيل استرداد وإبطال رموز الدخول عبر بروتوكول OAuth 2.0 حسب رقم تعريف التطبيق، يكون هذا هو رقم تعريف التطبيق الذي تستخدمه. - يحتوي الحقل
access_token
على قيمة رمز الدخول عبر OAuth 2.0.
لتفعيل استرداد رموز الدخول عبر بروتوكول OAuth 2.0 وإبطالها حسب رقم تعريف المستخدم، اضبط سياسة OAuth 2.0 لتضمين رقم تعريف المستخدم في الرمز المميّز، كما هو موضّح في الإجراء أدناه.
رقم تعريف المستخدم النهائي هو السلسلة التي يستخدمها Edge على أنّه رقم تعريف المطوّر، وليس عنوان البريد الإلكتروني للمطوِّر. يمكنك تحديد الرقم التعريفي للمطوّر من عنوان البريد الإلكتروني للمطوّر باستخدام طلب الحصول على بيانات من واجهة برمجة تطبيقات مطوّر البرامج.
بعد ضبط 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 أدناه لكل مؤسسة تريد فيها تفعيل استرداد رموز الدخول عبر بروتوكول 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: ضبط الأذونات لدور مسؤول العمليات في المؤسسة
ويجب منح الأدوار orgadmin
وopsadmin
فقط في المؤسسة
الأذونات لاسترداد رموز بروتوكول OAuth 2.0 (HTTP 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
- استخدام متغيّر تدفق يقدّم رقم تعريف المستخدم النهائي