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

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

InvalidNameForAdditionalClaim

پیام خطا

استقرار پراکسی 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> عنصر <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» با نام ادعای شناسایی‌شده در پیام خطا در «مرحله ۱» مطابقت دارد. برای مثال، خط‌مشی زیر ادعا را به‌عنوان 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

پیام خطا

استقرار پراکسی 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. نام خط‌مشی «درستی‌سنجی 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

پیام خطا

استقرار پراکسی 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> از عنصر <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. «زبان نشانه‌گذاری توسعه‌پذیر» خط‌مشی «درستی‌سنجی 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

پیام خطا

استقرار پراکسی 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> عنصر <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» نام سرصفحه مشخص‌شده در پیام خطا در «مرحله ۱» مطابقت داشته باشد. برای مثال، خط‌مشی زیر سرصفحه را به‌عنوان 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

پیام خطا

استقرار پراکسی 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> خط‌مشی «درستی‌سنجی 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

پیام خطا

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

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. تأیید کنید که نام ادعای استفاده‌شده در عنصر فرزند <Claim> در عنصر <AdditionalHeaders> در XML خط‌مشی «درستی‌سنجی JWT» ناموفق با نام ادعای شناسایی‌شده در پیام خطا در «مرحله ۱» مطابقت دارد. برای مثال، خط‌مشی زیر نام دعوی را به‌عنوان 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

پیام خطا

استقرار پراکسی 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. نام خط‌مشی «درستی‌سنجی JWT» و نام عنصر را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام خط‌مشی «تأیید JWT» JWT-Verify-RS256 و نام عنصر Algorithm است:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. «زبان نشانه‌گذاری توسعه‌پذیر» خط‌مشی «درستی‌سنجی 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» استفاده کنید.

<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

پیام خطا

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

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

تشخیص

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

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. «زبان نشانه‌گذاری توسعه‌پذیر» خط‌مشی «درستی‌سنجی 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» استفاده می‌کند، اما عنصر اجباری PublicKey وجود ندارد و درنتیجه خطای زیر رخ می‌دهد:

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

وضوح

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

برای اصلاح خط‌مشی «درستی‌سنجی 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

پیام خطا

استقرار پراکسی 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> خط‌مشی «تأیید JWT» تعریف نشده باشد.

تشخیص

  1. نام خط‌مشی «تأیید JWT» را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام خط‌مشی «درستی‌سنجی JWT» JWT-Verify-RS256 است:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. «زبان نشانه‌گذاری توسعه‌پذیر خط‌مشی درستی‌سنجی 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

پیام خطا

استقرار پراکسی 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. نام خط‌مشی «درستی‌سنجی JWT» و نام عنصری را که از پیام خطا خالی است شناسایی کنید. برای مثال، در پیام خطای زیر، نام خط‌مشی «تأیید JWT» JWT-Verify-RS256 و نام عنصر PublicKey/Value است:

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. «خط‌مشی درستی‌سنجی JWT» ناموفق XML را بررسی کنید و مطمئن شوید عنصری که در «مرحله ۱» شناسایی شده است خالی باشد. اگر خالی باشد، دلیل خطا همین است.

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

پیام خطا

استقرار پراکسی 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. نام خط‌مشی «درستی‌سنجی JWT» و نام عنصر نامعتبر را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام خط‌مشی «درستی‌سنجی JWT» JWT-Verify-RS256 و نام عنصر SecretKey/Id است:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. «زبان نشانه‌گذاری توسعه‌پذیر» خط‌مشی «درستی‌سنجی JWT» ناموفق را بررسی کنید و مطمئن شوید عنصر نامعتبر شناسایی‌شده در «مرحله ۱» تعریف شده است. اگر تعریف شده باشد، آن علت خطا است.

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

پیام خطا

استقرار پراکسی 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> خط‌مشی «درستی‌سنجی JWT» خالی باشد، این خطا رخ می‌دهد. اگر وجود داشته باشد، باید با نام متغیر جریان Edge تعریف شود.

تشخیص

  1. نام خط‌مشی «درستی‌سنجی JWT» و نام عنصر خالی را از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام خط‌مشی «درستی‌سنجی JWT» JWT-Verify-RS256 و نام عنصر PublicKey/Value است:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. «خط‌مشی درستی‌سنجی JWT» ناموفق XML را بررسی کنید و مطمئن شوید عنصری که در «مرحله ۱» شناسایی شده است خالی باشد. اگر خالی باشد، دلیل خطا همین است.

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

پیام خطا

استقرار پراکسی 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. نام خط‌مشی «درستی‌سنجی JWT» و نام عنصری را که حاوی مقدار نامعتبر است از پیام خطا شناسایی کنید. برای مثال، در پیام خطای زیر، نام خط‌مشی «تأیید JWT» JWT-Verify-RS256 و عنصر PublicKey/JWKS است:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. «زبان نشانه‌گذاری توسعه‌پذیر» خط‌مشی «درستی‌سنجی JWT» ناموفق را بررسی کنید و مطمئن شوید عنصری که در «مرحله ۱» شناسایی شده است طبق 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

پیام خطا

استقرار پراکسی 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» منجر به این خطا می‌شود.

تشخیص

  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» ناموفق با عنصر و خانواده الگوریتم شناسایی‌شده در پیام خطا در «مرحله ۱» مطابقت دارد. برای مثال، خط‌مشی زیر عنصر را به‌عنوان 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» استفاده می‌شود.

برای اصلاح خط‌مشی نمونه «تأیید خط‌مشی 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>