การแก้ปัญหาข้อผิดพลาดในการทำให้นโยบาย 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> เป็นชื่อที่ลงทะเบียนดังต่อไปนี้

"เด็ก", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"

การอ้างสิทธิ์ที่ลงทะเบียนไว้จะระบุอยู่ใน RFC7519

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

การวินิจฉัย

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

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. ตรวจสอบว่าชื่อการอ้างสิทธิ์ที่ใช้ภายใต้องค์ประกอบ <AdditionalClaims> ใน XML ของนโยบาย "ยืนยัน JWT" ที่ล้มเหลวตรงกับชื่อการอ้างสิทธิ์ที่ระบุในข้อความแสดงข้อผิดพลาดในขั้นตอนที่ 1 ตัวอย่างเช่น นโยบายต่อไปนี้ระบุการอ้างสิทธิ์เป็น iss ซึ่งตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด

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

    "เด็ก", "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> ของนโยบาย ConfirmJWT ไม่ใช่ประเภทใดประเภทหนึ่งต่อไปนี้

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>

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

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. ตรวจสอบ XML ของนโยบาย "ยืนยัน JWT" ที่ล้มเหลวและยืนยันว่าไม่มีชื่อการอ้างสิทธิ์ในองค์ประกอบย่อย <Claims> ภายใต้องค์ประกอบ <AdditionalClaims> หรือ <AdditionalHeaders> เช่น นโยบาย "ยืนยัน JWT" ต่อไปนี้ไม่ได้ระบุชื่อการอ้างสิทธิ์ในส่วนองค์ประกอบ <AdditionalClaims>

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

    เนื่องจากไม่ได้ระบุชื่อ <Claim> ในองค์ประกอบ <AdditionalClaims> คุณจึงได้รับข้อผิดพลาด:

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

ความละเอียด

ตรวจสอบว่าได้ระบุชื่อการอ้างสิทธิ์เสมอในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> หรือ <AdditionalHeaders>

หากต้องการแก้ไขตัวอย่างนโยบาย "ยืนยัน JWT" ให้ระบุชื่อการอ้างสิทธิ์ตามที่แสดงด้านล่าง

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

InvalidNameForAdditionalHeader

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

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

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. ยืนยันว่าชื่อส่วนหัวที่ใช้ในองค์ประกอบย่อย <Claim> ภายใต้องค์ประกอบ <AdditionalHeaders> ใน XML ของนโยบาย "ยืนยัน JWT" ที่ล้มเหลวตรงกับชื่อส่วนหัวที่ระบุในข้อความแสดงข้อผิดพลาดในขั้นตอนที่ 1 ตัวอย่างเช่น นโยบายต่อไปนี้ระบุส่วนหัวเป็น alg ซึ่งตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด

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

    alg หรือ typ

    ก็จะเป็นสาเหตุของข้อผิดพลาด

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

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

ความละเอียด

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

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

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

InvalidTypeForAdditionalHeader

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

การติดตั้งใช้งานพร็อกซี 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> ของนโยบายยืนยัน 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>

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

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. ตรวจสอบว่าชื่อการอ้างสิทธิ์ที่ใช้ในองค์ประกอบย่อย <Claim> ภายใต้องค์ประกอบ <AdditionalHeaders> ใน XML ของนโยบาย "ยืนยัน JWT" ที่ล้มเหลวตรงกับชื่อการอ้างสิทธิ์ที่ระบุในข้อความแสดงข้อผิดพลาดในขั้นตอนที่ 1 ตัวอย่างเช่น นโยบายต่อไปนี้ระบุชื่อการอ้างสิทธิ์เป็น claim ซึ่งตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด

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

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

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

ความละเอียด

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

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

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

InvalidValueForElement

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

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

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. ตรวจสอบ XML ของนโยบาย "ยืนยัน JWT" ที่ล้มเหลวและตรวจสอบค่าที่ระบุสำหรับองค์ประกอบ <Algorithm>

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

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

    HS256, HS384, HS512, RS256, RS384, RS512

    ก็จะเป็นสาเหตุของข้อผิดพลาด

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

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

ความละเอียด

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

HS256, HS384, HS512, RS256, RS384, RS512

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

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

การวินิจฉัย

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

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

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

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

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

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

ความละเอียด

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

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

<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> ของนโยบายยืนยัน JWT

การวินิจฉัย

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

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

    ตัวอย่างเช่น นโยบายต่อไปนี้แสดงให้เห็นว่าองค์ประกอบย่อย <Value> หรือ <JWKS> ไม่ได้กำหนดไว้ในองค์ประกอบ <PublicKey>

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

    เนื่องจากไม่ได้กำหนดองค์ประกอบย่อย <Value> หรือ <JWKS> ใน<PublicKey>องค์ประกอบของนโยบาย "ยืนยัน JWT" คุณจึงได้รับข้อผิดพลาดต่อไปนี้

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

ความละเอียด

ตรวจสอบว่ามีการกำหนดองค์ประกอบย่อย <Value> หรือ <JWKS> ในองค์ประกอบ <PublicKey> ของนโยบายยืนยัน JWT เสมอ

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

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

EmptyElementForKeyConfiguration

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

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

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากไม่ได้ระบุแอตทริบิวต์การอ้างอิงในองค์ประกอบย่อย <Value> หรือ <JWKS> ขององค์ประกอบ <PublicKey> หรือเว้นว่างไว้

ตัวอย่างเช่น หากองค์ประกอบย่อย <Value> ขององค์ประกอบ <PublicKey> ว่างเปล่า ระบบจะเกิดข้อผิดพลาด

การวินิจฉัย

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

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. ตรวจสอบ XML ของนโยบาย "ยืนยัน 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> ของนโยบายยืนยัน 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> ของนโยบาย ConfirmJWT

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

การวินิจฉัย

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

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. ตรวจสอบ XML ของนโยบาย "ยืนยัน JWT" ที่ล้มเหลว และยืนยันว่าได้กำหนดองค์ประกอบที่ไม่ถูกต้องที่ระบุไว้ในขั้นตอนที่ 1 แล้ว หากมีการกำหนดไว้ ข้อผิดพลาดก็เกิดจากสาเหตุนี้

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

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

    เนื่องจากมีการกำหนดองค์ประกอบ <Id> ภายในองค์ประกอบ <SecretKey> ของนโยบาย "ยืนยัน JWT" คุณจึงได้รับข้อผิดพลาด

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

ความละเอียด

ตรวจสอบว่าไม่ได้กำหนดองค์ประกอบ <Id> ภายในองค์ประกอบ <SecretKey> ของนโยบาย "ยืนยัน JWT"

หากต้องการแก้ไขตัวอย่างนโยบาย "ยืนยัน JWT" ให้นำองค์ประกอบย่อย <Id> ออกจากองค์ประกอบ <SecretKey> ดังนี้

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

InvalidEmptyElement

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

การติดตั้งใช้งานพร็อกซี 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> ของนโยบาย "ยืนยัน JWT" ว่างเปล่า หากมี จะต้องกำหนดด้วยชื่อตัวแปรโฟลว์ Edge

การวินิจฉัย

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

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. ตรวจสอบ XML ของนโยบาย "ยืนยัน JWT" ที่ล้มเหลวและยืนยันว่าองค์ประกอบที่ระบุในขั้นตอนที่ 1 มีค่าในรูปแบบที่ถูกต้องตาม RFC 7517 หากค่าขององค์ประกอบไม่อยู่ในรูปแบบที่ถูกต้อง นั่นเป็นสาเหตุของข้อผิดพลาด

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

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

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

ความละเอียด

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

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

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

InvalidConfigurationForActionAndAlgorithm

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

การติดตั้งใช้งานพร็อกซี 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> กับอัลกอริทึม RSA Family ข้อผิดพลาดจะเกิดขึ้นหากเงื่อนไขใดๆ เหล่านี้เป็นจริง

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

การวินิจฉัย

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

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. ตรวจสอบว่าองค์ประกอบและกลุ่มอัลกอริทึมที่ใช้ใน XML ของนโยบาย "ยืนยัน JWT" ที่ล้มเหลวตรงกับองค์ประกอบดังกล่าว และกลุ่มอัลกอริทึมที่ระบุในข้อความแสดงข้อผิดพลาดในขั้นตอนที่ 1 เช่น นโยบายต่อไปนี้ระบุองค์ประกอบเป็น PublicKey และกลุ่มอัลกอริทึมเป็น HMAC ซึ่งตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด

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

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

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

ความละเอียด

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

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