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

Edge for Private Cloud، الإصدار 4.17.09

يوضح هذا المستند كيفية تمكين استرجاع وإبطال رموز الدخول إلى 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 للمؤسسة. استبدل القيم في {curly الأقواس} مع القيم الخاصة بالمؤسسة:

> curl -H "Content-type:text/xml" -X POST \
  https://<ms-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 {userEmail}:{mypassword}

خطوة 2: ضبط الأذونات لدور مسؤول العمليات في المؤسسة

دور مشرف المؤسسة ومسؤول العمليات فقط في المؤسسة يجب منح الأذونات لاسترداد (HTTP GET) وإبطال (HTTP PUT) المميزة المستندة إلى رموز OAuth 2.0 المميزة. على رقم تعريف المستخدم أو رقم تعريف التطبيق للتحكّم في إمكانية الوصول، يجب ضبط الأذونات والحصول عليها في مورد /oauth2 لـ المؤسسة. يتضمّن هذا المورد عنوان URL بالتنسيق التالي:

https://<ms-ip>:8080/v1/organizations/{org_name}/oauth2

يجب أن يتضمّن دور مشرف المؤسسة الأذونات اللازمة. بالنسبة إلى opsadmin، بالنسبة إلى مورد /oauth2، من المفترض أن تبدو الأذونات كما يلي: التالي:

<ResourcePermission path="/oauth2">
    <Permissions>
        <Permission>get</Permission>
        <Permission>put</Permission>
    </Permissions>
</ResourcePermission>

يمكنك استخدام دالة الحصول على إذن لطلب بيانات من واجهة برمجة تطبيقات مورد واحد لمعرفة الأدوار التي لديها أذونات المرجع /oauth2

بناءً على الرد، يمكنك استخدام زر إضافة أذونات المورد للدور و احذف طلبات البيانات من واجهة برمجة التطبيقات Permission for Resource لإجراء أي تعديلات ضرورية على /oauth2 أذونات الموارد.

استخدِم أمر cURL التالي لمنح دور opsadmin الحصول على الأذونات ووضعها لمورد /oauth2. استبدل القيم في {curly braces} باستخدام القيم الخاصة بالمؤسسات:

> curl -X POST -H 'Content-type:application/xml' \
  http://<ms-ip>:8080/v1/organizations/{org}/userroles/opsadmin/permissions \
  -d '<ResourcePermission path="/oauth2">
      <Permissions>
        <Permission>get</Permission>
        <Permission>put</Permission>
      </Permissions>
    </ResourcePermission>' \
  -u {USEREMAIL}:{PWD} 

استخدِم أمر cURL التالي لإبطال أذونات get وput لمورد /oauth2 من أدوار أخرى غير orgadmin وopsadmin استبدل القيم في {curly الأقواس} مع القيم الخاصة بالمؤسسة:

> curl -X DELETE -H 'Content-type:application/xml' \
  http://<msip>:8080/v1/organizations/{org-name}/userroles/{roles}/permissions \
  -d '<ResourcePermission path="/oauth2">
      <Permissions></Permissions>
    </ResourcePermission>' \
   -u {USEREMAIL}:{PWD} 

الخطوة 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. الرمز المميز. وتجدر الإشارة إلى أنّ إضافة العلامة &lt;AppEndUser&gt; بالخط الغامق تحدّد المتغيّر الذي يحتوي على معرّف المستخدم النهائي:

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