سياسة GetOAuthV2Info

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

المزايا

الحصول على سمات رموز الدخول والرموز المميّزة لإعادة التحميل ورموز التفويض وتطبيق العميل وتملأ المتغيرات بقيم تلك السمات.

يمكن الاستفادة من هذه السياسة عند الحاجة إلى ضبط سلوك ديناميكي وشَرطي استنادًا إلى قيمة. في رمز مصادقة أو رمز مصادقة. عند التحقّق من صحة الرمز المميّز، تتم تعبئة المتغيّرات تلقائيًا. بقيم سمات الرموز المميزة. ومع ذلك، في الحالات التي لا يتم فيها التحقق من صحة الرمز المميز، يمكنك استخدام هذه الميزة لتعبئة المتغيرات بشكل صريح بقيم السمات للرمز المميز. يمكن أيضًا مراجعة تخصيص الرموز المميزة رموز التفويض:

يجب أن يكون رمز الدخول الذي تسمح به لهذه السياسة صالحًا وإلا ستعرض السياسة خطأ واحد (invalid_access_token).

نماذج

تستخدم النماذج التالية سياسة الحصول على معلومات OAuth V2 لاسترداد معلومات حول لسير عمل OAuth2 ثم الوصول إلى تلك المعلومات من خلال التعليمات البرمجية.

رمز الدخول

للحصول على مرجع إلى رمز دخول، استخدِم العنصر <AccessToken> في سياستك.

يتوقع المثال التالي العثور على رمز الدخول في معلَمة طلب بحث باسم &quot;access_token&quot; (تعود إليك تفاصيل التنفيذ الفعلية):

<GetOAuthV2Info name="MyTokenAttrsPolicy">
  <AccessToken ref="request.queryparam.access_token"></AccessToken>
</GetOAuthV2Info>

باستخدام رمز الدخول، تبحث السياسة عن الملف الشخصي للرمز المميّز وتعبئ مجموعة من المتغيرات مع بيانات الملف الشخصي.

يمكنك بعد ذلك الوصول إلى المتغيرات باستخدام جافا سكريبت أو وسائل أخرى. المثال التالي تسترد النطاقات المرتبطة بالرمز المميز للدخول باستخدام JavaScript:

var scope = context.getVariable('oauthv2accesstoken.MyTokenAttrsPolicy.scope');

لاحظ أنه للوصول إلى هذه المتغيرات في التعليمات البرمجية، يجب عليك بادئة لها "oauthv2accesstoken". للحصول على قائمة كاملة بالمتغيّرات المتاحة من خلال رمز الدخول، يُرجى الاطّلاع على متغيّرات الرمز المميّز للوصول:

رمز المصادقة

للحصول على سمات رمز التفويض، استخدِم <AuthorizationCode>. في سياستك.

يتوقع المثال التالي العثور على رمز الدخول في نموذج معلمة باسم "code" (تعود إليك تفاصيل التنفيذ الفعلية):

<GetOAuthV2Info name="MyAuthCodeAttrsPolicy">
  <AuthorizationCode ref="request.formparam.code"></AuthorizationCode>
</GetOAuthV2Info>

استنادًا إلى رمز المصادقة، تبحث السياسة عن معلومات الرمز وتعبئ مجموعة من مع بيانات رمز المصادقة.

يمكنك بعد ذلك الوصول إلى المتغيرات باستخدام جافا سكريبت أو وسائل أخرى. المثال التالي لاسترداد سمة مخصصة مرتبطة برمز التفويض باستخدام JavaScript:

var attr = context.getVariable(‘oauthv2authcode.MyAuthCodeAttrsPolicy.custom_attribute_name’);

يُرجى العِلم أنّه للوصول إلى هذه المتغيّرات في الرمز، عليك البادئة "oauthv2authcode". للحصول على قائمة كاملة بالمتغيّرات المتاحة عبر رمز المصادقة، يُرجى مراجعة متغيّرات رمز التفويض:

إعادة تحميل الرمز المميّز

للحصول على سمات الرمز المميّز لإعادة التحميل، استخدِم العنصر <RefreshToken> في .

يتوقع المثال التالي العثور على رمز الدخول في معلَمة طلب بحث باسم &quot;refresh_token&quot; (تعود إليك تفاصيل التنفيذ الفعلية):

<GetOAuthV2Info name="MyRefreshTokenAttrsPolicy">
  <RefreshToken ref="request.queryparam.refresh_token"/>
</GetOAuthV2Info>

بناءً على الرمز المميّز لإعادة التحميل، تبحث السياسة عن معلومات الرمز المميّز لإعادة التحميل وتتم تعبئتها. مجموعة من المتغيرات مع بيانات الرمز المميز للتحديث.

يمكنك بعد ذلك الوصول إلى هذه المتغيرات باستخدام جافا سكريبت أو وسائل أخرى. ما يلي: يسترد هذا المثال سمة مخصصة مرتبطة بالرمز المميز للتحديث باستخدام JavaScript:

var attr = context.getVariable(‘oauthv2refreshtoken.MyRefreshTokenAttrsPolicy.accesstoken.custom_attribute_name’);

لاحظ أنه للوصول إلى المتغيرات في التعليمة البرمجية، يجب عليك بادئة لها "oauthv2refreshtoken". للحصول على قائمة كاملة بالمتغيّرات المتاحة من خلال الرمز المميّز لإعادة التحميل، يُرجى الاطّلاع على إعادة تحميل متغيّرات الرمز المميّز

ثابت

في بعض الحالات النادرة، قد تحتاج إلى الحصول على ملف شخصي لرمز مميّز تم إعداده بشكل ثابت (واحد لا يمكن الوصول إليها من خلال متغير). ويمكنك إجراء ذلك من خلال تقديم قيمة رمز الدخول كعنصر.

<GetOAuthV2Info name="GetTokenAttributes">
  <AccessToken>shTUmeI1geSKin0TODcGLXBNe9vp</AccessToken>
</GetOAuthV2Info>

يمكنك إجراء ذلك باستخدام جميع أنواع الرموز المميّزة الأخرى (معرّف العميل ورمز التفويض وإعادة التحميل). الرموز المميزة) أيضًا.

معرِّف العميل

يوضّح هذا المثال كيفية استرداد معلومات عن تطبيق العميل باستخدام معرِّف العميل. بعد التنفيذ، تملأ السياسة مجموعة من المتغيّرات بمعلومات العميل. في هذه الدورة، هذه الحالة، تتوقع السياسة العثور على معرِّف العميل في معلَمة طلب البحث بِعُنْوَانْ client_id وبالاستناد إلى معرّف العميل، تبحث السياسة عن معرّف العميل وملء مجموعة من المتغيرات ببيانات الملف الشخصي. ستكون المتغيرات يبدأ بـ oauthv2client.

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId ref="request.queryparam.client_id"></ClientId>
</GetOAuthV2Info>

يمكنك بعد ذلك الوصول إلى المتغيرات باستخدام جافا سكريبت أو وسائل أخرى. على سبيل المثال، للحصول على اسم تطبيق المطور والبريد الإلكتروني للمطور المرتبط بتطبيق العميل باستخدام JavaScript:

context.getVariable("oauthv2client.GetClientAttributes.developer.email");
context.getVariable("oauthv2client.GetClientAttributes.developer.app.name");

مرجع العنصر

يصف مرجع العنصر عناصر سياسة GetOAuthV2Info وسماتها.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<GetOAuthV2Info async="false" continueOnError="false" enabled="true" name="GetOAuthV2Info-1"
    <DisplayName>Get OAuth v2.0 Info 1</DisplayName>
    <AccessToken ref="variable"></AccessToken>
    <AuthorizationCode ref="variable"></AuthorizationCode>
    <ClientId ref="variable"></ClientId>
    <RefreshToken ref="variable"></RefreshToken>
</GetOAuthV2Info>

<GetOAuthV2Info> السمات

<GetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Get-OAuth-v20-Info-1">

يصف الجدول التالي السمات المشتركة بين جميع العناصر الرئيسية للسياسة:

السمة الوصف تلقائي التواجد في المنزل
name

الاسم الداخلي للسياسة. يمكن لقيمة السمة name أن تحتوي على أحرف وأرقام ومسافات وواصلات وشرطات سفلية ونقاط. لا يمكن لهذه القيمة يتجاوز 255 حرفًا.

يمكنك، إذا أردت، استخدام العنصر <DisplayName> لتصنيف السياسة محرر الخادم الوكيل لواجهة مستخدم الإدارة باسم مختلف بلغة طبيعية.

لا ينطبق مطلوب
continueOnError

اضبط القيمة على false لعرض رسالة خطأ عند تعذُّر تنفيذ سياسة. هذا متوقّع السلوك في معظم السياسات.

يمكنك ضبط القيمة على true لمواصلة تنفيذ المسار حتى بعد تطبيق إحدى السياسات. فشل.

خطأ اختياري
enabled

اضبط القيمة على true لفرض السياسة.

اضبط القيمة على false من أجل إيقاف السياسة. لن تكون السياسة ويتم فرضها حتى لو ظلت مرتبطة بتدفق.

صحيح اختياري
async

تم إيقاف هذه السمة نهائيًا.

خطأ منهي العمل به

&lt;DisplayName&gt; عنصر

استخدِمه مع السمة name لتصنيف السياسة في إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.

<DisplayName>Policy Display Name</DisplayName>
تلقائي

لا ينطبق

إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة name للسياسة على النحو التالي: استخدام البيانات المختلفة.

التواجد في المنزل اختياري
النوع سلسلة

&lt;AccessToken&gt; عنصر

يسترد الملف الشخصي لرمز الدخول. أنت تمرر إما متغير يحتوي على سلسلة رمز الدخول أو سلسلة رمز مميز حرفي (حالة نادرة). في هذا المثال، رمز الدخول هو من معلَمة طلب بحث تم تمريرها في طلب. استخدام <ignoreAccessTokenStatus> إذا كنت تريد عرض معلومات لرمز مميز تم إبطاله أو منتهي الصلاحية.

<AccessToken ref="request.queryparam.access_token"></AccessToken>

الإعداد التلقائي:

request.formparam.access_token (أ x-www-form-urlcoding وتحديد في الطلب body)

الحضور:

اختياري

النوع: سلسلة
القيم الصالحة:

إمّا متغيّر تدفق يحتوي على سلسلة رمز الدخول، أو سلسلة حرفية.


&lt;AuthorizationCode&gt; عنصر

يسترجع الملف الشخصي لرمز تفويض. أنت تمرر إما متغير يحتوي على سلسلة رمز المصادقة أو سلسلة رمز مميز حرفي (حالة نادرة). في هذا المثال، يكون رمز المصادقة من معلَمة طلب بحث تم تمريرها في طلب. بالنسبة إلى قائمة المتغيّرات التي تمت تعبئتها بواسطة يُرجى الاطّلاع على متغيّرات التدفق.

<AuthorizationCode ref="request.queryparam.authorization_code"></AuthorizationCode>

الإعداد التلقائي:

request.formparam.access_token (أ x-www-form-urlcoding وتحديد في الطلب body)

الحضور:

اختياري

النوع: سلسلة
القيم الصالحة:

إمّا متغيّر تدفّق يحتوي على سلسلة رمز المصادقة أو سلسلة حرفية.

&lt;ClientId&gt; عنصر

يسترد المعلومات ذات الصلة بمعرّف عميل. في هذا المثال، يتم استرداد معرّف العميل من معلَمة طلب بحث تم تمريرها في الطلب. بالنسبة إلى قائمة المتغيرات التي تم ملؤها بهذه العملية، اطّلِع على متغيّرات التدفق.

<ClientId ref="request.queryparam.client_id"></ClientId>

الإعداد التلقائي:

request.formparam.access_token (أ x-www-form-urlcoding وتحديد في الطلب body)

الحضور:

اختياري

النوع: سلسلة
القيم الصالحة: إمّا متغيّر تدفّق يحتوي على سلسلة رمز المصادقة أو سلسلة حرفية.

&lt;IgnoreAccessTokenStatus&gt; عنصر

عرض معلومات الرمز المميز حتى إذا انتهت صلاحية الرمز المميز أو تم إبطاله. يمكن لهذا العنصر فقط استخدامها مع رموز الدخول. معلومات الكيانات الأخرى مثل الرموز المميّزة لإعادة التحميل والترخيص يتم إرجاع الرموز بغض النظر عن حالتها بشكل افتراضي.

<IgnoreAccessTokenStatus>true</IgnoreAccessTokenStatus>

الإعداد التلقائي:

خطأ

الحضور:

اختياري

النوع: قيمة منطقية
القيم الصالحة: صواب أم خطأ

&lt;RefreshToken&gt; عنصر

يسترد الملف الشخصي للحصول على رمز مميز لإعادة التحميل. أنت تمرر إما متغير يحتوي على سلسلة الرمز المميز للتحديث أو سلسلة رمز مميز حرفي (حالة نادرة). في هذا المثال، الرمز المميز للتحديث هو من معلَمة طلب بحث تم تمريرها في طلب. بالنسبة إلى قائمة المتغيّرات التي تمت تعبئتها بواسطة يُرجى الاطّلاع على متغيّرات التدفق.

<RefreshToken ref="request.queryparam.refresh_token"></RefreshToken>

الإعداد التلقائي:

request.formparam.access_token (أ x-www-form-urlcoding وتحديد في الطلب body)

الحضور:

اختياري

النوع: سلسلة
القيم الصالحة:

إمّا متغير تدفق يحتوي على سلسلة رمز مميز لإعادة التحميل، أو سلسلة حرفية.

متغيّرات التدفق

تعمل سياسة GetOAuthV2Info على تعبئة هذه المتغيرات، وتُستخدم عادةً في الحالات التي إلى بيانات الملف الشخصي، ولكن في الحالات التي لم تحصل فيها بعد على منح أو التحقق من الصحة. .

متغيّرات معرِّف العميل

تتم تعبئة هذه المتغيّرات عند ضبط عنصر ClientId:

oauthv2client.{policy_name}.client_id
oauthv2client.{policy_name}.client_secret
oauthv2client.{policy_name}.redirection_uris // Note the spelling -- 'redirection_uris'
oauthv2client.{policy_name}.developer.email
oauthv2client.{policy_name}.developer.app.name
oauthv2client.{policy_name}.developer.id
oauthv2client.{policy_name}.{developer_app_custom_attribute_name}

متغيّرات رمز الوصول المميّز

تتم تعبئة هذه المتغيّرات عند ضبط عنصر AccessToken:

oauthv2accesstoken.{policy_name}.developer.id
oauthv2accesstoken.{policy_name}.developer.app.name
oauthv2accesstoken.{policy_name}.developer.app.id
oauthv2accesstoken.{policy_name}.developer.email

oauthv2accesstoken.{policy_name}.organization_name
oauthv2accesstoken.{policy_name}.api_product_list

oauthv2accesstoken.{policy_name}.access_token
oauthv2accesstoken.{policy_name}.scope
oauthv2accesstoken.{policy_name}.expires_in //in seconds
oauthv2accesstoken.{policy_name}.status
oauthv2accesstoken.{policy_name}.client_id
oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name}

oauthv2accesstoken.{policy_name}.refresh_token
oauthv2accesstoken.{policy_name}.refresh_token_status
oauthv2accesstoken.{policy_name}.refresh_token_expires_in //in seconds

oauthv2accesstoken.{policy_name}.refresh_count
oauthv2accesstoken.{policy_name}.refresh_token_issued_at
oauthv2accesstoken.{policy_name}.revoke_reason //Apigee hybrid only with value of REVOKED_BY_APP, REVOKED_BY_ENDUSER, REVOKED_BY_APP_ENDUSER, or TOKEN_REVOKED

متغيّرات رمز التفويض

تتم تعبئة هذه المتغيّرات عند ضبط عنصر PermissionCode:

oauthv2authcode.{policy_name}.code
oauthv2authcode.{policy_name}.scope       
oauthv2authcode.{policy_name}.redirect_uri 
oauthv2authcode.{policy_name}.client_id
oauthv2authcode.{policy_name}.{auth_code_custom_attribute_name}

إعادة تحميل متغيّرات الرمز المميّز

تتم تعبئة هذه المتغيّرات عند ضبط العنصر RefreshToken:

oauthv2refreshtoken.{policy_name}.developer.id
oauthv2refreshtoken.{policy_name}.developer.app.name
oauthv2refreshtoken.{policy_name}.developer.app.id
oauthv2refreshtoken.{policy_name}.developer.email
oauthv2refreshtoken.{policy_name}.organization_name
oauthv2refreshtoken.{policy_name}.api_product_list

oauthv2refreshtoken.{policy_name}.access_token
oauthv2refreshtoken.{policy_name}.scope
oauthv2refreshtoken.{policy_name}.expires_in //in seconds

oauthv2refreshtoken.{policy_name}.status
oauthv2refreshtoken.{policy_name}.client_id
oauthv2refreshtoken.{policy_name}.accesstoken.{custom_attribute_name}

oauthv2refreshtoken.{policy_name}.refresh_token
oauthv2refreshtoken.{policy_name}.refresh_token_status
oauthv2refreshtoken.{policy_name}.refresh_token_expires_in //in seconds

oauthv2refreshtoken.{policy_name}.refresh_count
oauthv2refreshtoken.{policy_name}.refresh_token_issued_at
oauthv2refreshtoken.{policy_name}.revoke_reason //Apigee hybrid only with value of REVOKED_BY_APP, REVOKED_BY_ENDUSER, REVOKED_BY_APP_ENDUSER, or TOKEN_REVOKED

المخطط

يتم تحديد كل نوع سياسة من خلال مخطّط XML (.xsd). يمكنك الرجوع إلى مخططات السياسات المتوفرة على جيت هب.

مرجع الخطأ

يصف هذا القسم رموز الخطأ ورسائل الخطأ التي يتم عرضها ومتغيرات الأخطاء التي تم ضبطها من خلال Edge عندما تؤدي هذه السياسة إلى ظهور خطأ. من المهم معرفة هذه المعلومات إذا كنت تضع قواعد خطأ التعامل مع الأخطاء. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على ما تحتاج إلى معرفته حول أخطاء السياسة والتعامل مع المعالجة والأخطاء.

أخطاء بيئة التشغيل

يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة. أسماء الخطأ الموضحة أدناه هي السلاسل التي يتم تخصيصها للمتغيّر fault.name عند حدوث خطأ. مشاهدة الخطأ قسم "المتغيرات" أدناه لمزيد من التفاصيل.

رمز الخطأ رموز حالة HTTP السبب
steps.oauth.v2.access_token_expired 500 انتهت صلاحية رمز الدخول الذي تم إرساله إلى السياسة.
steps.oauth.v2.authorization_code_expired 500 انتهت صلاحية رمز التفويض الذي تم إرساله إلى السياسة.
steps.oauth.v2.invalid_access_token 500 رمز الدخول الذي تم إرساله إلى السياسة غير صالح.
steps.oauth.v2.invalid_client-invalid_client_id 500 معرّف العميل الذي تم إرساله إلى السياسة غير صالح.
steps.oauth.v2.invalid_refresh_token 500 الرمز المميّز لإعادة التحميل الذي تم إرساله إلى السياسة غير صالح.
steps.oauth.v2.invalid_request-authorization_code_invalid 500 رمز التفويض الذي تم إرساله إلى السياسة غير صالح.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 يُرجى مراجعة هذه المشاركة في منتدى Apigee للحصول على معلومات حول تحديد هذا الخطأ وحلّها.
steps.oauth.v2.refresh_token_expired 500 انتهت صلاحية الرمز المميّز لإعادة التحميل الذي تم إرساله إلى السياسة.

أخطاء النشر

يمكنك الرجوع إلى الرسالة التي تم الإبلاغ عنها في واجهة المستخدم للحصول على معلومات عن أخطاء النشر.

متغيّرات الأخطاء

يتم ضبط هذه المتغيّرات عندما تؤدي هذه السياسة إلى ظهور خطأ في وقت التشغيل.

المتغيرات المكان مثال
fault.name="fault_name" fault_name هو اسم الخطأ، كما هو موضَّح في جدول أخطاء وقت التشغيل أعلاه. اسم الخطأ هو الجزء الأخير من رمز الخطأ. fault.name Matches "IPDeniedAccess"
oauthV2.policy_name.failed policy_name هو الاسم الذي يحدّده المستخدم للسياسة التي أدّت إلى حدوث الخطأ. oauthV2.GetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name هو الاسم الذي يحدّده المستخدم للسياسة التي أدّت إلى حدوث الخطأ. oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id
oauthV2.policy_name.fault.cause policy_name هو الاسم الذي يحدّده المستخدم للسياسة التي أدّت إلى حدوث الخطأ. oauthV2.GetTokenInfo.cause = ClientID is Invalid

مثال على استجابة الخطأ

{  
   "fault":{  
      "faultstring":"ClientId is Invalid",
      "detail":{  
         "errorcode":"keymanagement.service.invalid_client-invalid_client_id"
      }
   }
}

مثال على قاعدة الخطأ

<FaultRule name="OAuthV2 Faults">
    <Step>
        <Name>AM-InvalidClientIdResponse</Name>
    </Step>
    <Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>

مواضيع ذات صلة