אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
InvalidNameForAdditionalClaim
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision revision_number Invalid name for additional claim : policy(policy_name) claim(claim_name).
הודעת שגיאה לדוגמה
Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם השם של התביעה שמשמשת ברכיב הצאצא <Claim> של הרכיב <AdditionalClaims> הוא אחד מהשמות הרשומים הבאים:
kid, iss, sub, aud, iat, exp, nbf, jti
המאפיינים הרשומים מפורטים ב-RFC7519.
לדוגמה, שימוש בשם ההצהרה iss ברכיב <AdditionalClaims> יגרום לשגיאה הזו.
אבחון
מזהים את השם של מדיניות האימות של JWT ואת שם הטענה מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256ושם הטענה הואiss:Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).מוודאים ששם הטענה שמשמש ברכיב
<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>אם שם התלונה שמשמש ברכיב המשני
<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>.
כדי לתקן את הבעיה בדוגמה למדיניות Verify 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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision revision_number Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).
הודעת שגיאה לדוגמה
Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
הסוג של הטענה שמשמש ברכיב המשני <Claim> של הרכיב <AdditionalClaims> במדיניות VerifyJWT הוא לא אחד מהסוגים הבאים:
string (ברירת מחדל), number, boolean או map
לדוגמה, שימוש בסוג הטענה integer מתחת לרכיב <AdditionalClaims> יגרום לשגיאה.
אבחון
מזהים את השם של מדיניות אימות ה-JWT, את שם הטענה ואת הסוג מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256, שם הטענה הואclaimוהסוג הואinteger:Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).מוודאים ששם התביעה והסוג שמשמשים ברכיב
<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>אם סוג התלונה שמשמש ברכיב המשני
<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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision revision_number Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.
הודעת שגיאה לדוגמה
Error Saving Revision 2
Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם שם הטענה לא מצוין ברכיב הצאצא <Claim> של הרכיב <AdditionalClaims> או <AdditionalHeaders>.
אבחון
מזהים את השם של מדיניות האימות של JWT מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256:Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claimבודקים את קובץ ה-XML של מדיניות האימות של JWT שנכשל, ומוודאים ששם הטענה חסר ברכיב הצאצא
<Claims>מתחת לרכיב<AdditionalClaims>או<AdditionalHeaders>. לדוגמה, במדיניות הבאה של אימות JWT לא מצוין שם הטענה ברכיב<AdditionalClaims>:<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim ref='reqclaim' type='boolean'/> </AdditionalClaims> </VerifyJWT>מכיוון שהשם
<Claim>לא מצוין ברכיב<AdditionalClaims>, מוצגת השגיאה:Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
רזולוציה
חשוב לוודא ששם התביעה תמיד מצוין ברכיב הצאצא <Claim> של הרכיב <AdditionalClaims> או <AdditionalHeaders>.
כדי לתקן את הדוגמה למדיניות Verify JWT, צריך לציין את שם ההצהרה כמו שמוצג בהמשך:
<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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision revision_number Invalid name for additional header : policy(policy_name)header(header_name).
הודעת שגיאה לדוגמה
Error Saving Revision 2
Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם השם של ההצהרה שמשמשת ברכיב המשני <Claim> של הרכיב <AdditionalHeaders> הוא אחת מהכותרות הסטנדרטיות הבאות של JWT:
alg או typ
לדוגמה, שימוש בשם התלונה alg מתחת לרכיב <AdditionalHeaders> יגרום לשגיאה.
אבחון
מזהים את השם של מדיניות האימות של JWT ואת שם הכותרת מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256ושם הכותרת הואalg:Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).מוודאים ששם הכותרת שמשמש ברכיב הצאצא
<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>אם שם הכותרת שמשמש ברכיב המשני
<Claim>של הרכיב<AdditionalClaims>הוא אחת מכותרות ה-JWT הסטנדרטיות הבאות:algאוtypאז זה הגורם לשגיאה.
בדוגמה של מדיניות אימות JWT שמוצגת למעלה, השם
<Claim>מצוין כ-algברכיב<AdditionalClaims>, ולכן מתקבלת השגיאה:Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
רזולוציה
אל תשתמשו בכותרות JWT רגילות alg או typ ברכיב המשני <Claim> של הרכיב <AdditionalHeaders>.
כדי לתקן את המדיניות לדוגמה Verify JWT, משתמשים בשם 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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision revision_number Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).
הודעת שגיאה לדוגמה
Error Saving Revision 2
Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim1) type(integer).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה תתרחש אם סוג הטענה שמשמש ברכיב הצאצא <Claim> של הרכיב <AdditionalHeaders> במדיניות Verify JWT הוא לא אחד מהסוגים הבאים:
string (ברירת מחדל), number, boolean או map
לדוגמה, שימוש בסוג הטענה integer מתחת לרכיב <AdditionalHeaders> יגרום לשגיאה.
אבחון
מזהים את השם של מדיניות האימות של JWT, את שם הטענה ואת הסוג מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256, שם הטענה הואclaimוהסוג הואinteger:Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).מוודאים ששם התביעה והסוג שמשמשים ברכיב
<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>אם סוג התלונה שמשמש ברכיב המשני
<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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision revision_number Invalid value for array attribute: policy(policy_name)claim(claim_name).
הודעת שגיאה לדוגמה
Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם הערך של מאפיין המערך ברכיב הצאצא <Claim> של הרכיב <AdditionalClaims> או <AdditionalHeaders> לא מוגדר כ-true או כ-false.
לדוגמה, הגדרת הערך של מאפיין המערך כ-yes ברכיב הצאצא <Claim> של הרכיב <AdditionalClaims> או <AdditionalHeaders> גורמת לשגיאה.
אבחון
מזהים את השם של מדיניות האימות של JWT ואת שם הטענה מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256ושם התביעה הואclaim:Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).מוודאים ששם הטענה שמשמש ברכיב הצאצא
<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>אם הערך של מאפיין
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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision Invalid Value for element : policy(policy_name) element(element_name).
הודעת שגיאה לדוגמה
Error Saving Revision
Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם הערך שצוין ברכיב <Algorithm> הוא לא אחד מהערכים הבאים:
HS256, HS384, HS512, RS256, RS384, RS512
לדוגמה, אם מציינים את ערך האלגוריתם כ-RS128 ברכיב <Algorithm>, תופיע השגיאה הזו.
אבחון
מזהים את השם של מדיניות Verify JWT ואת שם הרכיב מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256ושם הרכיב הואAlgorithm:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).בודקים את ה-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>בודקים את הערך שצוין ברכיב
<Algorithm>. אם הוא לא אחד מהערכים הבאים:HS256,HS384,HS512,RS256,RS384,RS512אז זה הגורם לשגיאה.
בדוגמה של מדיניות אימות JWT שמוצגת למעלה, השם
<Algorithm>מוגדר כ-HS128. מכיוון שזהו לא אלגוריתם נתמך, מופיעה השגיאה:Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
רזולוציה
צריך לוודא שהערך שצוין ברכיב <Algorithm> הוא אחד מהערכים הנתמכים:
HS256, HS384, HS512, RS256, RS384, RS512
כדי לתקן את הדוגמה למדיניות Verify JWT שמוצגת למעלה, שמשתמשת ברכיב <SecretKey>, צריך לשנות את הערך של <Algorithm> ל-HS25. הערה: כשמשתמשים ברכיב <SecretKey>, אפשר להשתמש רק באלגוריתמים של HS 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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision Missing configuration element : policy(policy_name) element(element_name).
הודעת שגיאה לדוגמה
Error Saving Revision
Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת כשלא משתמשים ברכיב <PublicKey> עם אלגוריתמים של RSA Family במדיניות Verify JWT. באופן דומה, השגיאה יכולה להתרחש אם לא נעשה שימוש ברכיב <SecretKey> עם אלגוריתמים של HS Family במדיניות Verify JWT.
לדוגמה, אם לא משתמשים ברכיב <PublicKey> עם אלגוריתמים של RSA Family, השגיאה הזו תופיע.
אבחון
מזהים את השם של מדיניות Verify JWT ואת השם של הרכיב החסר מתוך הודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256והשם של הרכיב החסר הואPublicKey:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).בודקים את קובץ ה-XML של המדיניות Verify JWT שנכשל ומוודאים שהרכיב שמצוין בהודעת השגיאה חסר. אם הוא חסר, זה הגורם לשגיאה.
לדוגמה, במדיניות הבאה חסר
PublicKeyוהערך שלAlgorithmהואRS256:<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </VerifyJWT>במדיניות לדוגמה Verify JWT נעשה שימוש באלגוריתמים של HS Family, אבל חסר הרכיב הנדרש
PublicKey, ולכן מתקבלת השגיאה:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
רזולוציה
חשוב לוודא שנעשה שימוש ברכיב <PublicKey> שהוא חובה עם אלגוריתמים של RSA Family, וברכיב <SecretKey> שהוא חובה עם אלגוריתמים של HS Family.
כדי לתקן את מדיניות האימות של 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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving RevisionInvalid Key configuration : policy(policy_name).
הודעת שגיאה לדוגמה
Error Saving Revision 2
Invalid Key configuration : policy(JWT-Verify-RS256).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם רכיב הבן <Value> או רכיב הבן הנדרש <JWKS> לא מוגדרים ברכיבים <PublicKey> או <SecretKey> של מדיניות אימות JWT.
אבחון
מזהים את השם של מדיניות האימות של JWT מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256:Invalid Key configuration : policy(JWT-Verify-RS256).בודקים את ה-XML של מדיניות Verify 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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision revision_number Empty Element for Key Configuration : policy(policy_name) element(element_name).
הודעת שגיאה לדוגמה
Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם מאפיין ה-ref ברכיב הצאצא <Value> או <JWKS> של הרכיב <PublicKey> לא צוין או ריק.
לדוגמה, אם רכיב הצאצא <Value> של הרכיב <PublicKey> ריק, השגיאה מתרחשת.
אבחון
מזהים את השם של מדיניות Verify JWT ואת שם הרכיב שריק מתוך הודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256ושם הרכיב הואPublicKey/Value:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).בודקים את קובץ ה-XML של המדיניות Verify JWT שנכשל, ומוודאים שהרכיב שזוהה בשלב 1 ריק. אם הוא ריק, זו הסיבה לשגיאה.
לדוגמה, במדיניות הבאה אפשר לראות שהרכיב הצאצא
<Value>של הרכיב<PublicKey>ריק:<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <ExpiresIn>1h</ExpiresIn> <PublicKey> <Value/> </PublicKey> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </VerifyJWT>כי רכיב הצאצא
<Value>של רכיב<PublicKey>במדיניות Verify JWT ריק, ולכן מוצגת השגיאה:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
רזולוציה
חשוב לוודא שמאפיין ההפניה [ref] ברכיב הצאצא <Value> או <JWKS> של הרכיב <PublicKey> תמיד מצוין.
כדי לתקן את המדיניות לדוגמה Verify JWT, משתמשים במשתנה של תהליך העבודה 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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision revision_number Invalid configuration element for verify : policy(policy_name) element(element_name).
הודעת שגיאה לדוגמה
Error Saving Revision 3
Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם הרכיב <Id> מוגדר בתוך הרכיב <SecretKey> של מדיניות VerifyJWT.
לדוגמה, אם הרכיב <Id> מוגדר ברכיב <SecretKey>, השגיאה הזו תופיע.
אבחון
מזהים את השם של מדיניות Verify JWT ואת השם של הרכיב הלא תקין מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות האימות של JWT הוא
JWT-Verify-RS256ושם הרכיב הואSecretKey/Id:Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)בודקים את קובץ ה-XML של המדיניות Verify JWT שנכשל, ומוודאים שהרכיב הלא תקין שזוהה בשלב 1 מוגדר. אם הוא מוגדר, זו הסיבה לשגיאה.
לדוגמה, במדיניות הבאה אפשר לראות שהוגדר רכיב הצאצא
<Id>של הרכיב<SecretKey>:<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <ExpiresIn>1h</ExpiresIn> <SecretKey> <Value ref="private.secretkey"/> <Id/> </SecretKey> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </VerifyJWT>האלמנט
<Id>מוגדר בתוך האלמנט<SecretKey>של מדיניות האימות של 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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving RevisionInvalid empty element : policy(policy_name) element(element_name).
הודעת שגיאה לדוגמה
Error Saving Revision 3
Invalid empty element : policy(JWT-Verify-HS256) element(Source).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם הרכיב <Source> של מדיניות האימות של JWT ריק. אם הוא קיים, צריך להגדיר אותו עם שם משתנה זרימה של Edge.
אבחון
מזהים את השם של מדיניות האימות של JWT ואת שם הרכיב הריק מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות האימות של JWT הוא
JWT-Verify-RS256ושם הרכיב הואPublicKey/Value:Invalid empty element : policy(JWT-Verify-HS256) element(Source).בודקים את קובץ ה-XML של המדיניות Verify JWT שנכשל, ומוודאים שהרכיב שזוהה בשלב 1 ריק. אם הוא ריק, זו הסיבה לשגיאה.
לדוגמה, במדיניות הבאה אפשר לראות שהרכיב
<Source>ריק:<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <ExpiresIn>1h</ExpiresIn> <Source></Source> <PublicKey> <Value ref="public.publickey"/> </PublicKey> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </VerifyJWT>מכיוון שהרכיב
<Source>של המדיניות Verify JWT ריק, מתקבלת השגיאה:Invalid empty element : policy(JWT-Verify-HS256) element(Source).
רזולוציה
אם קיים רכיב <Source> של מדיניות Verify JWT, צריך לוודא שהוא מציין משתנה זרימה.
כדי לתקן את המדיניות לדוגמה Verify JWT, צריך להשתמש במשתנה תקין של זרימת נתונים ברכיב <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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision revision_number Invalid Public Key Value in Configuration : policy(policy_name) element(element_name).
הודעת שגיאה לדוגמה
Error Saving Revision 2
Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם הערך שמשמש ברכיב הצאצא <JWKS> של הרכיב <PublicKey> לא נמצא בפורמט תקין כפי שמצוין ב-RFC 7517.
לדוגמה, שימוש ב-abc כערך של רכיב הצאצא <JWKS> מתחת לרכיב <PublicKey> יוביל לשגיאה הזו.
אבחון
מזהים את השם של מדיניות Verify JWT ואת שם הרכיב שמכיל ערך לא תקין מתוך הודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256והרכיב הואPublicKey/JWKS:Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).בודקים את קובץ ה-XML של מדיניות אימות ה-JWT שנכשל, ומוודאים שהאלמנט שזוהה בשלב 1 מכיל ערך בפורמט תקין בהתאם ל-RFC 7517. אם הערך של הרכיב לא בפורמט תקין, זו הסיבה לשגיאה.
<VerifyJWT name="JWT-Verify-RS256"> <DisplayName>JWT Verify RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <PublicKey> <JWKS>abc<JWKS> </PublicKey> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> </VerifyJWT>הערך באלמנט הצאצא
<JWKS>של האלמנט<PublicKey>לא בפורמט תקין לפי RFC 7517, ולכן מוצגת השגיאה:Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
רזולוציה
מוודאים שהערך שצוין ברכיב הצאצא <JWKS> של הרכיב <PublicKey> הוא מחרוזת או משתנה זרימה תקינים בפורמט JWKS תקין (RFC 7517).
כדי לתקן את הדוגמה למדיניות Verify JWT, משנים את הערך של <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
הודעת שגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשלת עם הודעת השגיאה הבאה:
Error Saving Revision <var>revision_number</var>
Invalid configuration element for this action and algorithm Family: policy(<var>policy_name</var>) element(<var>element_name</var>) action(<var>action_name</var>) family(<var>family_name</var>).
הודעת שגיאה לדוגמה
Error Saving Revision
Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
צילום מסך לדוגמה
בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה
השגיאה הזו מתרחשת אם נעשה שימוש באלמנט <PublicKey> עם אלגוריתמים של HS Family, ונעשה שימוש באלמנט <SecretKey> עם אלגוריתמים של RSA Family. השגיאה תופיע גם אם אחד מהתנאים האלה מתקיים.
לדוגמה, שימוש ברכיב <PublicKey> עם אלגוריתמים של HS Family מוביל לשגיאה הזו.
אבחון
מזהים את השם של מדיניות אימות ה-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).מוודאים שהרכיב ומשפחת האלגוריתמים שבהם נעשה שימוש ב-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>אם הערך של רכיב
<Algorithm>הואHS256, אבל השתמשתם ב-<PublicKey>, זו הסיבה לשגיאה.בדוגמה של מדיניות אימות JWT שמוצגת למעלה, נעשה שימוש ברכיב
<PublicKey>למרות שהרכיב<Algorithm>מוגדר לאלגוריתם HS256, וכתוצאה מכך מופיעה השגיאה:Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
רזולוציה
מוודאים שהרכיב <PublicKey> משמש רק עם אלגוריתמים של מודעות רספונסיביות לרשת החיפוש (RSA) בקטגוריה 'למשפחות', והרכיב <SecretKey> משמש רק עם אלגוריתמים של מודעות רספונסיביות לרשת החיפוש (RSA) בקטגוריה 'למשפחות'.
כדי לתקן את המדיניות לדוגמה Verify JWT, משתמשים ב-<SecretKey> מהמדיניות VerifyJWT שמשתמשת באלגוריתם HS256:
<VerifyJWT name="JWT-Verify-HS256">
<DisplayName>JWT Verify HS256</DisplayName>
<Algorithm>HS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Source>request.formparam.jwt</Source>
<SecretKey>
<Value ref="private.secretkey"/>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
</VerifyJWT>