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

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

InvalidNameForAdditionalClaim

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

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> یکی از نام های ثبت شده زیر باشد:

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

ادعاهای ثبت شده در RFC7519 مشخص شده است.

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

تشخیص

  1. نام سیاست تأیید JWT و نام ادعا را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify 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> یکی از نام‌های ثبت شده زیر باشد:

    "بچه"، "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> استفاده نکنید. <AdditionalClaims> عنصر.

برای تصحیح مشکل با مثال Verify JWT Policy، نام ادعا را به 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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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 ناموفق با نام و نوع ادعای شناسایی شده در پیام خطا در مرحله 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> استفاده می‌شوند.

برای تصحیح مثال Verify JWT Policy، نوع ادعا را به 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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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

نمونه پیام خطا

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

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می دهد که نام ادعا در عنصر فرزند <Claim> عنصر <AdditionalClaims> یا <AdditionalHeaders> مشخص نشده باشد.

تشخیص

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

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. XML خط مشی تأیید 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> مشخص شده است.

برای تصحیح مثال Verify JWT Policy، نام ادعا را مطابق شکل زیر مشخص کنید:

<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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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> استفاده نکنید.

برای تصحیح مثال 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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. بررسی کنید که نام ادعا و نوع مورد استفاده در عنصر <AdditionalClaims> در XML خط مشی تأیید JWT ناموفق با نام و نوع ادعای شناسایی شده در پیام خطا در مرحله 1 مطابقت دارد. به عنوان مثال، خط مشی زیر ادعا را به عنوان claim مشخص می کند و نوع ادعا به عنوان integer, که با آنچه در پیام خطا است مطابقت دارد:

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. اگر نوع ادعای استفاده شده در عنصر فرزند <Claim> عنصر <AdditionalHeaders> یکی از انواع زیر نیست:

    string (پیش فرض)، number ، boolean یا map

    پس این دلیل خطا است.

    در مثال تأیید سیاست JWT نشان داده شده در بالا، نوع <Claim> در زیر عنصر <AdditionalHeaders> به عنوان integer مشخص شده است. از آنجایی که integer یک نوع پشتیبانی نمی شود، با این خطا مواجه می شوید:

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

قطعنامه

اطمینان حاصل کنید که فقط انواع داده های پشتیبانی شده string ، number ، boolean یا map در عنصر فرزند <Claim> عنصر <AdditionalHeaders> استفاده می شود.

برای تصحیح مثال Verify JWT Policy، نوع ادعا را به 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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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 تنظیم شده است.

برای تصحیح مثال Verify JWT Policy نشان داده شده در بالا، مقدار مشخصه آرایه را به 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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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. بررسی ناموفق Verify JWT Policy XML و مقدار مشخص شده برای عنصر <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 سیاست نشان داده شده در بالا، که از عنصر <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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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

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

    به عنوان مثال، خط مشی زیر نشان می دهد که PublicKey وجود ندارد و Algorithm مورد استفاده RS256 است:

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

    مثال Verify JWT از الگوریتم‌های خانواده HS استفاده می‌کند، اما عنصر اجباری PublicKey وجود ندارد که منجر به خطا می‌شود:

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

قطعنامه

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

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

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

InvalidKeyConfiguration

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

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 خط مشی تأیید JWT ناموفق را بررسی کنید و بررسی کنید که آیا عنصر فرزند <Value> یا عنصر فرزند <JWKS> در عناصر <PublicKey> یا <SecretKey> تعریف نشده است. اگر عنصر فرزند تعریف نشده باشد، این دلیل خطا است.

    به عنوان مثال، خط مشی زیر نشان می دهد که عنصر فرزند <Value> یا <JWKS> در عنصر <PublicKey> تعریف نشده است:

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

    از آنجایی که عنصر فرزند <Value> یا <JWKS> در عنصر <PublicKey> از خط مشی Verify JWT تعریف نشده است، با این خطا مواجه می شوید:

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

قطعنامه

اطمینان حاصل کنید که عنصر فرزند <Value> یا <JWKS> همیشه در عنصر <PublicKey> سیاست تأیید 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>

EmptyElementForKeyConfiguration

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

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

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

    به عنوان مثال، خط مشی زیر نشان می دهد که عنصر فرزند <Value> عنصر <PublicKey> خالی است:

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

    از آنجایی که عنصر فرزند <Value> عنصر <PublicKey> در سیاست Verify JWT خالی است، با این خطا مواجه می شوید:

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

قطعنامه

اطمینان حاصل کنید که ویژگی ref در عنصر فرزند <Value> یا <JWKS> عنصر <PublicKey> همیشه مشخص شده باشد.

برای تصحیح مثال Verify JWT Policy، از متغیر جریان 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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. XML خط مشی Verify JWT ناموفق را بررسی کنید و بررسی کنید که عنصر نامعتبر شناسایی شده در مرحله 1 تعریف شده باشد. اگر تعریف شده باشد، دلیل خطا همین است.

    به عنوان مثال، خط مشی زیر نشان می دهد که عنصر فرزند <Id> عنصر <SecretKey> تعریف شده است:

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

    از آنجایی که عنصر <Id> در عنصر <SecretKey> سیاست Verify JWT تعریف شده است، با این خطا مواجه می شوید:

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

قطعنامه

اطمینان حاصل کنید که عنصر <Id> هرگز در عنصر <SecretKey> یک سیاست Verify JWT تعریف نشده است.

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

InvalidEmptyElement

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

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 flow تعریف شود.

تشخیص

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

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

    به عنوان مثال، خط مشی زیر نشان می دهد که عنصر <Source> خالی است:

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

    از آنجایی که عنصر <Source> از خط مشی Verify JWT خالی است، با این خطا مواجه می شوید:

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

قطعنامه

اگر عنصر <Source> یک خط مشی Verify JWT وجود دارد، مطمئن شوید که متغیر جریان را مشخص می کند.

برای تصحیح مثال Verify JWT Policy، از یک متغیر جریان معتبر در عنصر <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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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

برای تصحیح مثال Verify JWT Policy، مقدار <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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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. نام سیاست تأیید JWT، نام عنصر و نام خانواده الگوریتم را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Verify JWT JWT-Verify-HS256 ، نام عنصر PublicKey و خانواده الگوریتم RSA است:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. بررسی کنید که عنصر و خانواده الگوریتم مورد استفاده در XML خط مشی تأیید JWT ناموفق با عنصر و خانواده الگوریتم مشخص شده در پیام خطا در مرحله 1 مطابقت دارند. به عنوان مثال، خط مشی زیر عنصر را به عنوان PublicKey و خانواده الگوریتم را به عنوان HMAC مشخص می کند. که با آنچه در پیام خطا است مطابقت دارد

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <PublicKey>
            <Value ref="var-value"/>
        </PublicKey>
        <SecretKey>
            <Value ref="private.secretkey"/>
        </SecretKey>
            <ExpiresIn>1h</ExpiresIn>
            <Subject>monty-pythons-flying-circus</Subject>
            <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
        </VerifyJWT>
    
  3. اگر مقدار عنصر <Algorithm> HS256 است، اما شما از <PublicKey> استفاده کرده‌اید، این دلیل خطا است.

    در مثال بررسی سیاست JWT که در بالا نشان داده شده است، از عنصر <PublicKey> استفاده می شود، حتی اگر <Algorithm> روی یک الگوریتم خانواده HS256 تنظیم شده باشد، که منجر به خطا می شود:

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

قطعنامه

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

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