การแก้ปัญหาข้อผิดพลาดในการทำให้นโยบาย ConfirmJWT ใช้งานได้

คุณกำลังดูเอกสารประกอบ 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากชื่อของการอ้างสิทธิ์ที่ใช้ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> เป็นชื่อที่จดทะเบียนชื่อใดชื่อหนึ่งต่อไปนี้

"kid", "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. ตรวจสอบว่าชื่อการอ้างสิทธิ์ที่ใช้ภายใต้องค์ประกอบ <AdditionalClaims> ใน XML ของนโยบาย JWT ที่ล้มเหลว ตรงกับชื่อการอ้างสิทธิ์ที่ระบุในข้อความแสดงข้อผิดพลาดในขั้นตอนที่ 1 ตัวอย่างเช่น นโยบายต่อไปนี้ระบุการอ้างสิทธิ์เป็น iss ซึ่งตรงกับข้อความแสดงข้อผิดพลาด

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name="iss"/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. หากชื่อการอ้างสิทธิ์ที่ใช้ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> เป็นชื่อที่จดทะเบียนชื่อใดชื่อหนึ่งต่อไปนี้

    "kid", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"

    นั่นคือสาเหตุของข้อผิดพลาด

    ในตัวอย่างนโยบาย "ยืนยัน JWT" ที่แสดงด้านบน ชื่อ <Claim> ได้รับการระบุเป็น iss ในองค์ประกอบ <AdditionalClaims> ซึ่งทำให้เกิดข้อผิดพลาดขึ้น

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    

ความละเอียด

อย่าใช้ชื่อที่จดทะเบียน "kid", "iss", "sub", "aud", "iat", "exp", "nbf" หรือ "jti" ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims>

ในการแก้ไขปัญหาของตัวอย่างนโยบาย "ยืนยัน JWT" ให้เปลี่ยนชื่อการอ้างสิทธิ์เป็น status ดังนี้

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

InvalidTypeForAdditionalClaim

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ประเภทของการอ้างสิทธิ์ที่ใช้ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> ของนโยบาย VerifyJWT ไม่ใช่ประเภทใดประเภทหนึ่งต่อไปนี้

string (ค่าเริ่มต้น), number, boolean หรือ map

เช่น การใช้การอ้างสิทธิ์ประเภท integer ใต้องค์ประกอบ <AdditionalClaims> จะทำให้เกิดข้อผิดพลาด

การวินิจฉัย

  1. ระบุชื่อนโยบาย Verify JWT, ชื่อการอ้างสิทธิ์ และประเภทการอ้างสิทธิ์จากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อความแสดงข้อผิดพลาดต่อไปนี้ ชื่อของนโยบาย Verify 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>

ในการแก้ไขตัวอย่าง "ยืนยันนโยบาย 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 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากไม่ระบุชื่อการอ้างสิทธิ์ในองค์ประกอบย่อย <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> ตัวอย่างเช่น นโยบาย Verify 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 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากชื่อการอ้างสิทธิ์ที่ใช้ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalHeaders> เป็นส่วนหัว JWT มาตรฐานรายการใดรายการหนึ่งต่อไปนี้

alg หรือ typ

ตัวอย่างเช่น การใช้ชื่อการอ้างสิทธิ์ 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 ของนโยบาย JWT ที่ล้มเหลว ตรงกับชื่อส่วนหัวที่ระบุไว้ในข้อความแสดงข้อผิดพลาดในขั้นตอนที่ 1 ตัวอย่างเช่น นโยบายต่อไปนี้ระบุส่วนหัวเป็น alg ซึ่งตรงกับข้อความแสดงข้อผิดพลาด

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. หากชื่อส่วนหัวที่ใช้ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> เป็นหนึ่งในส่วนหัว JWT มาตรฐานต่อไปนี้

    alg หรือ typ

    นั่นคือสาเหตุของข้อผิดพลาด

    ในตัวอย่างนโยบาย "ยืนยัน JWT" ที่แสดงด้านบน ชื่อ <Claim> ได้รับการระบุเป็น alg ในองค์ประกอบ <AdditionalClaims> ซึ่งทำให้เกิดข้อผิดพลาดขึ้น

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

ความละเอียด

อย่าใช้ส่วนหัว JWT มาตรฐาน alg หรือ typ ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalHeaders>

หากต้องการแก้ไขตัวอย่าง "ยืนยันนโยบาย JWT" ให้ใช้ชื่อ x5c ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalHeaders> ดังนี้

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

InvalidTypeForAdditionalHeader

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดจะเกิดขึ้นหากประเภทการอ้างสิทธิ์ที่ใช้ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalHeaders> ของนโยบาย Verify JWT ไม่ใช่ประเภทใดประเภทหนึ่งต่อไปนี้

string (ค่าเริ่มต้น), number, boolean หรือ map

ตัวอย่างเช่น การใช้การอ้างสิทธิ์ประเภท integer ใต้องค์ประกอบ <AdditionalHeaders> จะทำให้เกิดข้อผิดพลาด

การวินิจฉัย

  1. ระบุชื่อนโยบาย Verify 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>

ในการแก้ไขตัวอย่าง "ยืนยันนโยบาย 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 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากค่าของแอตทริบิวต์อาร์เรย์ในองค์ประกอบย่อย <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> ภายใต้องค์ประกอบ <AdditionalHeaders> ใน XML นโยบาย "ยืนยัน JWT" ที่ล้มเหลวตรงกับชื่อการอ้างสิทธิ์ที่ระบุในข้อความแสดงข้อผิดพลาดในขั้นตอนที่ 1 ตัวอย่างเช่น นโยบายต่อไปนี้ระบุชื่อการอ้างสิทธิ์เป็น claim ซึ่งตรงกับข้อความแสดงข้อผิดพลาด

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. หากค่าของแอตทริบิวต์ array ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> ไม่ได้ตั้งค่าเป็น true หรือ false ข้อผิดพลาดดังกล่าวอาจเป็นสาเหตุของข้อผิดพลาด

    เนื่องจากแอตทริบิวต์ array ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> ได้รับการตั้งค่าเป็น yes ในตัวอย่างด้านบน คุณจึงได้รับข้อผิดพลาด

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    

ความละเอียด

ตรวจสอบว่าค่าของแอตทริบิวต์อาร์เรย์ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> หรือ <AdditionalHeaders> ตั้งค่าเป็น true หรือ false

หากต้องการแก้ไขตัวอย่าง "ยืนยันนโยบาย JWT" ที่แสดงด้านบน ให้เปลี่ยนค่าของแอตทริบิวต์อาร์เรย์เป็น true

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

InvalidValueForElement

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากค่าที่ระบุในองค์ประกอบ <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 ที่ล้มเหลวและตรวจสอบค่าที่ระบุสำหรับองค์ประกอบ <Algorithm>

    ตัวอย่างนโยบาย "ยืนยัน JWT" มีดังนี้

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS128</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. ตรวจสอบค่าที่ระบุในองค์ประกอบ <Algorithm> หากไม่ใช่ค่าใดค่าหนึ่งต่อไปนี้

    HS256, HS384, HS512, RS256, RS384, RS512

    นั่นคือสาเหตุของข้อผิดพลาด

    ในตัวอย่างนโยบาย "ยืนยัน JWT" ที่แสดงด้านบน ชื่อ <Algorithm> ระบุเป็น HS128 คุณได้รับข้อผิดพลาดต่อไปนี้เนื่องจากอัลกอริทึมนี้ไม่รองรับ

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

ความละเอียด

ตรวจสอบว่าค่าที่ระบุในองค์ประกอบ <Algorithm> เป็นค่าที่รองรับค่าใดค่าหนึ่ง

HS256, HS384, HS512, RS256, RS384, RS512

หากต้องการแก้ไขตัวอย่างนโยบาย "ยืนยัน JWT" ที่แสดงด้านบน ซึ่งใช้องค์ประกอบ <SecretKey> ให้เปลี่ยนค่าของ <Algorithm> เป็น HS25 โปรดทราบว่าเมื่อใช้องค์ประกอบ <SecretKey> คุณจะใช้ได้เฉพาะอัลกอริทึมของ HS Family เท่านั้น

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

MissingConfigurationElement

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นเมื่อไม่ได้ใช้องค์ประกอบ <PublicKey> กับอัลกอริทึม Family ของ RSA ในนโยบาย Verify JWT ในทํานองเดียวกัน ข้อผิดพลาดอาจเกิดขึ้นหากไม่ได้ใช้องค์ประกอบ <SecretKey> กับอัลกอริทึม HS Family ในนโยบาย Verify JWT

ตัวอย่างเช่น การไม่ใช้องค์ประกอบ <PublicKey> กับอัลกอริทึมของ RSA Family จะทำให้เกิดข้อผิดพลาดนี้

การวินิจฉัย

  1. ระบุชื่อนโยบาย Verify JWT และชื่อองค์ประกอบที่หายไปจากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อความแสดงข้อผิดพลาดต่อไปนี้ ชื่อของนโยบาย Verify JWT คือ JWT-Verify-RS256 และชื่อองค์ประกอบที่ขาดหายไปคือ PublicKey

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. ตรวจสอบ XML ของนโยบาย JWT ที่ล้มเหลว และตรวจสอบว่าองค์ประกอบที่ระบุไว้ในข้อความแสดงข้อผิดพลาดหายไป หากไม่มี ข้อผิดพลาดดังกล่าวคือสาเหตุของข้อผิดพลาด

    ตัวอย่างเช่น นโยบายต่อไปนี้แสดงให้เห็นว่าไม่มี PublicKey และ Algorithm ที่ใช้คือ RS256

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

    ตัวอย่างนโยบาย "ยืนยัน JWT" ใช้อัลกอริทึม HS Family แต่ไม่มีองค์ประกอบ PublicKey ที่จำเป็น ซึ่งทำให้เกิดข้อผิดพลาด ดังนี้

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

ความละเอียด

ตรวจสอบว่าใช้องค์ประกอบ <PublicKey> ที่จำเป็นกับอัลกอริทึม RSA Family และใช้องค์ประกอบ <SecretKey> ที่จำเป็นกับอัลกอริทึม HS Family

หากต้องการแก้ไขตัวอย่างนโยบาย 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากไม่ได้กำหนดองค์ประกอบย่อย <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> ของนโยบาย Verify 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 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากไม่มีการระบุแอตทริบิวต์ 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 ของนโยบาย 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> เสมอ

หากต้องการแก้ไขตัวอย่าง "ยืนยันนโยบาย 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 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากมีการกำหนดองค์ประกอบ <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 ของนโยบาย 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

ในการแก้ไขตัวอย่าง "ยืนยันนโยบาย 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 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากองค์ประกอบ <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 ของนโยบาย JWT ที่ล้มเหลว และยืนยันว่าองค์ประกอบที่ระบุในขั้นตอนที่ 1 ว่างเปล่า หากแคมเปญว่างเปล่า แสดงว่านี่คือสาเหตุของข้อผิดพลาด

    ตัวอย่างเช่น นโยบายต่อไปนี้แสดงให้เห็นว่าองค์ประกอบ <Source> ว่างเปล่า

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

    คุณจะได้รับข้อผิดพลาดเนื่องจากองค์ประกอบ <Source> ของนโยบาย "ยืนยัน JWT" ว่างเปล่า

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

ความละเอียด

หากมีองค์ประกอบ <Source> ของนโยบาย Verify 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 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากค่าที่ใช้ในองค์ประกอบย่อย <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 นโยบาย "ยืนยัน JWT" ที่ล้มเหลว และยืนยันว่าองค์ประกอบที่ระบุในขั้นตอนที่ 1 มีค่าในรูปแบบที่ถูกต้องตาม RFC 7517 หากค่าขององค์ประกอบไม่ได้อยู่ในรูปแบบที่ถูกต้อง แสดงว่าเป็นสาเหตุของข้อผิดพลาด

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
            <JWKS>abc<JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>
    

    เนื่องจากค่าในองค์ประกอบย่อย <JWKS> ขององค์ประกอบ <PublicKey> ไม่ได้อยู่ในรูปแบบที่ถูกต้องตาม RFC 7517 คุณจึงได้รับข้อผิดพลาด

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    

ความละเอียด

ตรวจสอบว่าค่าที่ระบุในองค์ประกอบย่อย <JWKS> ขององค์ประกอบ <PublicKey> เป็นสตริงหรือตัวแปรโฟลว์ที่ถูกต้องในรูปแบบ JWKS ที่ถูกต้อง (RFC 7517)

หากต้องการแก้ไขตัวอย่าง "ยืนยันนโยบาย JWT" ให้เปลี่ยนค่าของ <JWKS> ดังที่แสดงด้านล่าง

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
        <JWKS>eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM</JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>

InvalidConfigurationForActionAndAlgorithm

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี 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 UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากใช้องค์ประกอบ <PublicKey> กับอัลกอริทึมของ HS Family และใช้องค์ประกอบ <SecretKey> กับอัลกอริทึม Family ของ 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. ตรวจสอบว่าองค์ประกอบและกลุ่มอัลกอริทึมที่ใช้ใน XML นโยบาย JWT ยืนยันที่ล้มเหลวตรงกับองค์ประกอบและกลุ่มอัลกอริทึมที่ระบุไว้ในข้อความแสดงข้อผิดพลาดในขั้นตอนที่ 1 ตัวอย่างเช่น นโยบายต่อไปนี้ระบุองค์ประกอบเป็น PublicKey และกลุ่มอัลกอริทึมเป็น HMAC ซึ่งตรงกับข้อความแสดงข้อผิดพลาด

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <PublicKey>
            <Value ref="var-value"/>
        </PublicKey>
        <SecretKey>
            <Value ref="private.secretkey"/>
        </SecretKey>
            <ExpiresIn>1h</ExpiresIn>
            <Subject>monty-pythons-flying-circus</Subject>
            <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
        </VerifyJWT>
    
  3. หากค่าขององค์ประกอบ <Algorithm> คือ HS256 แต่คุณใช้ <PublicKey> นั่นก็คือสาเหตุของข้อผิดพลาด

    ในตัวอย่างนโยบาย "ยืนยัน JWT" ที่แสดงด้านบน มีการใช้องค์ประกอบ <PublicKey> แม้ว่า <Algorithm> จะตั้งค่าไว้เป็นอัลกอริทึมของครอบครัว HS256 ซึ่งทำให้เกิดข้อผิดพลาด ดังนี้

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

ความละเอียด

ตรวจสอบว่าองค์ประกอบ <PublicKey> ใช้กับอัลกอริทึม RSA Family เท่านั้น และใช้องค์ประกอบ <SecretKey> กับอัลกอริทึม HS Family เท่านั้น

หากต้องการแก้ไขตัวอย่างนโยบาย "ยืนยัน JWT" ให้ใช้ <SecretKey> จากนโยบาย 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>