כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
InvalidNameForAdditionalClaim
הודעת השגיאה
כשפורסים את ה-API של ה-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>
.
כדי לתקן את הבעיה במדיניות לדוגמה של אימות 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 של ה-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>
במדיניות verificationJWT אינו אחד מהסוגים הבאים:
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
הודעת השגיאה
כשפורסים את ה-API של ה-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>
.
כדי לתקן את הדוגמה של מדיניות 'אימות 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 של ה-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>
.
כדי לתקן את הדוגמה של אימות מדיניות 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 של ה-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>
של המדיניות לאימות 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' של הרכיב
<AdditionalHeaders>
, הסוג<Claim>
מוגדר בתור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 של ה-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
הודעת השגיאה
כשפורסים את ה-API של ה-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>
, התוצאה תהיה שגיאה.
אבחון
מזהים את השם של מדיניות ה-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
כדי לתקן את הדוגמה של מדיניות אימות JWT שמוצגת למעלה, שמשתמשת ברכיב <SecretKey>
, צריך לשנות את הערך של <Algorithm>
ל-HS25
. הערה: כאשר נעשה שימוש ברכיב <SecretKey>
, ניתן להשתמש רק באלגוריתמים של משפחת HS.
<VerifyJWT name="JWT-Verify-RS256">
<DisplayName>JWT Verify RS256</DisplayName>
<Algorithm>RS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<SecretKey>
<Value ref="private.secretkey"/>
<Id>1918290</Id>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalClaims>
<Claim name='status' type='string'>Development</Claim>
</AdditionalClaims>
</VerifyJWT>
MissingConfigurationElement
הודעת השגיאה
כשפורסים את ה-API של ה-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 במדיניות 'אימות JWT'. אותה שגיאה יכולה להתרחש אם הרכיב <SecretKey>
לא נמצא בשימוש עם אלגוריתמים של 'משפחת HS' במדיניות 'אימות JWT'.
לדוגמה, אם לא משתמשים ברכיב <PublicKey>
עם האלגוריתמים של משפחת RSA, התוצאה הזו עלולה להיות שגיאה.
אבחון
יש לזהות בהודעת השגיאה את השם של מדיניות אימות ה-JWT ואת שם הרכיב החסר. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256
ושם הרכיב החסר הואPublicKey
:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
יש לבדוק את ה-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, אבל רכיב החובה
PublicKey
חסר, ולכן השגיאה:Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
רזולוציה
יש לוודא שנעשה שימוש באלמנט <PublicKey>
הנדרש עם האלגוריתמים של משפחת RSA, ושרכיב החובה <SecretKey>
נמצא בשימוש עם האלגוריתמים של משפחת HS.
כדי לתקן את הדוגמה של מדיניות אימות JWT שמוצגת למעלה, שמשתמשת באלגוריתם RS256, יש להוסיף את הרכיב <PublicKey>
למדיניות verificationJWT:
<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 של ה-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 של מדיניות ה-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 של ה-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>
ריק, תתקבל שגיאה.
אבחון
מזהים את השם של מדיניות JWT ושל שם הרכיב שריקים בהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256
ושם הרכיב הואPublicKey/Value
:Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
בודקים את ה-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 של ה-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>
של מדיניות ValidJWT.
לדוגמה, אם הרכיב <Id>
מוגדר ברכיב <SecretKey>
, תופיע השגיאה הזו.
אבחון
מאתרים בהודעת השגיאה את השם של מדיניות אימות ה-JWT ואת שם הרכיב הלא חוקי. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות אימות ה-JWT הוא
JWT-Verify-RS256
ושם הרכיב הואSecretKey/Id
:Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
יש לבדוק את ה-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 בנושא אימות 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 של ה-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 של מדיניות 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 של ה-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>
יוביל לשגיאה הזו.
אבחון
מזהים את השם של מדיניות ה-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).
כדי לתקן את הדוגמה של מדיניות JWT בנושא אימות 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 של ה-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 והרכיב <SecretKey>
בשימוש עם אלגוריתמים של משפחת RSA. השגיאה תופיע גם אם אחד מהתנאים האלה מתקיים.
לדוגמה, שימוש ברכיב <PublicKey>
עם אלגוריתמים של 'משפחת HS' מוביל לשגיאה הזו.
אבחון
מזהים את השם של מדיניות אימות ה-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>
, זו הסיבה לשגיאה.בדוגמה שלמעלה, המערכת משתמשת ברכיב
<PublicKey>
למרות שהרכיב<Algorithm>
מוגדר כאלגוריתם משפחתי HS256, וכתוצאה מכך מתקבלת השגיאה:Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
רזולוציה
יש לוודא שהאלמנט <PublicKey>
נמצא בשימוש רק באלגוריתמים של משפחת RSA, ושהאלמנט <SecretKey>
נמצא בשימוש רק באלגוריתמים של משפחת HS.
כדי לתקן את הדוגמה של מדיניות אימות JWT, צריך להשתמש במדיניות <SecretKey>
מהמדיניות ValidJWT שמתבססת על האלגוריתם 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>