פתרון בעיות שקשורות לשגיאות בפריסה של מדיניות GenerateJWT

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

InvalidNameForAdditionalClaim

הודעת השגיאה

כשפורסים את ה-API של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם שם ההצהרה שמופיע ברכיב הצאצא <Claim> של הרכיב <AdditionalClaims> הוא אחד מהשמות הרשומים הבאים:

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

התלונות הרשומות מפורטות ב-RFC7519.

לדוגמה, שימוש בשם התלונה iss תחת הרכיב <AdditionalClaims> יוביל לשגיאה הזו.

אבחון

  1. צריך לציין בהודעת השגיאה את שם המדיניות Generate JWT ואת שם ההצהרה. לדוגמה, בהודעת השגיאה הבאה, שם המדיניות 'יצירת JWT' הוא JWT-Generate-HS256 ושם ההצהרה הוא iss:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. יש לוודא ששם ההצהרה שנעשה בו שימוש במסגרת הרכיב <AdditionalClaims> ב-XML של המדיניות 'יצירת 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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם סוג התלונה שבו נעשה שימוש ברכיב הצאצא <Claim> של הרכיב <AdditionalClaims> במדיניות GenerateJWT אינו אחד מהסוגים הבאים:

string (ברירת המחדל), number, boolean או map

לדוגמה, שימוש בסוג התלונה integer בתוך הרכיב <AdditionalClaims> יגרום לשגיאה.

אבחון

  1. מציינים בהודעת השגיאה את שם המדיניות Generate JWT, את שם התלונה ואת סוג התלונה. לדוגמה, בהודעת השגיאה הבאה, שם המדיניות 'יצירת JWT' הוא JWT-Generate-HS256, שם התלונה הוא claim וסוג התלונה הוא integer:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. צריך לוודא ששם התלונה והסוג שנעשה בהם שימוש לאלמנט <AdditionalClaims> ב-XML של המדיניות 'יצירת 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

    זאת הסיבה לשגיאה.

    בדוגמה 'יצירת 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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם שם ההצהרה לא צוין ברכיב הצאצא <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 של מדיניות 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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם שם ההצהרה שמופיע ברכיב הצאצא <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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה תתרחש אם סוג התלונה שבו נעשה שימוש ברכיב הצאצא <Claim> של הרכיב <AdditionalHeaders> במדיניות GenerateJWT אינו אחד מהסוגים הבאים:

string (ברירת המחדל), number, boolean או map.

לדוגמה, שימוש בסוג התלונה integer בתוך הרכיב <AdditionalHeaders> יגרום לשגיאה.

אבחון

  1. מציינים בהודעת השגיאה את שם המדיניות Generate JWT, את שם התלונה ואת סוג התלונה. לדוגמה, בהודעת השגיאה הבאה, שם המדיניות 'יצירת JWT' הוא JWT-Generate-HS256, שם התלונה הוא claim, וסוג התלונה הוא integer:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. יש לוודא ששם התלונה וסוג התלונה שנמצאים בשימוש ברכיב <AdditionalClaims> ב-XML של המדיניות 'יצירת מדיניות 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

    זאת הסיבה לשגיאה.

    בדוגמה 'יצירת JWT' שמוצגת למעלה, הסוג <Claim> מתחת לרכיב <AdditionalHeaders> מצוין כ-integer. מכיוון ש-integer אינו סוג נתמך, תופיע השגיאה:

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

רזולוציה

יש לוודא שרק סוגי הנתונים הנתמכים string, number, boolean או map נמצאים בשימוש ברכיב הצאצא <Claim> של הרכיב <AdditionalHeaders>.

כדי לתקן את הדוגמה של המדיניות Generate 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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם הערך של מאפיין המערך ברכיב הצאצא <Claim> של הרכיב <AdditionalClaims> או <AdditionalHeaders> לא מוגדר כ-true או כ-false.

לדוגמה, אם מגדירים את הערך של מאפיין המערך כ-yes ברכיב הצאצא <Claim> של <AdditionalClaims> או <AdditionalHeaders>, המערכת גורמת לשגיאה.

אבחון

  1. צריך לציין בהודעת השגיאה את שם המדיניות Generate JWT ואת שם ההצהרה. לדוגמה, בהודעת השגיאה הבאה, שם המדיניות 'יצירת 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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם הרכיב <PrivateKey> נמצא בשימוש עם אלגוריתמים של משפחת HS והרכיב <SecretKey> בשימוש עם אלגוריתמים של משפחת RSA. השגיאה תופיע גם אם אחד מהתנאים האלה מתקיים.

לדוגמה, שימוש ברכיב <PrivateKey> עם אלגוריתמים של 'משפחת HS' מוביל לשגיאה הזו.

אבחון

  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>, זו הסיבה לשגיאה.

    בדוגמה שלמעלה, המדיניות 'יצירת 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, ושהאלמנט <SecretKey> נמצא בשימוש רק באלגוריתמים של משפחת HS.

כדי לתקן את הדוגמה של מדיניות יצירת 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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם הערך שצוין ברכיב <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 של מדיניות JWT שנכשל, ולבדוק את הערך שצוין לרכיב <Algorithm>.

    זוהי דוגמה למדיניות בנושא יצירת 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

    זאת הסיבה לשגיאה.

    בדוגמה שלמעלה, המדיניות 'יצירת JWT' מופיעה, השם של '<Algorithm>' מצוין בתור HS128. מכיוון שזה לא אלגוריתם נתמך, תופיע השגיאה:

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

רזולוציה

צריך לוודא שהערך שמצוין ברכיב <Algorithm> הוא אחד מהערכים הנתמכים:

HS256, HS384, HS512, RS256, RS384, RS512

כדי לתקן את הדוגמה של מדיניות יצירת JWT שמוצגת למעלה, שמשתמשת ברכיב <SecretKey>, צריך לשנות את הערך של <Algorithm> ל-HS25. הערה: כאשר נעשה שימוש ברכיב <SecretKey>, ניתן להשתמש רק באלגוריתמים של משפחת HS.

<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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת כשהרכיב <PrivateKey> לא נמצא בשימוש עם אלגוריתמים של משפחת RSA במדיניות 'יצירת JWT'. אותה שגיאה יכולה להתרחש אם הרכיב <SecretKey> לא נמצא בשימוש עם אלגוריתמים של 'משפחת HS' במדיניות 'יצירת JWT'.

לדוגמה, אם לא משתמשים ברכיב <PrivateKey> עם האלגוריתמים של משפחת RSA, התוצאה הזו עלולה להיות שגיאה.

אבחון

  1. יש לציין בהודעת השגיאה את שם המדיניות Generate JWT ואת שם הרכיב החסר. לדוגמה, בהודעת השגיאה הבאה, שם המדיניות Generate JWT הוא JWT-Generate-HS256 ושם הרכיב החסר הוא SecretKey.

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. יש לבדוק את קובץ ה-XML של מדיניות 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>
    

    במדיניות לדוגמה ליצירת JWT נעשה שימוש באלגוריתמים של משפחת HS, אבל רכיב החובה SecretKey חסר, ולכן תתקבל השגיאה:

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

רזולוציה

יש לוודא שנעשה שימוש באלמנט <PrivateKey> הנדרש עם האלגוריתמים של משפחת RSA, ושרכיב החובה <SecretKey> נמצא בשימוש עם האלגוריתמים של משפחת HS.

כדי לתקן את הדוגמה של מדיניות יצירת JWT שמוצגת למעלה, שמשתמשת באלגוריתם HS256, צריך להוסיף את הרכיב <SecretKey> למדיניות 'יצירת 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 של ה-API דרך ממשק המשתמש של Edge או Edge management API, מוצגת הודעת השגיאה הבאה:

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

הודעת שגיאה לדוגמה

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

צילום מסך לדוגמה

בממשק המשתמש של Edge תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם אלמנט הצאצא הנדרש <Value> לא מוגדר באלמנטים <PrivateKey> או <SecretKey> במדיניות Generate JWT.

אבחון

  1. יש לזהות את השם של מדיניות Generate JWT בהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, שם המדיניות Generate JWT הוא JWT-Generate-HS256.

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. צריך לבדוק את קובץ ה-XML של מדיניות 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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם מאפיין ה-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 של מדיניות 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.".

כדי לתקן את הדוגמה של מדיניות יצירת 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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם השם של משתנה הזרימה שצוין במאפיין ref ברכיב הצאצא <Value> של הרכיבים <PrivateKey> או <SecretKey> לא כולל את הקידומת הפרטית (private.).

לדוגמה :

אם השם של משתנה הזרימה מצוין כ-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 של מדיניות 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..

כדי לתקן את הדוגמה של מדיניות יצירת 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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

שגיאה זו מתרחשת אם הערך (secret) מצוין במפורש ב:

  • רכיבי הצאצא <Value> או <Password> של הרכיב <PrivateKey> או
  • רכיב הצאצא <Value> של רכיב <SecretKey>

במדיניות 'יצירת 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 של מדיניות 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>.

כדי לתקן את הדוגמה של מדיניות יצירת JWT שמוצגת למעלה, צריך להשתמש במשתנה הזרימה private.secretkey במאפיין ה-ref של רכיב הצאצא <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 של ה-API דרך ממשק המשתמש של Edge או 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 תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם הערך שצוין ברכיב <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 של מדיניות יצירת ה-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

כדי לתקן את הדוגמה של המדיניות Generate 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>