您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
InvalidNameForAdditionalClaim
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果 <AdditionalClaims>
元素的子元素 <Claim>
使用的聲明名稱是下列其中一個註冊名稱,就會發生這個錯誤:
「kid」、「iss」、「sub」、「aud」、「iat」、「exp」、「nbf」、「jti」
已註冊的憑證附加資訊請參閱 RFC7519 文件。
舉例來說,如果在 <AdditionalClaims>
元素下方使用聲明名稱 iss
,就會發生這個錯誤。
診斷
識別 Generate JWT 政策的名稱和錯誤訊息中的要求名稱。例如,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,憑證附加資訊名稱為iss
:Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
驗證失敗的 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-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name="iss"/> </AdditionalClaims> </GenerateJWT>
如果
<AdditionalClaims>
元素的<Claim>
子元素使用聲明名稱是下列其中一個註冊名稱:「kid」、「iss」、「sub」、「aud」、「iat」、「exp」、「nbf」、「jti」
才是發生錯誤的原因
在上述的 Generate JWT 政策範例中,在
<AdditionalClaims>
元素下將<Claim>
名稱指定為iss
,就會導致錯誤:Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
解析度
請勿在 <AdditionalClaims>
元素的 <Claim>
子元素 <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-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalClaims>
<Claim name='status' type='string'>Development</Claim>
</AdditionalClaims>
</GenerateJWT>
InvalidTypeForAdditionalClaim
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果 GenerateJWT 政策的 <AdditionalClaims>
元素子元素 <Claim>
使用了以下聲明類型,就會發生這個錯誤:
string
(預設)、number
、boolean
或 map
舉例來說,如果在 <AdditionalClaims>
元素下方使用聲明類型 integer
,就會導致錯誤。
診斷
識別錯誤訊息中的 Generate JWT 政策名稱、要求名稱和要求類型。例如,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,憑證要求名稱為claim
,憑證附加資訊類型為integer
:Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
在失敗的 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-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='integer'/> </AdditionalClaims> </GenerateJWT>
如果
<AdditionalClaims>
元素的子元素<Claim>
中使用的聲明類型不屬於以下任何類型:string
(預設)、number
、boolean
或map
才是發生錯誤的原因
在上述的 Generate JWT 政策範例中,
<AdditionalClaims>
元素下方的<Claim>
類型會指定為integer
。由於integer
不是支援的類型,所以您會收到錯誤訊息:Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
解析度
確保 <AdditionalClaims>
元素的子項元素 <Claim>
只使用支援的資料類型,例如 string
、number
、boolean
或 map
。
如要修正上述的 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
錯誤訊息
無法透過 Edge UI 或 Edge Management 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
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果在 <AdditionalClaims>
或 <AdditionalHeaders>
元素的子元素 <Claim>
中未指定聲明名稱,就會發生這個錯誤。
診斷
從錯誤訊息中找出 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
檢查失敗的 JWT 政策 XML,確認
<AdditionalClaims>
或<AdditionalHeaders>
元素下方的子元素<Claims>
中是否缺少版權聲明名稱。舉例來說,下列 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>
由於您並未在
<AdditionalClaims>
元素下方指定<Claim>
名稱,您會收到錯誤訊息:Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
解析度
請確保聲明名稱一律在 <AdditionalClaims>
或 <AdditionalHeaders>
元素的子元素 <Claim>
中指定。
如要修正上方所示的 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
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果 <AdditionalHeaders>
元素的子元素 <Claim>
使用了下列任一標準 JWT 標頭,就會發生這個錯誤:
alg
或 typ
舉例來說,如果在 <AdditionalHeaders>
元素下方使用聲明名稱 alg
,就會導致錯誤。
診斷
識別 Generate JWT 政策的名稱和錯誤訊息的標頭名稱。例如,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,標頭名稱為alg
:Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
確認在 Generate JWT 政策 XML 中,子元素
<Claim>
中使用的標頭名稱,與步驟 1 錯誤訊息中指出的標頭名稱相符。<AdditionalHeaders>
舉例來說,下列政策會將標頭指定為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>
如果
<AdditionalClaims>
元素的子元素<Claim>
中使用的標頭名稱是下列其中一個標準 JWT 標頭之一:alg
或typ
才是發生錯誤的原因
在上述的 Generate JWT 政策範例中,在
<AdditionalClaims>
元素下將<Claim>
名稱指定為alg
,就會導致錯誤:Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
解析度
請勿在 <AdditionalHeaders>
元素的子元素 <Claim>
中使用標準 JWT 標頭 alg
或 typ
。
如要修正上方顯示的 Generate 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-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='x5c'/>
</AdditionalHeaders>
</GenerateJWT>
InvalidTypeForAdditionalHeader
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果 GenerateJWT 政策的 <AdditionalHeaders>
元素子元素 <Claim>
使用了以下聲明類型,就會發生錯誤:
string
(預設)、number
、boolean
或 map
。
舉例來說,如果在 <AdditionalHeaders>
元素下方使用聲明類型 integer
,就會導致錯誤。
診斷
識別錯誤訊息中的 Generate JWT 政策名稱、要求名稱和要求類型。例如,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,憑證要求名稱為claim,
,憑證附加資訊類型為integer:
Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
確認系統在 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-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalHeaders> <Claim name='claim' ref='reqclaim' type='integer'/> </AdditionalHeaders> </GenerateJWT>
如果
<AdditionalHeaders>
元素的子元素<Claim>
中使用的聲明類型不屬於以下任何類型:string
(預設)、number
、boolean
或map
才是發生錯誤的原因
在上述的 Generate JWT 政策範例中,
<AdditionalHeaders>
元素下方的<Claim>
類型會指定為integer
。由於integer
不是支援的類型,所以您會收到錯誤訊息:Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
解析度
確保在 <AdditionalHeaders>
元素的子項元素 <Claim>
中,只能使用支援的資料類型 string
、number
、boolean
或 map
。
如要修正上述的 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
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果 <AdditionalClaims>
或 <AdditionalHeaders>
元素子項元素 <Claim>
中的陣列屬性值未設為 true
或 false
,就會發生這個錯誤。
舉例來說,如果在 <AdditionalClaims>
或 <AdditionalHeaders>
的子項元素 <Claim>
中將陣列屬性的值設為 yes
,就會造成錯誤。
診斷
識別 Generate JWT 政策的名稱和錯誤訊息中的要求名稱。例如,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,憑證附加資訊名稱為claim:
Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
確認在 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-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='yes'/> </AdditionalClaims> </GenerateJWT>
如果
<AdditionalClaims>
元素子項元素<Claim>
的array
屬性值未設為true
或false
,就會導致錯誤。由於上述範例中的
<AdditionalClaims>
元素子元素<Claim>
中的array
屬性設為yes
,因此您會收到錯誤訊息:Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
解析度
確認 <AdditionalClaims>
或 <AdditionalHeaders>
子元素 <Claim>
中陣列屬性的值已設為 true
或 false
。
如要修正上述的 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
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果將 <PrivateKey>
元素與 HS 系列演算法搭配使用,且 <SecretKey>
元素與 RSA 系列演算法搭配使用,就會發生這個錯誤。如果這些其中一項條件成立,也會發生這個錯誤。
舉例來說,使用 <PrivateKey>
元素搭配 HS Family 演算法時,就會發生這個錯誤。
診斷
識別錯誤訊息中 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).
驗證失敗的 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-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array=tuu =/> </AdditionalClaims> </GenerateJWT>
如果
<Algorithm>
元素的值為HS256
,但您使用了<PrivateKey>
,這就是發生錯誤的原因。在上方顯示的 Generate 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 系列演算法搭配使用。
如要修正上方顯示的 Generate 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-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</GenerateJWT>
InvalidValueForElement
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果 <Algorithm>
元素中指定的值不是下列任一值,就會發生這個錯誤:
HS256
、HS384
、HS512
、RS256
、RS384
、RS512
舉例來說,如果在 <Algorithm>
元素中將演算法值指定為 RS128
,就會發生這個錯誤。
診斷
識別 Generate JWT 政策的名稱和錯誤訊息中的元素名稱。舉例來說,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,元素名稱為Algorithm.
Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
檢查失敗的 JWT 政策 XML 並檢查
<Algorithm>
元素指定的值。以下是 Generate JWT 政策範例:
<GenerateJWT name="JWT-Generate-HS256"> <DisplayName>JWT Generate HS256</DisplayName> <Algorithm>HS128</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='status' type='string'>Development</Claim> </AdditionalClaims> </GenerateJWT>
檢查
<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
如要修正上述使用 <SecretKey>
元素的範例 Generate JWT 政策,請將 <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
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果 Generate JWT 政策中的 RSA 家庭演算法「並未」使用 <PrivateKey>
元素,就會發生這個錯誤。同樣地,如果 <SecretKey>
元素「沒有」與 Generate JWT 政策中的 HS 系列演算法搭配使用,就會發生錯誤。
舉例來說,如果沒有將 <PrivateKey>
元素與 RSA Family 演算法搭配使用,就會發生這個錯誤。
診斷
指明 Generate JWT 政策名稱,以及錯誤訊息中缺少元素名稱。例如,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,而缺少的元素名稱是SecretKey
。Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
檢查失敗的 Generate JWT 政策 XML 並驗證錯誤訊息中指出的元素是否缺少元素。若缺少的話,就是導致錯誤的原因。
舉例來說,下列政策中缺少
SecretKey
,且使用的Algorithm
為HS256
:<GenerateJWT name="JWT-Generate-HS256"> <DisplayName>JWT Generate HS256</DisplayName> <Algorithm>HS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <ExpiresIn>1h</ExpiresIn> <Subject>monty-pythons-flying-circus</Subject> <Issuer>urn://apigee-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </GenerateJWT>
範例 Generate JWT 政策使用 HS 系列演算法,但缺少必要元素
SecretKey
,因此導致錯誤:Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
解析度
確認必要的 <PrivateKey>
元素與 RSA 家庭演算法搭配使用,且必要的 <SecretKey>
元素與 HS 系列演算法搭配使用。
如要修正上方所示使用 HS256
演算法的 Generate JWT 政策示例,請將 <SecretKey>
元素加入 Generate JWT 政策中:
<GenerateJWT name="JWT-Generate-HS256">
<DisplayName>JWT Generate HS256</DisplayName>
<Algorithm>HS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<SecretKey>
<Value ref="private.secretkey"/>
<Id>1918290</Id>
</SecretKey>
<ExpiresIn>1h</ExpiresIn>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</GenerateJWT>
InvalidKeyConfiguration
錯誤訊息
無法透過 Edge UI 或 Edge Management API 部署 API Proxy,並顯示以下錯誤訊息:
Error Saving RevisionInvalid Key configuration : policy(policy_name).
錯誤訊息示例
Error Saving Revision 3
Invalid Key configuration : policy(JWT-Generate-HS256).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果 Generate JWT 政策的 <PrivateKey>
或 <SecretKey>
元素中未定義必要的子元素 <Value>
,就會發生這個錯誤。
診斷
從錯誤訊息中找出 Generate JWT 政策的名稱。例如,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
。Invalid Key configuration : policy(JWT-Generate-HS256).
檢查失敗的 JWT 政策 XML,確認
<PrivateKey>
或<SecretKey>
元素中是否未定義子元素<Value>
。如未定義<Value>
,則為錯誤原因。舉例來說,在下列政策中,
<SecretKey>
元素並未定義子項元素<Value>
:<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>
由於 Generate JWT 政策的
<SecretKey>
元素並未定義子元素<Value>
,因此您會收到錯誤訊息:Invalid Key configuration : policy(JWT-Generate-HS256).
解析度
請確認在 Generate JWT 政策的 <PrivateKey>
或 <SecretKey>
元素中一律定義子元素 <Value>
。
如要修正上方顯示的 Generate 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-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</GenerateJWT>
EmptyElementForKeyConfiguration
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果 <PrivateKey>
或 <SecretKey>
元素子項元素 <Value>
中的 ref 屬性未指定或空白,就會發生這個錯誤。
舉例來說,如果 <SecretKey>
元素的子元素 <Value>
為空白,就會發生錯誤。
診斷
識別 Generate JWT 政策的名稱和錯誤訊息中的空白元素名稱。例如,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,空白元素名稱為SecretKey/Value
。Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
檢查失敗的 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-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </GenerateJWT>
由於產生 JWT 政策中
<SecretKey>
元素的子元素<Value>
為空白,因此您會收到錯誤訊息:Empty Element for Key Configuration : 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-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</GenerateJWT>
InvalidVariableNameForSecret
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果在 <PrivateKey>
或 <SecretKey>
元素的子項元素 <Value>
的 ref 屬性中指定的流程變數名稱不包含私人前置字元 (private.
),就會發生這個錯誤。
For example :
如果在 <PrivateKey>
元素子項元素 <Value>
的 ref 屬性中,將流程變數名稱指定為 mykey
,就會發生這個錯誤。
診斷
識別 Generate JWT 政策的名稱,以及錯誤訊息中變數名稱無效的元素名稱。舉例來說,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,元素名稱為SecretKey/Value
。Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
檢查失敗的 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-edge-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </GenerateJWT>
由於 Generate 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-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</GenerateJWT>
InvalidSecretInConfig
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果已明確指定下列位置的值 (秘密值),就會發生這個錯誤:
<PrivateKey>
元素的<Value>
或<Password>
子元素,或<SecretKey>
元素的子元素<Value>
。
舉例來說,如果在 <SecretKey>
元素的子項元素 <Value>
中明確將密鑰指定為 abc
,就會發生這個錯誤。
診斷
指明 Generate JWT 政策名稱以及錯誤訊息元素名稱,其中會在錯誤訊息中明確指定密鑰。舉例來說,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,元素名稱為SecretKey/Value
。Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
檢查失敗的 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-edge-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-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</GenerateJWT>
InvalidTimeFormat
錯誤訊息
無法透過 Edge UI 或 Edge Management 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).
螢幕截圖範例
在 Edge UI 中,您會看到出現錯誤的對話方塊:
原因
如果 <NotBefore>
元素中指定的值不屬於支援的格式,就會發生這個錯誤:
sortable
、RFC 1123
、RFC 850
、ANCI-C
舉例來說,如果 <NotBefore>
中指定的值是 20-JUN-1990 08:03
,但系統不支援這種格式,就會發生這個錯誤。
<NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>
診斷
找出 Generate JWT 政策名稱,以及錯誤訊息中時間格式無效的元素名稱。舉例來說,在下列錯誤訊息中,Generate JWT 政策的名稱為
JWT-Generate-HS256
,元素名稱為NotBefore
。Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
檢查失敗的 JWT 政策 XML 後,確認步驟 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>
由於 Generate JWT 政策的元素
<NotBefore>
並未使用任何支援的時間格式,因此您會收到錯誤訊息:Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
解析度
確認 <NotBefore>
元素中指定的值採用下列其中一種支援的格式:
sortable
、RFC 1123
、RFC 850
、ANCI-C
如要修正產生 JWT 政策示例,請將 <NotBefore>
元素中的日期修改為使用 sortable
格式,如下所示:
<GenerateJWT name="JWT-Generate-HS256">
<DisplayName>JWT Generate HS256</DisplayName>
<Algorithm>HS256</Algorithm>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<ExpiresIn>1h</ExpiresIn>
<NotBefore>2018-08-14T11:00:21-07:00</NotBefore>
<SecretKey>
<Value ref="private.secretkey"/>
<Id>1918290</Id>
</SecretKey>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<Id/>
<AdditionalHeaders>
<Claim name='claim' ref='reqclaim' type='string' array='true'/>
</AdditionalHeaders>
</GenerateJWT>