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

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

InvalidNameForAdditionalClaim

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
Invalid name for additional claim : policy(policy_name) claim(claim_name).

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

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

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

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

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

การวินิจฉัย

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

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    
  3. หากชื่อการอ้างสิทธิ์ที่ใช้ในองค์ประกอบย่อย<Claim>ขององค์ประกอบ<AdditionalClaims>เป็นชื่อที่จดทะเบียนดังต่อไปนี้

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

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

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

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    

ความละเอียด

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

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

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidTypeForAdditionalClaim

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
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-Generate-HS256) claim(claim) type(integer).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

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

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

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

การวินิจฉัย

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

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    
  3. หากประเภทการอ้างสิทธิ์ที่ใช้ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> ไม่ใช่ประเภทต่อไปนี้

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

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

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

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    

ความละเอียด

ตรวจสอบว่าใช้เฉพาะประเภทข้อมูลที่รองรับ เช่น string, number, boolean หรือ map ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims>

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

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

MissingNameForAdditionalClaim

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
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-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

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

การวินิจฉัย

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

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    

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

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

ความละเอียด

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

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

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidNameForAdditionalHeader

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
Invalid name for additional header : policy(policy_name)header(header_name).

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 2
Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

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

alg หรือ typ

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

การวินิจฉัย

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

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    
  3. หากชื่อส่วนหัวที่ใช้ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> เป็นหนึ่งในส่วนหัว JWT มาตรฐานต่อไปนี้

    alg หรือ typ

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

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

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    

ความละเอียด

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

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

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidTypeForAdditionalHeader

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
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-Generate-HS256) claim(claim1) type(integer).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

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

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

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

การวินิจฉัย

  1. ระบุชื่อนโยบาย Generate JWT ชื่อการอ้างสิทธิ์ และประเภทการอ้างสิทธิ์จากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อความแสดงข้อผิดพลาดต่อไปนี้ ชื่อของนโยบาย Generate JWT คือ JWT-Generate-HS256 ชื่อการอ้างสิทธิ์คือ claim, และประเภทการอ้างสิทธิ์คือ integer:

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    
  3. หากประเภทการอ้างสิทธิ์ที่ใช้ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalHeaders> ไม่ใช่ประเภทต่อไปนี้

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

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

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

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    

ความละเอียด

ตรวจสอบว่าใช้เฉพาะประเภทข้อมูลที่รองรับ string, number, boolean หรือ map ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalHeaders>

หากต้องการแก้ไขตัวอย่างนโยบาย สร้าง JWT ที่แสดงด้านบน ให้เปลี่ยนประเภทการอ้างสิทธิ์เป็น boolean ดังนี้

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidValueOfArrayAttribute

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
Invalid value for array attribute: policy(policy_name)claim(claim_name).

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

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

ตัวอย่างเช่น การตั้งค่าของแอตทริบิวต์อาร์เรย์เป็น yes ในองค์ประกอบย่อย <Claim> ของ <AdditionalClaims> หรือ <AdditionalHeaders> ทำให้เกิดข้อผิดพลาด

การวินิจฉัย

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

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    
  3. หากค่าของแอตทริบิวต์ array ในองค์ประกอบย่อย <Claim> ขององค์ประกอบ <AdditionalClaims> ไม่ได้ตั้งค่าเป็น true หรือ false ข้อผิดพลาดดังกล่าวอาจเป็นสาเหตุของข้อผิดพลาด

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

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    

ความละเอียด

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

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

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidConfigurationForActionAndAlgorithm

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
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 2
Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากใช้องค์ประกอบ <PrivateKey> กับอัลกอริทึมของ HS Family และใช้องค์ประกอบ <SecretKey> กับอัลกอริทึม Family ของ RSA ข้อผิดพลาดยังจะเกิดขึ้นหากเงื่อนไขใดๆ เป็นจริง

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

การวินิจฉัย

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

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PrivateKey>
            <Password ref="private.privatekey-password"/>
    
        </PrivateKey>
            <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=tuu
        =/>
            </AdditionalClaims>
        </GenerateJWT>
    
  3. หากค่าขององค์ประกอบ <Algorithm> คือ HS256 แต่คุณใช้ <PrivateKey> นั่นก็คือสาเหตุของข้อผิดพลาด

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

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    

ความละเอียด

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

หากต้องการแก้ไขตัวอย่างนโยบาย Generate JWT ที่แสดงด้านบน ให้ใช้ <SecretKey> จากนโยบาย GenerateJWT ที่ใช้อัลกอริทึม HS256

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidValueForElement

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
Invalid Value for element : policy(policy_name) element(element_name).

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 2
Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากค่าที่ระบุในองค์ประกอบ <Algorithm> ไม่ใช่ค่าใดค่าหนึ่งต่อไปนี้

HS256, HS384, HS512, RS256, RS384, RS512

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

การวินิจฉัย

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

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

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS128</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>
    </GenerateJWT>
    
  3. ตรวจสอบค่าที่ระบุในองค์ประกอบ <Algorithm> หากไม่ใช่ค่าใดค่าหนึ่งต่อไปนี้

    HS256, HS384, HS512, RS256, RS384, RS512

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

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

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    

ความละเอียด

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

HS256, HS384, HS512, RS256, RS384, RS512

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

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

MissingConfigurationElement

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
Missing configuration element : policy(policy_name) element(element_name).

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 2
Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

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

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

การวินิจฉัย

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

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

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</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>
    </GenerateJWT>
    

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

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    

ความละเอียด

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

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

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidKeyConfiguration

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 
Invalid Key configuration : policy(policy_name).

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 3
Invalid Key configuration : policy(JWT-Generate-HS256).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากไม่ได้กำหนดองค์ประกอบย่อย <Value> ที่จำเป็นในองค์ประกอบ <PrivateKey> หรือ <SecretKey> ในนโยบาย Generate JWT

การวินิจฉัย

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

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

    เช่น ในนโยบายต่อไปนี้ องค์ประกอบย่อย <Value> จะไม่ได้รับการกำหนดในองค์ประกอบ <SecretKey>

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
        </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>
    </GenerateJWT>
    

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

    Invalid Key configuration : policy(JWT-Generate-HS256).
    

ความละเอียด

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

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

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

EmptyElementForKeyConfiguration

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
Empty Element for Key Configuration : policy(policy_name) element(element_name).

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

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

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

การวินิจฉัย

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

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. ตรวจสอบ XML ของนโยบาย Generate JWT ที่ล้มเหลวและตรวจสอบว่าองค์ประกอบที่ระบุในขั้นตอนที่ 1 ว่างเปล่าหรือไม่ หากแคมเปญว่างเปล่า แสดงว่านี่คือสาเหตุของข้อผิดพลาด

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value/>
            <Id>1918290</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>
    </GenerateJWT>
    

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

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

ความละเอียด

ตรวจสอบว่าแอตทริบิวต์ ref ในองค์ประกอบย่อย <Value> ขององค์ประกอบ <PrivateKey> หรือ <SecretKey> ได้รับการระบุเสมอและมีคำนำหน้า "private."

หากต้องการแก้ไขตัวอย่างนโยบาย Generate JWT ที่แสดงด้านบน ให้ใช้ตัวแปรโฟลว์ private.privatekey ในองค์ประกอบย่อย <Value> ขององค์ประกอบ <SecretKey>

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidVariableNameForSecret

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
Invalid variable name for secret : policy(policy_name) element(element_name).

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 2
Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากชื่อตัวแปรโฟลว์ที่ระบุในแอตทริบิวต์ ref ในองค์ประกอบย่อย <Value> ขององค์ประกอบ <PrivateKey> หรือ <SecretKey> ไม่มีคำนำหน้าส่วนตัว (private.)

For example :

หากระบุชื่อตัวแปรโฟลว์เป็น mykey ในแอตทริบิวต์ ref ขององค์ประกอบย่อย <Value> ขององค์ประกอบ <PrivateKey> ระบบจะแสดงข้อผิดพลาดนี้

การวินิจฉัย

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

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. ตรวจสอบ XML นโยบาย Generate JWT ที่ล้มเหลวและยืนยันชื่อตัวแปรที่ใช้ในองค์ประกอบที่ระบุในขั้นตอนที่ 1 หากชื่อตัวแปรไม่มีคํานําหน้า private. แสดงว่านี่เป็นสาเหตุของข้อผิดพลาด

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="mykey"/>
            <Id>1918290</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>
    </GenerateJWT>
    

    เนื่องจากชื่อตัวแปรที่ระบุในองค์ประกอบย่อย <Value> ขององค์ประกอบ <SecretKey> ของนโยบาย Generate JWT ไม่มีคำนำหน้า private. คุณจึงได้รับข้อผิดพลาด

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

ความละเอียด

ตรวจสอบว่าแอตทริบิวต์ ref ในองค์ประกอบย่อย <Value> ขององค์ประกอบ <PrivateKey> หรือ <SecretKey> ได้รับการระบุเสมอและมีคำนำหน้า private.

หากต้องการแก้ไขตัวอย่างนโยบาย Generate JWT ที่แสดงด้านบน ให้ใช้ตัวแปรโฟลว์ private.privatekey ในองค์ประกอบย่อย <Value> ขององค์ประกอบ <SecretKey> ดังนี้

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</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>
</GenerateJWT>

InvalidSecretInConfig

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(policy_name) element(element_name).

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากมีการระบุค่า (ลับ) อย่างชัดเจนใน

  • องค์ประกอบย่อย <Value> หรือ <Password> ขององค์ประกอบ <PrivateKey> หรือ
  • องค์ประกอบย่อย <Value> ขององค์ประกอบ <SecretKey>

ในนโยบาย Generate JWT

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

การวินิจฉัย

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

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. ตรวจสอบ XML ของนโยบาย Generate JWT ที่ล้มเหลวและตรวจสอบว่าได้ระบุข้อมูลลับไว้อย่างชัดแจ้งในองค์ประกอบที่ระบุไว้ในขั้นตอนที่ 1 หรือไม่ หากมีการระบุอย่างชัดแจ้ง นั่นก็คือสาเหตุของข้อผิดพลาด

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value>abc</Value>
            <Id>1918290</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>
    </GenerateJWT>
    

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

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

ความละเอียด

ตรวจสอบว่าระบุค่าเป็นตัวแปรโฟลว์ในองค์ประกอบย่อย <Value> ขององค์ประกอบ <PrivateKey> หรือ <SecretKey> เสมอ

หากต้องการแก้ไขตัวอย่างนโยบาย Generate JWT ที่แสดงด้านบน ให้ใช้ตัวแปรโฟลว์ private.secretkey ในแอตทริบิวต์อ้างอิงขององค์ประกอบย่อย <Value> ของ <SecretKey> ดังนี้

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <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>
</GenerateJWT>

InvalidTimeFormat

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision 2
Invalid Time format: policy(policy_name) element(element_name).

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 3
Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).

ตัวอย่างภาพหน้าจอ

ใน Edge UI คุณจะเห็นกล่องโต้ตอบที่มีข้อผิดพลาด:

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากค่าที่ระบุในองค์ประกอบ <NotBefore> ไม่ได้อยู่ในรูปแบบใดรูปแบบหนึ่งที่รองรับ

sortable, RFC 1123, RFC 850, ANCI-C

ตัวอย่างเช่น หากค่าที่ระบุใน <NotBefore> คือ 20-JUN-1990 08:03 ซึ่งไม่ใช่รูปแบบที่รองรับ ระบบจะแสดงข้อผิดพลาดนี้

<NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>

การวินิจฉัย

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

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. ตรวจสอบ XML ของนโยบาย Generate JWT ที่ล้มเหลวและยืนยันรูปแบบเวลาที่ใช้ในองค์ประกอบที่ระบุในขั้นตอนที่ 1 หากองค์ประกอบไม่ได้ใช้รูปแบบที่รองรับ ให้ทำดังนี้

    sortable, RFC 1123, RFC 850, ANCI-C

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

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

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</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>
    </GenerateJWT>
    

    คุณได้รับข้อผิดพลาดต่อไปนี้เนื่องจากองค์ประกอบ <NotBefore> ของนโยบาย Generate JWT ไม่ได้ใช้รูปแบบเวลาที่รองรับ

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

ความละเอียด

ตรวจสอบว่าค่าที่ระบุในองค์ประกอบ <NotBefore> ใช้รูปแบบที่รองรับรูปแบบใดรูปแบบหนึ่ง

sortable, RFC 1123, RFC 850, ANCI-C

หากต้องการแก้ไขตัวอย่างนโยบาย "สร้าง JWT" ให้แก้ไขวันที่ในองค์ประกอบ <NotBefore> ให้ใช้รูปแบบ sortable ดังที่แสดงด้านล่าง

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <NotBefore>2018-08-14T11:00:21-07:00</NotBefore>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <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>
</GenerateJWT>