عیب یابی خطای استقرار خط مشی VerifyJWT

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

نام نامعتبربرایادعای اضافی

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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 استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalClaims> یکی از نام‌های ثبت شده زیر باشد:

"بچه"، "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. تأیید کنید که نام ادعا (Claim) استفاده شده در عنصر <AdditionalClaims> در XML مربوط به Verify JWT policy ناموفق، با نام ادعای شناسایی شده در پیام خطا در مرحله 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) استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalClaims> یکی از نام‌های ثبت‌شده‌ی زیر باشد:

    "بچه"، "iss"، "sub"، "aud"، "iat"، "exp"، "nbf"، "jti"

    پس علت خطا همینه.

    در مثال Verify JWT policy که در بالا نشان داده شده است، نام <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 policy، نام claim را به 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>

نوع نامعتبربرایادعای اضافی

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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، نام claim و نوع آن را از پیام خطا مشخص کنید. برای مثال، در پیام خطای زیر، نام سیاست Verify JWT، JWT-Verify-RS256 ، نام claim، claim و نوع آن integer:

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. تأیید کنید که نام ادعا و نوع استفاده شده در عنصر <AdditionalClaims> در XML مربوط به Verify JWT policy ناموفق، با نام و نوع ادعا که در پیام خطا در مرحله 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 policy که در بالا نشان داده شده است، نوع <Claim> به عنوان integer در زیر عنصر <AdditionalClaims> مشخص شده است. از آنجا که integer یک نوع پشتیبانی شده نیست، با خطای زیر مواجه می‌شوید:

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

وضوح تصویر

مطمئن شوید که فقط از انواع داده‌ی پشتیبانی‌شده‌ی string (default)، number ، boolean یا map در عنصر فرزند <Claim> از عنصر <AdditionalClaims> استفاده شده باشد.

برای اصلاح مثال Verify JWT policy، نوع Claim را به 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

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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) در عنصر فرزند <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 policy ناموفق را بررسی کنید و مطمئن شوید که نام claim در عنصر فرزند <Claims> در زیر عنصر <AdditionalClaims> یا <AdditionalHeaders> وجود ندارد. برای مثال، Verify JWT policy زیر نام claim را در زیر عنصر <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) همیشه در عنصر فرزند <Claim> از عنصر <AdditionalClaims> یا <AdditionalHeaders> مشخص شده باشد.

برای اصلاح مثال Verify JWT policy، نام 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='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

نام نامعتبربرای سربرگ اضافی

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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 استفاده شده در عنصر فرزند <Claim> از عنصر <AdditionalHeaders> یکی از هدرهای استاندارد JWT زیر باشد:

alg یا typ

برای مثال، استفاده از نام claim به نام 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 policy با نام هدر شناسایی شده در پیام خطا در مرحله 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 policy که در بالا نشان داده شده است، نام <Claim> به صورت alg در زیر عنصر <AdditionalClaims> مشخص شده است که منجر به خطای زیر می‌شود:

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

وضوح تصویر

alg یا typ هدرهای استاندارد JWT در عنصر فرزند <Claim> از عنصر <AdditionalHeaders> استفاده نکنید.

برای اصلاح مثال Verify JWT policy، از نام 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

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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 policy ناموفق، با نام و نوع ادعا که در پیام خطا در مرحله 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

    پس علت خطا همینه.

    در مثال Verify JWT policy که در بالا نشان داده شده است، نوع <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 policy، نوع Claim را به 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>

ویژگی مقدار نامعتبر آرایه

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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) استفاده شده در عنصر فرزند <Claim> زیر عنصر <AdditionalHeaders> در XML مربوط به Verify JWT policy ناموفق، با نام ادعای شناسایی شده در پیام خطا در مرحله 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 policy که در بالا نشان داده شده است، مقدار ویژگی array را به 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>

مقدار نامعتبربرای عنصر

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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 policy که با خطا مواجه شده است را بررسی کنید و مقدار مشخص شده برای عنصر <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

برای اصلاح مثال Verify JWT policy که در بالا نشان داده شده است و از عنصر <SecretKey> استفاده می‌کند، مقدار <Algorithm> را به HS25 تغییر دهید. توجه داشته باشید، وقتی از عنصر <SecretKey> استفاده می‌شود، فقط می‌توانید از الگوریتم‌های خانواده HS استفاده کنید.

<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>

عنصر پیکربندی گمشده

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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 در سیاست Verify JWT استفاده نشود . به همین ترتیب، اگر عنصر <SecretKey> با الگوریتم‌های خانواده HS در سیاست Verify JWT استفاده نشود ، این خطا می‌تواند رخ دهد.

برای مثال، عدم استفاده از عنصر <PublicKey> با الگوریتم‌های خانواده RSA منجر به این خطا می‌شود.

تشخیص

  1. نام سیاست Verify JWT و نام عنصر گمشده را از پیام خطا مشخص کنید. برای مثال، در پیام خطای زیر، نام سیاست Verify JWT، JWT-Verify-RS256 و نام عنصر گمشده، PublicKey است:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. فایل XML مربوط به Verify JWT policy را که با خطا مواجه شده است، بررسی کنید و مطمئن شوید که عنصری که در پیام خطا نشان داده شده است، وجود ندارد. اگر وجود ندارد، پس علت خطا همین است.

    برای مثال، سیاست زیر نشان می‌دهد که 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 policy از الگوریتم‌های HS Family استفاده می‌کند، اما عنصر اجباری PublicKey وجود ندارد و منجر به خطای زیر می‌شود:

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

وضوح تصویر

مطمئن شوید که عنصر اجباری <PublicKey> با الگوریتم‌های خانواده RSA و عنصر اجباری <SecretKey> با الگوریتم‌های خانواده HS استفاده می‌شود.

برای اصلاح مثال Verify JWT policy که در بالا نشان داده شده است و از الگوریتم RS256 استفاده می‌کند، عنصر <PublicKey> را به VerifyJWT policy اضافه کنید:

<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>

پیکربندی کلید نامعتبر

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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 policy را که با شکست مواجه شده است، بررسی کنید و بررسی کنید که آیا عنصر فرزند <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 policy، عنصر فرزند <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>

پیکربندی عنصر خالی برای کلید

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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 policy را که با شکست مواجه شده است، بررسی کنید و مطمئن شوید که عنصر شناسایی شده در مرحله 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> همیشه مشخص شده باشد.

برای اصلاح مثال «بررسی سیاست 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>

پیکربندی نامعتبربرای تأیید

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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 policy را که با خطا مواجه شده است، بررسی کنید و مطمئن شوید که عنصر نامعتبر شناسایی شده در مرحله ۱ تعریف شده است. اگر تعریف شده باشد، علت خطا همین است.

    برای مثال، سیاست زیر نشان می‌دهد که عنصر فرزند <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 تعریف نشده باشد.

برای اصلاح مثال Verify JWT policy، عنصر فرزند <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>

عنصر خالی نامعتبر

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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 policy را که با شکست مواجه شده است، بررسی کنید و مطمئن شوید که عنصر شناسایی شده در مرحله 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> از یک سیاست تأیید 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>

مقدار کلید عمومی نامعتبر

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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 policy ناموفق را بررسی کنید و مطمئن شوید که عنصر شناسایی شده در مرحله 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>

پیکربندی نامعتبر برای اقدام و الگوریتم

پیام خطا

استقرار پروکسی API از طریق رابط کاربری 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. تأیید کنید که عنصر و خانواده الگوریتم استفاده شده در سیاست ناموفق Verify JWT XML با عنصر و خانواده الگوریتم شناسایی شده در پیام خطا در مرحله 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 استفاده می‌شود.

برای اصلاح مثال مربوط به سیاست 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>