تحديد المشاكل وحلّها في ما يتعلّق بنشر سياسة CheckJWT

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

InvalidNameForAdditionalClaim

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision revision_number
Invalid name for additional claim : policy(policy_name) claim(claim_name).

مثال على رسالة الخطأ

Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا كان اسم المطالبة المستخدَمة في العنصر الفرعي <Claim> من العنصر <AdditionalClaims> أحد الأسماء المسجّلة التالية:

‫"kid" و"iss" و"sub" و"aud" و"iat" و"exp" و"nbf" و"jti"

يتم تحديد المطالبات المسجّلة في RFC7519.

على سبيل المثال، سيؤدي استخدام اسم المطالبة iss ضمن العنصر <AdditionalClaims> إلى حدوث هذا الخطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم المطالبة من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256 واسم المطالبة هو iss:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. تأكَّد من أنّ اسم المطالبة المستخدَم ضمن العنصر <AdditionalClaims> في ملف XML الخاص بسياسة Verify JWT الذي تعذّر تنفيذه يتطابق مع اسم المطالبة المحدّد في رسالة الخطأ في الخطوة 1. على سبيل المثال، تحدّد السياسة التالية المطالبة بأنّها iss، وهو ما يتطابق مع ما ورد في رسالة الخطأ:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name="iss"/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. إذا كان اسم المطالبة المستخدَم في العنصر الفرعي <Claim> من العنصر <AdditionalClaims> هو أحد الأسماء المسجّلة التالية:

    ‫"kid" و"iss" و"sub" و"aud" و"iat" و"exp" و"nbf" و"jti"

    عندئذٍ يكون هذا هو سبب الخطأ.

    في مثال سياسة Verify JWT الموضّح أعلاه، تم تحديد الاسم <Claim> على أنّه iss ضمن العنصر <AdditionalClaims>، ما أدّى إلى ظهور الخطأ التالي:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    

الدقة

لا تستخدِم أيًا من الأسماء المسجّلة "kid" أو "iss" أو "sub" أو "aud" أو "iat" أو "exp" أو "nbf" أو "jti" في العنصر الفرعي <Claim> للعنصر <AdditionalClaims>.

لحلّ المشكلة في مثال سياسة Verify JWT، غيِّر اسم المطالبة إلى status:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</VerifyJWT>

InvalidTypeForAdditionalClaim

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision revision_number
Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).

مثال على رسالة الخطأ

Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

نوع المطالبة المستخدَمة في العنصر الفرعي <Claim> للعنصر <AdditionalClaims> في سياسة VerifyJWT ليس أحد الأنواع التالية:

‫string (تلقائي) أو number أو boolean أو map

على سبيل المثال، سيؤدي استخدام نوع المطالبة integer ضمن العنصر <AdditionalClaims> إلى حدوث خطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم المطالبة ونوعها من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، اسم سياسة Verify JWT هو JWT-Verify-RS256، واسم المطالبة هو claim، والنوع هو integer:

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. تأكَّد من أنّ اسم المطالبة والنوع المستخدَمَين ضمن العنصر <AdditionalClaims> في ملف XML الخاص بسياسة Verify JWT الذي تعذّر تنفيذه يتطابقان مع اسم المطالبة والنوع المحدّدَين في رسالة الخطأ في الخطوة 1. على سبيل المثال، تحدّد السياسة التالية المطالبة بأنّها claim والنوع بأنّه integer، وهو ما يتطابق مع ما ورد في رسالة الخطأ:

    <VerifyJWT name="JWT-Verify-RS256">
      <DisplayName>JWT Verify RS256</DisplayName>
      <Algorithm>RS256</Algorithm>
     <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <SecretKey>
          <Value ref="private.secretkey"/>
          <Id>1918290</Id>
      </SecretKey>
      <ExpiresIn>1h</ExpiresIn>
      <Subject>monty-pythons-flying-circus</Subject>
      <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
      <Audience>fans</Audience>
      <Id/>
      <AdditionalClaims>
          <Claim name='claim' ref='reqclaim' type='integer'/>
      </AdditionalClaims>
    </VerifyJWT>
    
  3. إذا لم يكن نوع المطالبة المستخدَم في العنصر الفرعي <Claim> من العنصر <AdditionalClaims> أحد الأنواع التالية:

    ‫string (تلقائي) أو number أو boolean أو map

    عندئذٍ يكون هذا هو سبب الخطأ.

    في مثال سياسة Verify JWT الموضّح أعلاه، تم تحديد النوع <Claim> على أنّه integer ضمن العنصر <AdditionalClaims>. بما أنّ integer ليس نوعًا متوافقًا، سيظهر لك الخطأ التالي:

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    

الدقة

تأكَّد من استخدام أنواع البيانات المتوافقة فقط، وهي string (تلقائي) أو number أو boolean أو map، في العنصر الفرعي <Claim> من العنصر <AdditionalClaims>.

لتصحيح مثال سياسة Verify JWT، غيِّر نوع المطالبة إلى boolean:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

MissingNameForAdditionalClaim

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision revision_number
Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.

مثال على رسالة الخطأ

Error Saving Revision 2
Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا لم يتم تحديد اسم المطالبة في العنصر الفرعي <Claim> للعنصر <AdditionalClaims> أو <AdditionalHeaders>.

التشخيص

  1. حدِّد اسم سياسة Verify JWT من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256:

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. افحص ملف XML الخاص بسياسة Verify JWT التي تعذّر تنفيذها وتأكَّد من أنّ اسم المطالبة غير متوفّر في العنصر الفرعي <Claims> ضمن العنصر <AdditionalClaims> أو <AdditionalHeaders>. على سبيل المثال، لا تحدّد سياسة Verify JWT التالية اسم المطالبة ضمن العنصر <AdditionalClaims>:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    بما أنّه لم يتم تحديد الاسم <Claim> ضمن العنصر <AdditionalClaims>، سيظهر لك الخطأ التالي:

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    

الدقة

تأكَّد من أنّ اسم المطالبة محدّد دائمًا في العنصر الفرعي <Claim> من العنصر <AdditionalClaims> أو <AdditionalHeaders>.

لتصحيح مثال سياسة Verify JWT، حدِّد اسم المطالبة كما هو موضّح أدناه:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

InvalidNameForAdditionalHeader

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision revision_number
Invalid name for additional header : policy(policy_name)header(header_name).

مثال على رسالة الخطأ

Error Saving Revision 2
Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا كان اسم المطالبة المستخدَمة في العنصر الفرعي <Claim> للعنصر <AdditionalHeaders> هو أحد عناوين JWT العادية التالية:

alg أو typ

على سبيل المثال، سيؤدي استخدام اسم المطالبة alg ضمن العنصر <AdditionalHeaders> إلى حدوث الخطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم العنوان من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256 واسم العنوان هو alg:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. تأكَّد من أنّ اسم العنوان المستخدَم في العنصر الفرعي <Claim> ضمن العنصر <AdditionalHeaders> في ملف XML الخاص بسياسة Verify JWT الذي تعذّر تنفيذه يطابق اسم العنوان المحدّد في رسالة الخطأ في الخطوة 1. على سبيل المثال، تحدّد السياسة التالية العنوان على أنّه alg، وهو ما يتطابق مع ما ورد في رسالة الخطأ:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. إذا كان اسم العنوان المستخدَم في العنصر الفرعي <Claim> للعنصر <AdditionalClaims> هو أحد عناوين JWT العادية التالية:

    alg أو typ

    عندئذٍ يكون هذا هو سبب الخطأ.

    في مثال سياسة Verify JWT الموضّح أعلاه، تم تحديد الاسم <Claim> على أنّه alg ضمن العنصر <AdditionalClaims>، ما أدّى إلى ظهور الخطأ التالي:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    

الدقة

لا تستخدِم عناوين JWT العادية alg أو typ في العنصر الفرعي <Claim> من العنصر <AdditionalHeaders>.

لتصحيح مثال سياسة Verify JWT، استخدِم الاسم x5c في العنصر الفرعي <Claim> للعنصر <AdditionalHeaders>:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidTypeForAdditionalHeader

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision revision_number
Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).

مثال على رسالة الخطأ

Error Saving Revision 2
Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim1) type(integer).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

سيحدث الخطأ إذا لم يكن نوع المطالبة المستخدَمة في العنصر الفرعي <Claim> للعنصر <AdditionalHeaders> في سياسة Verify JWT أحد الأنواع التالية:

‫string (تلقائي) أو number أو boolean أو map

على سبيل المثال، سيؤدي استخدام نوع المطالبة integer ضمن العنصر <AdditionalHeaders> إلى حدوث الخطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم المطالبة ونوعها من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256، واسم المطالبة هو claim، والنوع هو integer:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. تأكَّد من أنّ اسم المطالبة والنوع المستخدَمَين ضمن العنصر <AdditionalClaims> في ملف XML لسياسة Verify JWT الذي تعذّر تنفيذه يتطابقان مع اسم المطالبة والنوع المحدّدَين في رسالة الخطأ في الخطوة 1. على سبيل المثال، تحدّد السياسة التالية المطالبة بأنّها claim ونوع المطالبة بأنّه integer,، وهو ما يتطابق مع ما ورد في رسالة الخطأ:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. إذا لم يكن نوع المطالبة المستخدَم في العنصر الفرعي <Claim> من العنصر <AdditionalHeaders> أحد الأنواع التالية:

    ‫string (تلقائي) أو number أو boolean أو map

    عندئذٍ يكون هذا هو سبب الخطأ.

    في مثال سياسة التحقّق من رمز JWT الموضّح أعلاه، تم تحديد النوع <Claim> ضمن العنصر <AdditionalHeaders> على أنّه integer. بما أنّ integer ليس نوعًا متوافقًا، سيظهر لك الخطأ التالي:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    

الدقة

تأكَّد من استخدام أنواع البيانات المتوافقة فقط، وهي string أو number أو boolean أو map، في العنصر الفرعي <Claim> من العنصر <AdditionalHeaders>.

لتصحيح مثال سياسة Verify JWT، غيِّر نوع المطالبة إلى boolean:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidValueOfArrayAttribute

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision revision_number
Invalid value for array attribute: policy(policy_name)claim(claim_name).

مثال على رسالة الخطأ

Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا لم يتم ضبط قيمة سمة المصفوفة في العنصر الفرعي <Claim> للعنصر <AdditionalClaims> أو العنصر <AdditionalHeaders> على true أو false.

على سبيل المثال، يؤدي ضبط قيمة سمة المصفوفة على yes في العنصر الثانوي <Claim> للعنصر <AdditionalClaims> أو العنصر <AdditionalHeaders> إلى حدوث الخطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم المطالبة من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256 واسم المطالبة هو claim:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. تأكَّد من أنّ اسم المطالبة المستخدَم في العنصر الفرعي <Claim> ضمن العنصر <AdditionalHeaders> في ملف XML لسياسة Verify JWT الذي تعذّر تنفيذه يتطابق مع اسم المطالبة المحدّد في رسالة الخطأ في الخطوة 1. على سبيل المثال، تحدّد السياسة التالية اسم المطالبة على أنّه claim، وهو ما يتطابق مع ما ورد في رسالة الخطأ:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. إذا لم يتم ضبط قيمة السمة array في العنصر الفرعي <Claim> للعنصر <AdditionalClaims> على true أو false، سيكون ذلك هو سبب الخطأ.

    بما أنّ السمة array في العنصر الثانوي <Claim> للعنصر <AdditionalClaims> تم ضبطها على yes في المثال أعلاه، سيظهر لك الخطأ التالي:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    

الدقة

تأكَّد من ضبط قيمة سمة الصفيف في العنصر الفرعي <Claim> للعنصرَين <AdditionalClaims> أو <AdditionalHeaders> على true أو false.

لتصحيح مثال سياسة Verify JWT الموضّح أعلاه، غيِّر قيمة سمة المصفوفة إلى true:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidValueForElement

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision
Invalid Value for element : policy(policy_name) element(element_name).

مثال على رسالة الخطأ

Error Saving Revision
Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا لم تكن القيمة المحدّدة في العنصر <Algorithm> إحدى القيم التالية:

HS256، وHS384، وHS512، وRS256، وRS384، وRS512

على سبيل المثال، يؤدي تحديد قيمة الخوارزمية على أنّها RS128 في العنصر <Algorithm> إلى حدوث هذا الخطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم العنصر من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256 واسم العنصر هو Algorithm:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. افحص ملف XML الخاص بسياسة Verify JWT الذي تعذّر تنفيذه وتحقّق من القيمة المحدّدة للعنصر <Algorithm>.

    في ما يلي نموذج لسياسة Verify JWT:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS128</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. افحص القيمة المحدّدة في العنصر <Algorithm>. إذا لم تكن إحدى القيم التالية:

    HS256، وHS384، وHS512، وRS256، وRS384، وRS512

    عندئذٍ يكون هذا هو سبب الخطأ.

    في مثال سياسة Verify JWT الموضّح أعلاه، تم تحديد اسم <Algorithm> على أنّه HS128. بما أنّ هذه الخوارزمية غير متوافقة، سيظهر لك الخطأ التالي:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    

الدقة

تأكَّد من أنّ القيمة المحدّدة في العنصر <Algorithm> هي إحدى القيم المسموح بها:

HS256، وHS384، وHS512، وRS256، وRS384، وRS512

لتصحيح مثال سياسة Verify JWT الموضّح أعلاه والذي يستخدم العنصر <SecretKey>، غيِّر قيمة <Algorithm> إلى HS25. يُرجى العِلم أنّه عند استخدام العنصر <SecretKey>، يمكنك استخدام خوارزميات HS Family فقط.

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</VerifyJWT>

MissingConfigurationElement

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision
Missing configuration element : policy(policy_name) element(element_name).

مثال على رسالة الخطأ

Error Saving Revision
Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ عندما لا يتم استخدام العنصر <PublicKey> مع خوارزميات RSA Family في سياسة Verify JWT. وبالمثل، يمكن أن يحدث الخطأ إذا لم يتم استخدام العنصر <SecretKey> مع خوارزميات HS Family في سياسة Verify JWT.

على سبيل المثال، عدم استخدام العنصر <PublicKey> مع خوارزميات RSA Family يؤدي إلى ظهور هذا الخطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم العنصر الناقص من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256 واسم العنصر غير المتوفّر هو PublicKey:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. افحص ملف XML الخاص بسياسة Verify JWT الذي تعذّر تنفيذه وتأكَّد من أنّ العنصر المحدّد في رسالة الخطأ غير متوفّر. إذا لم يكن متوفّرًا، سيكون هذا هو سبب الخطأ.

    على سبيل المثال، توضّح السياسة التالية أنّ PublicKey غير متوفّر وأنّ Algorithm المستخدَم هو RS256:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    يستخدم مثال سياسة Verify JWT خوارزميات HS Family، ولكن العنصر الإلزامي PublicKey غير متوفّر، ما يؤدي إلى ظهور الخطأ التالي:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    

الدقة

تأكَّد من استخدام العنصر الإلزامي <PublicKey> مع خوارزميات RSA Family واستخدام العنصر الإلزامي <SecretKey> مع خوارزميات HS Family.

لتصحيح مثال سياسة Verify JWT الموضّحة أعلاه، والتي تستخدم خوارزمية RS256، أضِف العنصر <PublicKey> إلى سياسة VerifyJWT:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Algorithm>RS256</Algorithm>
    <PublicKey>
      <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidKeyConfiguration

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision 
Invalid Key configuration : policy(policy_name).

مثال على رسالة الخطأ

Error Saving Revision 2
Invalid Key configuration : policy(JWT-Verify-RS256).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا لم يتم تحديد العنصر الثانوي <Value> أو العنصر الثانوي الإلزامي <JWKS> في العنصرَين <PublicKey> أو <SecretKey> من سياسة Verify JWT.

التشخيص

  1. حدِّد اسم سياسة Verify JWT من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. افحص ملف XML الخاص بسياسة Verify JWT الذي تعذّر تنفيذه وتأكَّد مما إذا كان العنصر الفرعي <Value> أو العنصر الفرعي <JWKS> غير محدّد في العنصرَين <PublicKey> أو <SecretKey>. إذا لم يتم تحديد العنصر الفرعي، سيكون ذلك هو سبب الخطأ.

    على سبيل المثال، توضّح السياسة التالية أنّ العنصر الفرعي <Value> أو <JWKS> غير محدّد في العنصر <PublicKey>:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <PublicKey>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    بما أنّ العنصر الفرعي <Value> أو <JWKS> غير محدّد في العنصر <PublicKey> من سياسة Verify JWT، يظهر لك الخطأ التالي:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    

الدقة

تأكَّد من تحديد العنصر الفرعي <Value> أو <JWKS> دائمًا في العنصر <PublicKey> من سياسة Verify JWT.

لتصحيح مثال سياسة Verify JWT، حدِّد العنصر الفرعي <Value> أو <JWKS> ضمن العنصر <PublicKey> كما هو موضّح أدناه:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</PublicJWT>

EmptyElementForKeyConfiguration

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision revision_number
Empty Element for Key Configuration : policy(policy_name) element(element_name).

مثال على رسالة الخطأ

Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا لم يتم تحديد السمة ref في العنصر الفرعي <Value> أو <JWKS> للعنصر <PublicKey> أو إذا كانت فارغة.

على سبيل المثال، إذا كان العنصر الفرعي <Value> الخاص بالعنصر <PublicKey> فارغًا، سيحدث الخطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم العنصر الذي يكون فارغًا من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256 واسم العنصر هو PublicKey/Value:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. افحص ملف XML الخاص بسياسة Verify JWT الذي تعذّر تنفيذه وتأكَّد من أنّ العنصر المحدّد في الخطوة 1 فارغ. إذا كان فارغًا، يكون هذا هو سبب الخطأ.

    على سبيل المثال، توضّح السياسة التالية أنّ العنصر الفرعي <Value> للعنصر <PublicKey> فارغ:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <PublicKey>
            <Value/>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    بما أنّ العنصر الفرعي <Value> للعنصر <PublicKey> في سياسة Verify JWT فارغ، سيظهر لك الخطأ التالي:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
    

الدقة

تأكَّد من تحديد السمة ref في العنصر الفرعي <Value> أو <JWKS> للعنصر <PublicKey> دائمًا.

لتصحيح مثال سياسة Verify JWT، استخدِم متغيّر المسار public.publickey في العنصر الفرعي <Value> للعنصر <PublicKey>:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidConfigurationForVerify

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision revision_number
Invalid configuration element for verify : policy(policy_name) element(element_name).

مثال على رسالة الخطأ

Error Saving Revision 3
Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا تم تحديد العنصر <Id> ضمن العنصر <SecretKey> في سياسة VerifyJWT.

على سبيل المثال، إذا تم تحديد العنصر <Id> في العنصر <SecretKey>، سيحدث هذا الخطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم العنصر غير الصالح من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256 واسم العنصر هو SecretKey/Id:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. افحص ملف XML الخاص بسياسة Verify JWT الذي تعذّر تنفيذه وتأكَّد من تحديد العنصر غير الصالح الذي تم تحديده في الخطوة 1. إذا تم تحديدها، سيكون هذا هو سبب الخطأ.

    على سبيل المثال، توضّح السياسة التالية أنّه تم تحديد العنصر الفرعي <Id> للعنصر <SecretKey>:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id/>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    بما أنّ العنصر <Id> معرَّف ضمن العنصر <SecretKey> في سياسة Verify JWT، يظهر لك الخطأ التالي:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    

الدقة

تأكَّد من عدم تحديد العنصر <Id> مطلقًا ضمن العنصر <SecretKey> في سياسة Verify JWT.

لتصحيح مثال سياسة التحقّق من صحة JWT، أزِل العنصر الفرعي <Id> من العنصر <SecretKey>:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref='private.secretkey'/>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidEmptyElement

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision 
Invalid empty element : policy(policy_name) element(element_name).

مثال على رسالة الخطأ

Error Saving Revision 3
Invalid empty element : policy(JWT-Verify-HS256) element(Source).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا كان العنصر <Source> في سياسة Verify JWT فارغًا. في حال توفّره، يجب تحديده باستخدام اسم متغيّر لمسار Edge.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم العنصر الفارغ من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-RS256 واسم العنصر هو PublicKey/Value:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. افحص ملف XML الخاص بسياسة Verify JWT الذي تعذّر تنفيذه وتأكَّد من أنّ العنصر المحدّد في الخطوة 1 فارغ. إذا كان فارغًا، يكون هذا هو سبب الخطأ.

    على سبيل المثال، توضّح السياسة التالية أنّ العنصر <Source> فارغ:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Source></Source>
        <PublicKey>
            <Value ref="public.publickey"/>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    بما أنّ العنصر <Source> في سياسة Verify JWT فارغ، سيظهر لك الخطأ التالي:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    

الدقة

في حال توفّر العنصر <Source> في سياسة Verify JWT، تأكَّد من أنّه يحدّد متغيّر تدفق.

لتصحيح مثال سياسة Verify JWT، استخدِم متغيّر تدفّق صالحًا في العنصر <Source>:

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Source>jwt-variable</Source>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidPublicKeyValue

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision revision_number
Invalid Public Key Value in Configuration : policy(policy_name) element(element_name).

مثال على رسالة الخطأ

Error Saving Revision 2
Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا كانت القيمة المستخدَمة في العنصر الفرعي <JWKS> من العنصر <PublicKey> ليست بتنسيق صالح كما هو محدّد في RFC 7517.

على سبيل المثال، سيؤدي استخدام abc كقيمة للعنصر الفرعي <JWKS> ضمن العنصر <PublicKey> إلى حدوث هذا الخطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم العنصر الذي يحتوي على قيمة غير صالحة من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، اسم سياسة Verify JWT هو JWT-Verify-RS256 والعنصر هو PublicKey/JWKS:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. افحص ملف XML الخاص بسياسة Verify JWT الذي تعذّر تنفيذه وتأكَّد من أنّ العنصر المحدّد في الخطوة 1 يحتوي على قيمة بتنسيق صالح وفقًا للمعيار RFC 7517. إذا لم تكن قيمة العنصر بالتنسيق الصحيح، سيكون ذلك هو سبب الخطأ.

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
            <JWKS>abc<JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>
    

    بما أنّ القيمة في العنصر الثانوي <JWKS> للعنصر <PublicKey> ليست بتنسيق صالح وفقًا للمعيار RFC 7517، سيظهر لك الخطأ التالي:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    

الدقة

تأكَّد من أنّ القيمة المحدّدة في العنصر الفرعي <JWKS> للعنصر <PublicKey> هي سلسلة أو متغيّر تدفق صالح بتنسيق JWKS صالح (RFC 7517).

لتصحيح مثال سياسة Verify JWT، غيِّر قيمة <JWKS> كما هو موضّح أدناه:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
        <JWKS>eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM</JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>

InvalidConfigurationForActionAndAlgorithm

رسالة الخطأ

يتعذّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge، وتظهر رسالة الخطأ التالية:

Error Saving Revision <var>revision_number</var>
Invalid configuration element for this action and algorithm Family: policy(<var>policy_name</var>) element(<var>element_name</var>) action(<var>action_name</var>) family(<var>family_name</var>).

مثال على رسالة الخطأ

Error Saving Revision
Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).

مثال على لقطة شاشة

في واجهة مستخدم Edge، سيظهر لك مربّع حوار يتضمّن رسالة خطأ:

السبب

يحدث هذا الخطأ إذا تم استخدام العنصر <PublicKey> مع خوارزميات عائلة HS وتم استخدام العنصر <SecretKey> مع خوارزميات عائلة RSA. سيحدث الخطأ أيضًا إذا كان أيّ من هذين الشرطين صحيحًا.

على سبيل المثال، يؤدي استخدام العنصر <PublicKey> مع خوارزميات HS Family إلى ظهور هذا الخطأ.

التشخيص

  1. حدِّد اسم سياسة Verify JWT واسم العنصر واسم مجموعة الخوارزميات من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة Verify JWT هو JWT-Verify-HS256، واسم العنصر هو PublicKey، ومجموعة الخوارزميات هي RSA:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. تأكَّد من أنّ العنصر ومجموعة الخوارزميات المستخدَمة في ملف XML لسياسة Verify JWT الذي تعذّر تنفيذه يتطابقان مع العنصر ومجموعة الخوارزميات المحدّدة في رسالة الخطأ في الخطوة 1. على سبيل المثال، تحدّد السياسة التالية العنصر على أنّه PublicKey ومجموعة الخوارزميات على أنّها HMAC، وهو ما يتطابق مع ما ورد في رسالة الخطأ.

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <PublicKey>
            <Value ref="var-value"/>
        </PublicKey>
        <SecretKey>
            <Value ref="private.secretkey"/>
        </SecretKey>
            <ExpiresIn>1h</ExpiresIn>
            <Subject>monty-pythons-flying-circus</Subject>
            <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
        </VerifyJWT>
    
  3. إذا كانت قيمة العنصر <Algorithm> هي HS256، ولكنّك استخدمت <PublicKey>، يكون ذلك هو سبب الخطأ.

    في مثال سياسة التحقّق من صحة JWT الموضّح أعلاه، يتم استخدام العنصر <PublicKey> على الرغم من ضبط <Algorithm> على خوارزمية HS256 من عائلة الخوارزميات، ما يؤدي إلى ظهور الخطأ التالي:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    

الدقة

تأكَّد من استخدام العنصر <PublicKey> مع خوارزميات "الإعلانات المتجاوبة على شبكة البحث" المناسبة للعائلة فقط، واستخدام العنصر <SecretKey> مع خوارزميات "الإعلانات الصورية" المناسبة للعائلة فقط.

لتصحيح مثال سياسة Verify JWT، استخدِم <SecretKey> من سياسة VerifyJWT التي تستخدم خوارزمية HS256:

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <SecretKey>
        <Value ref="private.secretkey"/>
    </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
    </VerifyJWT>