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

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

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. حدِّد اسم سياسة التحقّق من JWT واسم المطالبة من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة التحقّق من JWT هو JWT-Verify-RS256 واسم المطالبة هو iss:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. تأكَّد من أنّ اسم المطالبة المستخدَم ضمن العنصر <AdditionalClaims> في ملف XML الخاص بسياسة التحقّق من 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"

    فهذا هو سبب الخطأ.

    في مثال سياسة "التحقّق من 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>.

لتصحيح المشكلة الواردة في المثال الوارد في نموذج التحقّق من سياسة 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. حدِّد اسم سياسة التحقّق من JWT واسم المطالبة والنوع الوارد في رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة "التحقّق من JWT" هو "JWT-Verify-RS256" واسم المطالبة "claim" والنوع هو "integer:".

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

    فهذا هو سبب الخطأ.

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

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

الدقة

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

لتصحيح مثال سياسة 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. حدد اسم سياسة التحقق من JWT من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة "التحقّق من JWT" هو JWT-Verify-RS256:

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

لتصحيح مثال سياسة 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. حدِّد اسم سياسة التحقّق من JWT واسم العنوان من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة التحقّق من JWT هو JWT-Verify-RS256 واسم العنوان alg:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. تأكَّد من أنّ اسم العنوان المستخدَم في العنصر الفرعي <Claim> ضمن العنصر <AdditionalHeaders> في ملف XML الخاص بسياسة التحقّق من 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

    فهذا هو سبب الخطأ.

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

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

الدقة

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

لتصحيح مثال سياسة 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> في سياسة التحقّق من JWT نوعًا من الأنواع التالية:

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

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

التشخيص

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

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

لتصحيح مثال سياسة 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. حدِّد اسم سياسة التحقّق من JWT واسم المطالبة من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة التحقّق من JWT هو JWT-Verify-RS256 واسم المطالبة هو claim:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. تأكَّد من أنّ اسم المطالبة المستخدَم في العنصر الفرعي <Claim> ضمن العنصر <AdditionalHeaders> في ملف XML الخاص بسياسة التحقّق من 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.

لتصحيح مثال سياسة 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. حدد اسم سياسة التحقق من JWT واسم العنصر من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة التحقّق من JWT هو JWT-Verify-RS256 واسم العنصر Algorithm:

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

    في ما يلي نموذج لسياسة 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

    فهذا هو سبب الخطأ.

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

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

الدقة

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

HS256، HS384، HS512، RS256، RS384، RS512

لتصحيح مثال سياسة 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 في سياسة التحقّق من JWT. وبالمثل، يمكن أن يحدث الخطأ إذا لم يتم استخدام العنصر <SecretKey> مع خوارزميات HS Family في سياسة "التحقق من JWT".

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

التشخيص

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

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. افحص ملف XML لسياسة 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>
    

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

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

الدقة

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

لتصحيح مثال سياسة "التحقق من 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> من سياسة "التحقق من JWT".

التشخيص

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

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. تحقَّق من ملف XML الخاص بسياسة 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>سياسة التحقّق من JWT، ستظهر لك رسالة الخطأ التالية:

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

الدقة

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

لتصحيح مثال سياسة 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. حدد اسم سياسة التحقق من JWT واسم العنصر الفارغ من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة التحقّق من JWT هو JWT-Verify-RS256 واسم العنصر PublicKey/Value:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. افحص ملف XML لسياسة 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> في سياسة "التحقق من JWT" فارغ، تظهر لك رسالة الخطأ التالية:

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

الدقة

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

لتصحيح مثال سياسة 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. حدد اسم سياسة التحقق من JWT واسم العنصر غير الصالح من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة "التحقّق من JWT" هو JWT-Verify-RS256 واسم العنصر SecretKey/Id:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. افحص ملف XML لسياسة 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> في سياسة "التحقق من JWT"، ستظهر لك رسالة الخطأ:

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

الدقة

يمكنك التأكّد من عدم تحديد العنصر <Id> مطلقًا ضمن العنصر <SecretKey> في سياسة التحقّق من 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> في سياسة "التحقّق من JWT" فارغًا. إذا كان موجودًا، يجب تحديده باسم متغير تدفق Edge.

التشخيص

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

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. افحص ملف XML لسياسة 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> في سياسة "التحقّق من JWT" فارغ، ستظهر لك رسالة الخطأ:

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

الدقة

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

لتصحيح مثال سياسة 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. حدد اسم سياسة التحقق من JWT واسم العنصر الذي يحتوي على قيمة غير صالحة من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، يكون اسم سياسة "التحقّق من JWT" هو JWT-Verify-RS256 والعنصر هو PublicKey/JWKS:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. افحص ملف XML الخاص بسياسة 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).

لتصحيح مثال سياسة 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 Family مع استخدام العنصر <SecretKey> مع خوارزميات RSA Family. سيحدث الخطأ أيضًا إذا انطبق أي من هذين الشرطين.

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

التشخيص

  1. حدد اسم سياسة التحقق من JWT واسم العنصر واسم عائلة الخوارزمية من رسالة الخطأ. على سبيل المثال، في رسالة الخطأ التالية، اسم سياسة التحقّق من 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 الخاص بسياسة التحقّق من 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> لا يُستخدم إلا مع خوارزميات عائلة RSA وأنّ العنصر <SecretKey> لا يُستخدم إلا مع خوارزميات HS Family.

لتصحيح مثال سياسة 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>