إتاحة الوصول إلى رموز OAuth 2.0 المميزة حسب رقم تعريف المستخدم ورقم تعريف التطبيق

يوضح هذا المستند كيفية تمكين استرجاع وإبطال رموز الدخول إلى 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 وإبطالها عن طريق رقم تعريف المستخدم النهائي ورقم تعريف التطبيق

الخطوة 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
  • استخدام متغيّر تدفق يوفّر رقم تعريف المستخدم النهائي