排解 JWT 政策部署錯誤

您正在查看 ApigeeApigee Hybrid 說明文件。
查看 Apigee Edge 說明文件。

InvalidNameForAdditionalClaim

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果 <AdditionalClaims> 元素的子元素 <Claim> 中使用的聲明名稱為下列已註冊名稱之一,就會發生此錯誤:

「kid」、「iss」、「sub」、「aud」、「iat」、「exp」、「nbf」、「jti」

已註冊的聲明權利請參閱 RFC 7519

舉例來說,如果在 <AdditionalClaims> 元素下使用聲明名稱 iss,就會導致這項錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策的名稱和憑證附加資訊名稱。舉例來說,在下列錯誤訊息中,產生 JWT 政策的名稱為 JWT-Generate-HS256,宣稱名稱為 iss

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. 請確認在失敗的「產生 JWT」政策 XML 中 <AdditionalClaims> 元素下使用的憑證名稱,與錯誤訊息中指出的憑證名稱相符 (上方步驟 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name="iss"/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. 如果在 <AdditionalClaims> 元素的子元素 <Claim> 中使用的聲明名稱為下列已註冊名稱之一:

    「kid」、「iss」、「sub」、「aud」、「iat」、「exp」、「nbf」、「jti」

    那就是錯誤的原因。

    在上述範例中,產生 JWT 政策時,<Claim> 名稱在 <AdditionalClaims> 元素下指定為 iss,導致發生以下錯誤:

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

解決方法

請勿在 <AdditionalClaims> 元素的子元素 <Claim> 中使用任何已註冊的名稱「kid」、「iss」、「sub」、「aud」、「iat」、「exp」、「nbf」或「jti」。

如要修正上述「產生 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

InvalidTypeForAdditionalClaim

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果 GenerateJWT 政策 <AdditionalClaims> 元素的子元素 <Claim> 中使用的宣稱類型不是下列任一類型,就會發生這個錯誤:

string (預設)、numberbooleanmap

舉例來說,在 <AdditionalClaims> 元素下使用宣告類型 integer 會導致錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT 政策」政策的名稱、憑證附加資訊名稱和憑證附加資訊類型。舉例來說,在下列錯誤訊息中,產生 JWT 政策的名稱為 JWT-Generate-HS256,宣告名稱為 claim,宣告類型為 integer

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. 請確認在失敗的「Generate JWT」政策 XML 中,<AdditionalClaims> 元素下使用的憑證名稱和類型,與步驟 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. 如果 <AdditionalClaims> 元素子元素 <Claim> 中使用的聲明類型不是下列任一類型:

    string (預設)、numberbooleanmap

    那就是錯誤的原因。

    在上述範例的「產生 JWT」政策中,<AdditionalClaims> 元素下方的 <Claim> 類型已指定為 integer。由於 integer 不是支援的類型,因此您會收到以下錯誤訊息:

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

解決方法

請確認 <AdditionalClaims> 元素的子元素 <Claim> 中只使用支援的資料類型,例如 stringnumberbooleanmap

如要修正上述「產生 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

MissingNameForAdditionalClaim

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果在 <AdditionalClaims><AdditionalHeaders> 元素的子元素 <Claim> 中未指定聲明名稱,就會發生這個錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策的名稱。舉例來說,在下列錯誤訊息中,產生 JWT 政策的名稱為 JWT-Generate-HS256

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. 檢查產生 JWT 政策 XML 失敗的情況,確認 <AdditionalClaims><AdditionalHeaders> 元素下的子元素 <Claims> 是否缺少權杖名稱。舉例來說,下列「產生 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    由於 <AdditionalClaims> 元素未指定 <Claim> 名稱,因此您會收到以下錯誤訊息:

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

解決方法

請務必在 <AdditionalClaims><AdditionalHeaders> 元素的子元素 <Claim> 中指定宣告名稱。

如要修正上述「產生 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

InvalidNameForAdditionalHeader

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果 <AdditionalHeaders> 元素的子元素 <Claim> 中使用的憑證名稱是下列標準 JWT 標頭之一,就會發生這個錯誤:

algtyp

舉例來說,如果在 <AdditionalHeaders> 元素下方使用聲明名稱 alg,就會導致錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策和標頭的名稱。舉例來說,在下列錯誤訊息中,產生 JWT 政策的名稱為 JWT-Generate-HS256,標頭名稱為 alg

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. 請確認在失敗的產生 JWT 政策 XML 中,<AdditionalHeaders> 元素下子元素 <Claim> 中使用的標頭名稱,與步驟 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. 如果 <AdditionalClaims> 元素子項元素 <Claim> 中使用的標頭名稱是下列標準 JWT 標頭之一:

    algtyp

    那就是錯誤的原因。

    在上述範例中,產生 JWT 政策時,<Claim> 名稱在 <AdditionalClaims> 元素下指定為 alg,導致發生以下錯誤:

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

解決方法

請勿在 <AdditionalHeaders> 元素的子項元素 <Claim> 中使用標準 JWT 標頭 algtyp

如要修正上述的「產生 JWT」政策範例,請在 <AdditionalHeaders> 元素的子項元素 <Claim> 中使用 x5c 名稱:

<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidTypeForAdditionalHeader

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果 GenerateJWT 政策 <AdditionalHeaders> 元素的子元素 <Claim> 中使用的宣稱類型不是下列任一類型,就會發生錯誤:

string (預設)、numberbooleanmap

舉例來說,在 <AdditionalHeaders> 元素下使用聲明類型 integer 會導致錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT 政策」政策的名稱、憑證附加資訊名稱和憑證附加資訊類型。舉例來說,在以下錯誤訊息中,產生 JWT 政策的名稱為 JWT-Generate-HS256,宣告名稱為 claim,,宣告類型為 integer:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. 請確認在失敗的「Generate JWT」政策 XML 中,<AdditionalClaims> 元素下使用的憑證名稱和憑證類型,與步驟 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. 如果 <AdditionalHeaders> 元素子元素 <Claim> 中使用的聲明類型不是下列任一類型:

    string (預設)、numberbooleanmap

    那就是錯誤的原因。

    在上述範例的「產生 JWT」政策中,<AdditionalHeaders> 元素下方的 <Claim> 類型已指定為 integer。由於 integer 不是支援的類型,因此您會收到以下錯誤訊息:

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

解決方法

請確認 <AdditionalHeaders> 元素的子元素 <Claim> 中只使用支援的資料類型 stringnumberbooleanmap

如要修正上述「產生 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidValueOfArrayAttribute

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果 <AdditionalClaims><AdditionalHeaders> 元素的子元素 <Claim> 中陣列屬性的值未設為 truefalse,就會發生此錯誤。

舉例來說,如果在 <AdditionalClaims><AdditionalHeaders> 的子元素 <Claim> 中,將陣列屬性的值設為 yes,就會導致錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策的名稱和憑證附加資訊名稱。舉例來說,在以下錯誤訊息中,產生 JWT 政策的名稱為 JWT-Generate-HS256,宣告名稱為 claim:

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. 請確認在失敗的「Generate JWT」政策 XML 中,<AdditionalHeaders> 元素下方子元素 <Claim> 所使用的憑證名稱,與步驟 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. 如果 <AdditionalClaims> 元素子元素 <Claim> 中的 array 屬性值未設為 truefalse,則會導致錯誤。

    由於上述範例中 <AdditionalClaims> 元素的子項元素 <Claim> 中的 array 屬性設為 yes,因此會發生以下錯誤:

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

解決方法

請確認 <AdditionalClaims><AdditionalHeaders> 子元素 <Claim> 中的陣列屬性值設為 truefalse

如要修正上述的「產生 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidConfigurationForActionAndAlgorithm

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果 <PrivateKey> 元素與 HS 系列演算法搭配使用,而 <SecretKey> 元素與 RSA 系列演算法搭配使用,就會發生這個錯誤。如果任一條件為真,也會發生錯誤。

舉例來說,使用 <PrivateKey> 元素搭配 HS Family 演算法會導致這項錯誤。

診斷

  1. 從錯誤訊息中找出「產生 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. 請確認在產生 JWT 政策 XML 失敗時使用的元素和演算法系列,與步驟 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-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> 已設為家族演算法 HS256,系統仍會使用 <PrivateKey>,導致發生以下錯誤:

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

解決方法

請確認 <PrivateKey> 元素只用於 RSA 家庭版演算法,而 <SecretKey> 元素只用於 HS 家庭版演算法。

如要修正上述範例的「產生 JWT」政策,請使用採用 HS256 演算法的 GenerateJWT 政策中的 <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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidValueForElement

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果 <Algorithm> 元素中指定的值不是下列值之一,就會發生此錯誤:

HS256HS384HS512RS256RS384RS512

舉例來說,如果在 <Algorithm> 元素中將演算法值指定為 RS128,就會導致這項錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策的名稱和元素名稱。舉例來說,在下列錯誤訊息中,產生 JWT 政策的名稱為 JWT-Generate-HS256,元素名稱為 Algorithm.

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    
  2. 檢查產生 JWT 政策 XML 失敗的情況,並查看 <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. 檢查 <Algorithm> 元素中指定的值。如果不是下列其中一個值:

    HS256HS384HS512RS256RS384RS512

    那就是錯誤的原因。

    在上述範例的「產生 JWT」政策中,<Algorithm> 名稱已指定為 HS128。由於系統不支援這個演算法,因此會顯示以下錯誤訊息:

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

解決方法

請確認 <Algorithm> 元素中指定的值為支援的值之一:

HS256HS384HS512RS256RS384RS512

如要修正上述範例中使用 <SecretKey> 元素的「產生 JWT」政策,請將 <Algorithm> 的值變更為 HS25。請注意,使用 <SecretKey> 元素時,您只能使用 HS Family 演算法。

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

MissingConfigurationElement

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果在「產生 JWT」政策中,<PrivateKey> 元素「未」與 RSA 系列演算法搭配使用,就會發生這項錯誤。同樣地,如果在「產生 JWT」政策中,<SecretKey> 元素「未」與 HS 系列演算法搭配使用,也會發生錯誤。

舉例來說,如果未在 RSA Family 演算法中使用 <PrivateKey> 元素,就會發生這項錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策的名稱和缺少的元素名稱。舉例來說,在下列錯誤訊息中,產生 JWT 政策的名稱為 JWT-Generate-HS256,而缺少的元素名稱為 SecretKey

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. 檢查產生 JWT 政策 XML 失敗的情況,並確認錯誤訊息中指出的元素是否遺漏。如果缺少該檔案,則表示這是錯誤的原因。

    例如,在下列政策中,SecretKey 缺少,且使用的 AlgorithmHS256

    <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-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).
    

解決方法

請確認使用 RSA Family 演算法的必要 <PrivateKey> 元素,以及使用 HS Family 演算法的必要 <SecretKey> 元素。

如要修正上述範例的「產生 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidKeyConfiguration

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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

錯誤訊息示例

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

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 3 時發生錯誤。

原因

如果在「產生 JWT」政策的 <PrivateKey><SecretKey> 元素中未定義必要的子元素 <Value>,就會發生這項錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策的名稱。舉例來說,在下列錯誤訊息中,「Generate JWT」政策的名稱為 JWT-Generate-HS256

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. 檢查產生 JWT 政策 XML 失敗的情況,確認子元素 <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    由於子項 <Value> 未在「Generate JWT」政策的 <SecretKey> 元素中定義,因此您會收到以下錯誤:

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

解決方法

請確認子元素 <Value> 一律在「Generate JWT」政策的 <PrivateKey><SecretKey> 元素中定義。

如要修正上述的「產生 JWT」政策範例,請在 <SecretKey> 元素下方定義子元素 <Value>,如下所示:

<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

EmptyElementForKeyConfiguration

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果 <PrivateKey><SecretKey> 元素的子項元素 <Value> 中的 ref 屬性未指定或為空白,就會發生這個錯誤。

舉例來說,如果 <SecretKey> 元素的子元素 <Value> 為空白,就會發生錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策的名稱和空白元素名稱。舉例來說,在下列錯誤訊息中,產生 JWT 政策的名稱為 JWT-Generate-HS256,空白元素名稱為 SecretKey/Value

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. 檢查產生 JWT 政策 XML 失敗的情況,並確認步驟 1 中指出的元素是否為空白。如果為空白,則表示這是錯誤的原因。

    舉例來說,下列政策顯示 <SecretKey> 元素的子元素 <Value> 為空白:

    <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    由於「Generate JWT」政策中 <SecretKey> 元素的子元素 <Value> 為空白,因此會收到以下錯誤:

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

解決方法

請確認 <PrivateKey><SecretKey> 元素子項 <Value> 中的 ref 屬性一律會指定,且具有前置詞「private.」。

如要修正上述的「產生 JWT」政策範例,請在 <SecretKey> 元素的子項 <Value> 中使用流程變數 private.privatekey

<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidVariableNameForSecret

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果 <PrivateKey><SecretKey> 元素的子元素 <Value> 中 ref 屬性指定的流程變數名稱不含私人前置字元 (private.),就會發生這個錯誤。

例如:

如果在 <PrivateKey> 元素的子項元素 <Value> 的 ref 屬性中,將流程變數名稱指定為 mykey,就會發生這個錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策的名稱,以及含有無效變數名稱的元素名稱。舉例來說,在下列錯誤訊息中,「Generate JWT」政策的名稱為 JWT-Generate-HS256,元素名稱為 SecretKey/Value

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. 檢查產生 JWT 政策 XML 失敗的情況,並驗證元素中使用的變數名稱 (請參閱步驟 1)。如果變數名稱沒有 private. 前置字串,就會導致錯誤。

    舉例來說,下列政策顯示 <SecretKey> 元素的子元素 <Value> 含有無效的變數名稱 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    由於「產生 JWT」政策的 <SecretKey> 元素子項 <Value> 中指定的變數名稱沒有前置字元 private.,因此您會收到以下錯誤:

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

解決方法

請確認 <PrivateKey><SecretKey> 元素子項 <Value> 中的 ref 屬性一律會指定,且具有前置字 private.

如要修正上述的「Generate JWT」政策範例,請在 <SecretKey> 元素的子項 <Value> 中使用流程變數 private.privatekey

<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidSecretInConfig

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 2 時發生錯誤。

原因

如果在以下位置明確指定值 (密鑰),就會發生這個錯誤:

  • <PrivateKey> 元素的子元素 <Value><Password>,或
  • <SecretKey> 元素的子元素 <Value>

中的「產生 JWT」政策。

舉例來說,如果在 <SecretKey> 元素的子項 <Value> 中,明確將機密資料指定為 abc,就會發生這個錯誤。

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策的名稱,以及明確指定機密金鑰的元素名稱。舉例來說,在下列錯誤訊息中,「Generate JWT」政策的名稱為 JWT-Generate-HS256,元素名稱為 SecretKey/Value

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. 檢查產生 JWT 政策 XML 失敗的情況,並確認是否在步驟 1 中指出的元素中明確指定機密金鑰。如果已明確指定,則該值就是錯誤的原因。

    舉例來說,下列政策顯示在 <SecretKey> 元素的子元素 <Value> 中明確指定了機密金鑰:

    <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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    由於在 Generate JWT 政策的 <SecretKey> 元素子項 <Value> 中明確指定了密鑰,因此您會收到以下錯誤:

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

解決方法

請務必在 <PrivateKey><SecretKey> 元素的子項 <Value> 中,一律將值指定為流程變數。

如要修正上述的「Generate JWT」政策範例,請在 <SecretKey> 的子項元素 <Value> 的 ref 屬性中使用流程變數 private.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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidTimeFormat

錯誤訊息

透過 Apigee UI 或 API 部署 API Proxy 時失敗,並顯示以下錯誤訊息:

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).

螢幕截圖範例

Apigee UI 中會顯示對話方塊,其中顯示錯誤訊息:

儲存修訂版本 3 時發生錯誤。

原因

如果 <NotBefore> 元素中指定的值不在支援的格式中,就會發生這個錯誤:

sortableRFC 1123RFC 850ANCI-C

舉例來說,如果 <NotBefore> 中指定的值為 20-JUN-1990 08:03 (非支援的格式),就會發生這個錯誤。

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

診斷

  1. 從錯誤訊息中找出「產生 JWT」政策的名稱,以及格式無效的元素名稱。舉例來說,在下列錯誤訊息中,「Generate JWT」政策的名稱為 JWT-Generate-HS256,元素名稱為 NotBefore

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. 檢查產生 JWT 政策 XML 失敗的情況,並驗證步驟 1 中所述元素使用的時間格式。如果元素未使用任何支援的格式:

    sortableRFC 1123RFC 850ANCI-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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    由於「產生 JWT」政策的 <NotBefore> 元素未使用任何支援的時間格式,因此您會收到以下錯誤訊息:

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

解決方法

請確認 <NotBefore> 元素中指定的值使用下列其中一種支援的格式:

sortableRFC 1123RFC 850ANCI-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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>