تحديد المشاكل وحلّها في ما يتعلّق بنشر سياسة 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> في سياسة التحقّق من JWT ليس أيًا من الأنواع التالية:

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 الذي تعذّر التحقّق من صحته يتطابق مع اسم المطالبة والنوع المحدّدَين في رسالة الخطأ في الخطوة 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

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

    في المثال "التحقق من سياسة 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 الذي تعذّر التحقّق من صحته يتطابق مع اسم المطالبة والنوع المحدّدَين في رسالة الخطأ في الخطوة 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>.

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

لتصحيح المثال، يمكنك تغيير قيمة <Algorithm> إلى HS25، وذلك لتصحيح المثال الذي يستخدم العنصر <SecretKey> وفقًا لسياسة JWT الموضحة أعلاه. ملاحظة: عند استخدام العنصر <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 إلى ظهور هذا الخطأ.

التشخيص

  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 Family ومن استخدام العنصر <SecretKey> الإلزامي مع خوارزميات HS Family.

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

<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، سيظهر لك مربع حوار يحتوي على خطأ:

السبب

يحدث هذا الخطأ إذا لم يتم تحديد سمة المرجع في العنصر الفرعي <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 الذي تعذّر التحقق من صحته وتحقَّق من أنّ العنصر المحدّد في الخطوة 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).
    
    

درجة الدقّة

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

لتصحيح المثال، يمكنك استخدام متغير التدفق 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> في سياسة التحقّق من JWT.

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

لتصحيح مثال سياسة "التحقق من JWT"، يمكنك استخدام <SecretKey> من سياسة التحقّق من JWT التي تستخدم خوارزمية 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>