يوضح هذا المستند كيفية تمكين استرجاع وإبطال رموز الدخول إلى 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 كرقم تعريف المطوّر، وليس كبريد إلكتروني للمطوّر الخاص بك. يمكنك تحديد رقم تعريف المطوّر من عنوان البريد الإلكتروني للمطوِّر باستخدام زر الحصول على طلب بيانات من واجهة برمجة التطبيقات للمطوّرين
بعد ضبط 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 وإبطالها حسب رقم تعريف المستخدم النهائي أو رقم تعريف التطبيق
يجب أن يكون المستخدم الذي يجري الاستدعاء التالي هو مشرف المؤسسة أو
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
فقط في المؤسسة
يجب منح الأذونات لاسترداد (HTTP GET) وإبطال (HTTP PUT) المميزة المستندة إلى رموز OAuth 2.0 المميزة.
على رقم تعريف المستخدم أو رقم تعريف التطبيق للتحكّم في إمكانية الوصول، يجب ضبط الأذونات والحصول عليها في مورد /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
بناءً على الرد، يمكنك استخدام زر إضافة أذونات المورد للدور و احذف طلبات البيانات من واجهة برمجة التطبيقات Permission for Resource لإجراء أي تعديلات ضرورية على /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
- استخدام متغيّر تدفق يوفّر رقم تعريف المستخدم النهائي