VerifyJWT ポリシーのデプロイエラーのトラブルシューティング

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

InvalidNameForAdditionalClaim

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision revision_number
Invalid name for additional claim : policy(policy_name) claim(claim_name).

エラー メッセージの例

Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、<AdditionalClaims> 要素の子要素 <Claim> で使用されているクレームの名前が、次の登録名のいずれかに該当する場合に発生します。

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

登録済みクレームは RFC7519 で指定されています。

たとえば、<AdditionalClaims> 要素でクレーム名 iss を使用すると、このエラーが発生します。

診断

  1. エラー メッセージから Verify JWT ポリシー名とクレーム名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシーの名は JWT-Verify-RS256 で、クレーム名は iss です。

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. エラーが発生した Verify JWT ポリシー XML の <AdditionalClaims> 要素で使用されたクレーム名が、ステップ 1 のエラー メッセージで特定されたクレーム名と一致することを確認します。たとえば、次のポリシーではクレームに iss が指定されており、これはエラー メッセージの内容と一致します。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name="iss"/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. <AdditionalClaims> 要素の子要素 <Claim> で使用されているクレーム名が、次の登録名のいずれかに該当するかどうかを確認します。

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

    該当する場合は、それがエラーの原因です。

    上記の Verify JWT ポリシーの例では、<AdditionalClaims> 要素で <Claim> 名が iss と指定されているため、エラーが発生します。

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    

解決策

<AdditionalClaims> 要素の子要素 <Claim> に、登録された名前(kid、iss、sub、aud、iat、exp、nbf、jti)は使用しないでください。

上記の Verify JWT ポリシーの例を修正するには、クレーム名を status に変更します。

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

InvalidTypeForAdditionalClaim

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision revision_number
Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).

エラー メッセージの例

Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

VerifyJWT ポリシーの <AdditionalClaims> 要素の子要素 <Claim> で使用されているクレームの型が、次のいずれにも該当しません。

string(デフォルト)、numberboolean、または map

たとえば、<AdditionalClaims> 要素でクレームの型に integer を使用すると、エラーが発生します。

診断

  1. エラー メッセージから Verify JWT ポリシー名、クレーム名、クレームの型を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256、クレーム名は claim、型は integer: です。

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. エラーが発生した Verify JWT ポリシー XML の <AdditionalClaims> 要素で使用されているクレーム名と型が、ステップ 1 のエラー メッセージで特定されたクレーム名と型に一致していることを確認します。たとえば、次のポリシーでは、クレームを claim、型を integer として指定しており、エラー メッセージの内容と一致します。

    <VerifyJWT name="JWT-Verify-RS256">
      <DisplayName>JWT Verify RS256</DisplayName>
      <Algorithm>RS256</Algorithm>
     <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <SecretKey>
          <Value ref="private.secretkey"/>
          <Id>1918290</Id>
      </SecretKey>
      <ExpiresIn>1h</ExpiresIn>
      <Subject>monty-pythons-flying-circus</Subject>
      <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
      <Audience>fans</Audience>
      <Id/>
      <AdditionalClaims>
          <Claim name='claim' ref='reqclaim' type='integer'/>
      </AdditionalClaims>
    </VerifyJWT>
    
  3. <AdditionalClaims> 要素の子要素 <Claim> で使用されたクレームの型が次の型に該当するかどうかを確認します。

    string(デフォルト)、numberboolean、または map

    該当する場合は、それがエラーの原因です。

    上記の Verify JWT ポリシーの例では、<AdditionalClaims> 要素の <Claim> 型が integer と指定されています。integer はサポートされていない型のため、次のエラーが発生します。

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    

解決策

<AdditionalClaims> 要素の子要素 <Claim> では、サポートされているデータ型(string(デフォルト)、numberbooleanmap)のみが使用されるようにします。

上記の Verify JWT ポリシーの例を修正するには、クレームの型を boolean に変更します。

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

MissingNameForAdditionalClaim

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision revision_number
Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.

エラー メッセージの例

Error Saving Revision 2
Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、<AdditionalClaims> または <AdditionalHeaders> 要素の子要素 <Claim> でクレーム名が指定されていない場合に発生します。

診断

  1. エラー メッセージから Verify JWT ポリシー名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256 です。

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. エラーが発生した Verify JWT ポリシーの XML を調べて、<AdditionalClaims> 要素や <AdditionalHeaders> 要素の子要素 <Claims> にクレーム名が抜けていないか確認します。たとえば、次の Verify JWT ポリシーでは、<AdditionalClaims> 要素でクレーム名が指定されていません。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    <AdditionalClaims> 要素に <Claim> の名前が指定されていないため、エラーが発生します。

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

解決策

<AdditionalClaims> 要素や <AdditionalHeaders> 要素の子要素 <Claim> では、常にクレーム名を指定するようにします。

上記の Verify JWT ポリシーの例を修正するには、次のようにクレーム名を指定します。

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</VerifyJWT>

InvalidNameForAdditionalHeader

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision revision_number
Invalid name for additional header : policy(policy_name)header(header_name).

エラー メッセージの例

Error Saving Revision 2
Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、<AdditionalHeaders> 要素の子要素 <Claim> で使用されているクレーム名が次の標準 JWT ヘッダーのいずれかに該当する場合に発生します。

alg または typ

たとえば、<AdditionalHeaders> 要素の中でクレーム名に alg を使用すると、エラーが発生します。

診断

  1. エラー メッセージから Verify JWT ポリシー名とヘッダー名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256、ヘッダー名は alg です。

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. エラーが発生した Verify JWT ポリシー XML の <AdditionalHeaders> 要素の子要素 <Claim> で使用されているヘッダー名が、ステップ 1 のエラー メッセージで特定されたヘッダー名と一致していることを確認します。たとえば、次のポリシーではヘッダーに alg が指定されており、これはエラー メッセージの内容と一致します。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. <AdditionalClaims> 要素の子要素 <Claim> で使用されるヘッダー名が、次の標準 JWT ヘッダーのいずれかに該当するかどうかを確認します。

    alg または typ

    該当する場合は、それがエラーの原因です。

    上記の Verify JWT ポリシーの例では、<AdditionalClaims> 要素で <Claim> 名が alg と指定されているため、エラーが発生します。

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    

解決策

<AdditionalHeaders> 要素の子要素 <Claim> で標準の JWT ヘッダー algtyp を使用しないでください。

上記の Verify JWT ポリシーの例を修正するには、<AdditionalHeaders> 要素の子要素 <Claim> に名前 x5c を使用します。

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidTypeForAdditionalHeader

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision revision_number
Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).

エラー メッセージの例

Error Saving Revision 2
Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim1) type(integer).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、Verify JWT ポリシーの <AdditionalHeaders> 要素の子要素 <Claim> で使用されているクレームの型が、次のいずれにも該当しない場合に発生します。

string(デフォルト)、numberboolean、または map

たとえば、<AdditionalHeaders> 要素の中でクレームの型に integer を使用すると、エラーが発生します。

診断

  1. エラー メッセージから Verify JWT ポリシー名、クレーム名、クレームの型を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256、クレーム名は claim、クレームの型は integer です。

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. エラーが発生した Verify JWT ポリシー XML の <AdditionalClaims> 要素で使用されているクレーム名と型が、ステップ 1 のエラー メッセージで特定されたクレーム名と型に一致していることを確認します。たとえば、次のポリシーでは、クレームを claim、クレームの型を integer, として指定しており、エラー メッセージの内容と一致します。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </VerifyJWT>
    
  3. <AdditionalHeaders> 要素の子要素 <Claim> で使用されたクレームの型が次の型に該当するかどうかを確認します。

    string(デフォルト)、numberboolean、または map

    該当する場合は、それがエラーの原因です。

    上記の Verify JWT ポリシーの例では、<AdditionalHeaders> 要素の <Claim> 型が integer と指定されています。integer はサポートされていない型のため、次のエラーが発生します。

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    

解決策

<AdditionalHeaders> 要素の子要素 <Claim> では、サポートされているデータ型(stringnumberbooleanmap)のみが使用されるようにします。

上記の Verify JWT ポリシーの例を修正するには、クレームの型を boolean に変更します。

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidValueOfArrayAttribute

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision revision_number
Invalid value for array attribute: policy(policy_name)claim(claim_name).

エラー メッセージの例

Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、<AdditionalClaims> 要素や <AdditionalHeaders> 要素の子要素 <Claim> の配列属性の値が true または false に設定されていない場合に発生します。

たとえば、<AdditionalClaims> または <AdditionalHeaders> 要素の子要素 <Claim> で、配列属性の値を yes に設定すると、エラーが発生します。

診断

  1. エラー メッセージから Verify JWT ポリシー名とクレーム名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256、クレーム名は claim です。

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. エラーが発生した Verify JWT ポリシーの XML の <AdditionalHeaders> 要素の子要素 <Claim> で使用されているクレームの名前が、ステップ 1 のエラー メッセージで識別されたクレーム名と一致していることを確認します。たとえば、次のポリシーではクレーム名に claim が指定されており、エラー メッセージの内容と一致します。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. <AdditionalClaims> 要素の子要素 <Claim>array 属性の値が、true または false に設定されていない場合、これがエラーの原因です。

    上記の例では、<AdditionalClaims> 要素の子要素 <Claim>array 属性が yes に設定されているため、次のエラーが発生します。

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    

解決策

<AdditionalClaims> 要素または <AdditionalHeaders> 要素の子要素 <Claim> で配列属性の値が、true または false に設定されているかを確認してください。

上記の Verify JWT ポリシーの例を修正するには、配列属性の値を true に変更します。

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidValueForElement

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision
Invalid Value for element : policy(policy_name) element(element_name).

エラー メッセージの例

Error Saving Revision
Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、<Algorithm> 要素で指定された値が、次のいずれにも該当しない場合に発生します。

HS256HS384HS512RS256RS384RS512

たとえば、<Algorithm> 要素でアルゴリズムの値を RS128 に設定すると、このエラーが発生します。

診断

  1. エラー メッセージから Verify JWT ポリシー名と要素名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256、要素名は Algorithm です。

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. エラーが発生した Verify JWT ポリシーの XML を調べ、<Algorithm> 要素に指定された値を確認します。

    Verify JWT ポリシーの例を次に示します。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS128</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </VerifyJWT>
    
  3. <Algorithm> 要素に指定された値を調べます。次の値のいずれかに該当するかどうかを確認します。

    HS256HS384HS512RS256RS384RS512

    該当する場合は、それがエラーの原因です。

    上記の Verify JWT ポリシーの例では、<Algorithm> 名に HS128 が指定されています。これはサポートされていないアルゴリズムのため、次のエラーが発生します。

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    

解決策

<Algorithm> 要素には、サポートされている次の値のいずれかが指定されるようにします。

HS256HS384HS512RS256RS384RS512

上記の Verify JWT ポリシーの例を修正するには、<SecretKey> 要素を使用して、<Algorithm> の値を HS25 に変更します。<SecretKey> 要素を使用する場合は、HS ファミリー アルゴリズムのみ使用できます。

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

MissingConfigurationElement

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision
Missing configuration element : policy(policy_name) element(element_name).

エラー メッセージの例

Error Saving Revision
Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、Verify JWT ポリシー内の RSA ファミリー アルゴリズムで <PublicKey> 要素が使用されていない場合に発生します。同様に、Verify JWT ポリシー内の HS ファミリー アルゴリズムで <SecretKey> 要素が使用されていない場合にも、このエラーが発生します。

たとえば、RSA ファミリー アルゴリズムで <PublicKey> 要素が使用されていない場合、このエラーが発生します。

診断

  1. エラー メッセージから Verify JWT ポリシー名と、欠落している要素名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256 で、欠落している要素名は PublicKey です。

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. エラーが発生した Verify JWT ポリシーの XML を調べ、エラー メッセージに示されている要素が欠落していることを確認します。要素がない場合は、それがエラーの原因です。

    たとえば、次のポリシーでは、PublicKey が欠落していて、使用している AlgorithmRS256 であることを示しています。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    上記の Verify JWT ポリシーの例では HS ファミリー アルゴリズムが使用されていますが、必須の要素である PublicKey が欠落しているため、次のエラーが発生します。

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    

解決策

必須の <PublicKey> 要素は RSA ファミリー アルゴリズムで使用され、必須の <SecretKey> 要素は HS ファミリー アルゴリズムで使用されるようにします。

上記の RS256 アルゴリズムを使用する Verify JWT ポリシーの例を修正するには、Verify JWT ポリシーに <PublicKey> 要素を追加します。

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Algorithm>RS256</Algorithm>
    <PublicKey>
      <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidKeyConfiguration

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

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

エラー メッセージの例

Error Saving Revision 2
Invalid Key configuration : policy(JWT-Verify-RS256).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、子要素 <Value> または必須の子要素 <JWKS> が、Verify JWT ポリシーの <PublicKey> 要素または <SecretKey> 要素で定義されていない場合に発生します。

診断

  1. エラー メッセージから Verify JWT ポリシー名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256 です。

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. エラーが発生した Verify JWT ポリシーの XML を調べ、子要素 <Value> または子要素 <JWKS><PublicKey> 要素または <SecretKey> 要素で定義されていないかどうかを確認します。子要素が定義されていない場合は、それがエラーの原因です。

    たとえば、次のポリシーでは、子要素 <Value> または <JWKS><PublicKey> 要素で定義されていないことを示しています。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <PublicKey>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Verify JWT ポリシーの <PublicKey> 要素で、子要素 <Value> または <JWKS> が定義されていないため、次のエラーが発生します。

    Invalid Key configuration : policy(JWT-Verify-RS256).
    

解決策

Verify JWT ポリシーの <PublicKey> 要素で子要素 <Value> または <JWKS> を必ず定義してください。

上記の Verify JWT ポリシーの例を修正するには、以下に示すように、<PublicKey> 要素で子要素 <Value> または <JWKS> を定義します。

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</PublicJWT>

EmptyElementForKeyConfiguration

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision revision_number
Empty Element for Key Configuration : policy(policy_name) element(element_name).

エラー メッセージの例

Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、<PublicKey> 要素の子要素 <Value> または <JWKS> で、参照属性が指定されていないか空の場合に発生します。

たとえば、<PublicKey> 要素の子要素 <Value> が空の場合、このエラーが発生します。

診断

  1. エラー メッセージから空の Verify JWT ポリシー名と要素名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256、要素名は PublicKey/Value です。

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. エラーが発生した Verify JWT ポリシーの XML を調べ、ステップ 1 で特定された要素が空であることを確認します。要素が空の場合は、それがエラーの原因です。

    たとえば、次のポリシーでは、<PublicKey> 要素の子要素 <Value> が空であることを示しています。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <PublicKey>
            <Value/>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Verify JWT ポリシーの <PublicKey> 要素の子要素 <Value> が空であるため、次のエラーが発生します。

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
    

解決策

<PublicKey> 要素の子要素 <Value> または <JWKS> には、参照属性を必ず指定してください。

上記の Verify JWT ポリシーの例を修正するには、<PublicKey> 要素の子要素 <Value> でフロー変数 public.publickey を使用します。

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidConfigurationForVerify

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision revision_number
Invalid configuration element for verify : policy(policy_name) element(element_name).

エラー メッセージの例

Error Saving Revision 3
Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、Verify JWT ポリシーの <SecretKey> 要素内で、要素 <Id> が定義されている場合に発生します。

たとえば、要素 <Id><SecretKey> 要素で定義されている場合、このエラーが発生します。

診断

  1. エラー メッセージから Verify JWT ポリシー名と無効な要素名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256 で、要素名は SecretKey/Id です。

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. エラーが発生した Verify JWT ポリシーの XML を調べ、ステップ 1 で特定された無効な要素が定義されていることを確認します。無効な要素が定義されている場合、それがエラーの原因です。

    たとえば、次のポリシーでは、<SecretKey> 要素の子要素 <Id> が定義されていることを示しています。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id/>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    要素 <Id> が Verify JWT ポリシーの <SecretKey> 要素内で定義されているため、次のエラーが発生します。

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    

解決策

Verify JWT ポリシーの <SecretKey> 要素内で、要素 <Id> が定義されていないことを確認します。

上記の Verify JWT ポリシー例を修正するには、<SecretKey> 要素から子要素 <Id> を削除します。

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref='private.secretkey'/>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidEmptyElement

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision 
Invalid empty element : policy(policy_name) element(element_name).

エラー メッセージの例

Error Saving Revision 3
Invalid empty element : policy(JWT-Verify-HS256) element(Source).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、Verify JWT ポリシーの <Source> 要素が空の場合に発生します。存在する場合は、Edge フロー変数名で定義する必要があります。

診断

  1. エラー メッセージから Verify JWT ポリシー名と空の要素名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256 で、要素名は PublicKey/Value です。

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. エラーが発生した Verify JWT ポリシーの XML を調べ、ステップ 1 で特定された要素が空であることを確認します。要素が空の場合は、それがエラーの原因です。

    たとえば、次のポリシーでは、要素 <Source> が空であることを示しています。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Source></Source>
        <PublicKey>
            <Value ref="public.publickey"/>
        </PublicKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </VerifyJWT>
    

    Verify JWT ポリシーの <Source> 要素が空のため、次のエラーが発生します。

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    

解決策

Verify JWT ポリシーの <Source> 要素が存在する場合は、フロー変数を指定しているか確認してください。

上記の Verify JWT ポリシーの例を修正するには、<Source> 要素で有効なフロー変数を使用します。

<VerifyJWT name="JWT-Verify-RS256">
    <DisplayName>JWT Verify RS256</DisplayName>
    <Algorithm>RS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Source>jwt-variable</Source>
    <PublicKey>
        <Value ref="public.publickey"/>
    </PublicKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</VerifyJWT>

InvalidPublicKeyValue

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision revision_number
Invalid Public Key Value in Configuration : policy(policy_name) element(element_name).

エラー メッセージの例

Error Saving Revision 2
Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、<PublicKey> 要素の子要素 <JWKS> で使用されている値が、RFC 7517 で指定された有効な形式でない場合に発生します。

たとえば、<PublicKey> 要素の子要素 <JWKS> の値として abc が使用されている場合、このエラーが発生します。

診断

  1. エラー メッセージから、無効な値を含む Verify JWT ポリシー名と要素名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-RS256 で、要素は PublicKey/JWKS です。

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. エラーが発生した Verify JWT ポリシーの XML を調べ、ステップ 1 で特定された要素に、RFC 7517 に従った有効な形式の値が含まれていることを確認します。要素の値の形式が正しくない場合、これがエラーの原因です。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
            <JWKS>abc<JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>
    

    <PublicKey> 要素の子要素 <JWKS> の値が RFC 7517 に従った有効な形式ではないため、次のエラーが発生します。

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    

解決策

<PublicKey> 要素の子要素 <JWKS> で指定された値が、有効な JWKS 形式(RFC 7517)の有効な文字列またはフロー変数であることを確認してください。

上記の Verify JWT ポリシーの例を修正するには、次のように <JWKS> の値を変更します。

    <VerifyJWT name="JWT-Verify-RS256">
        <DisplayName>JWT Verify RS256</DisplayName>
        <Algorithm>RS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PublicKey>
        <JWKS>eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ.-xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM</JWKS>
        </PublicKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
    </VerifyJWT>

InvalidConfigurationForActionAndAlgorithm

エラー メッセージ

Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

Error Saving Revision <var>revision_number</var>
Invalid configuration element for this action and algorithm Family: policy(<var>policy_name</var>) element(<var>element_name</var>) action(<var>action_name</var>) family(<var>family_name</var>).

エラー メッセージの例

Error Saving Revision
Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).

スクリーンショットの例

Edge UI に、エラーを示すダイアログ ボックスが表示されます。

原因

このエラーは、<PublicKey> 要素が HS ファミリー アルゴリズムで使用され、<SecretKey> 要素が RSA ファミリー アルゴリズムで使用される場合に発生します。また、この条件のどちらかが満たされる場合にも発生します。

たとえば、<PublicKey> 要素を HS ファミリー アルゴリズムで使用すると、このエラーが発生します。

診断

  1. エラー メッセージから、Verify JWT ポリシー名、要素名、アルゴリズム ファミリー名を特定します。たとえば、次のエラー メッセージでは、Verify JWT ポリシー名は JWT-Verify-HS256、要素名は PublicKey、アルゴリズム ファミリー名は RSA です。

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. エラーが発生した Verify JWT ポリシー XML で使用されている要素とアルゴリズム ファミリーが、ステップ 1 のエラー メッセージで特定された要素とアルゴリズム ファミリーと一致していることを確認します。たとえば、次のポリシーでは、要素を PublicKey、アルゴリズム ファミリーを HMAC と指定しています。これはエラー メッセージの内容と一致します。

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <PublicKey>
            <Value ref="var-value"/>
        </PublicKey>
        <SecretKey>
            <Value ref="private.secretkey"/>
        </SecretKey>
            <ExpiresIn>1h</ExpiresIn>
            <Subject>monty-pythons-flying-circus</Subject>
            <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
        </VerifyJWT>
    
  3. <Algorithm> 要素の値は HS256 ですが、<PublicKey> を使用しているため、これがエラーの原因になります。

    上記の Verify JWT ポリシーの例では、<Algorithm> がファミリー アルゴリズム HS256 に設定されているにもかかわらず、<PublicKey> 要素が使用されているため、次のエラーが発生します。

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    

解決策

<PublicKey> 要素は RSA ファミリー アルゴリズムでのみ使用し、<SecretKey> 要素は HS ファミリー アルゴリズムでのみ使用します。

上記の Verify JWT ポリシーの例を修正するには、HS256 アルゴリズムを使用する Verify JWT ポリシーの <SecretKey> を使用します。

    <VerifyJWT name="JWT-Verify-HS256">
        <DisplayName>JWT Verify HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request.formparam.jwt</Source>
        <SecretKey>
        <Value ref="private.secretkey"/>
    </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
    </VerifyJWT>