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

現在、ApigeeApigee ハイブリッドのドキュメントを表示しています。
Apigee Edge のドキュメントを表示する

InvalidNameForAdditionalClaim

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee UI に、エラーを示すダイアログが表示されます。

追加クレームの名前が無効である場合のエラー メッセージ。

原因

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

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

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

たとえば、<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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee 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

エラー メッセージ

Apigee UI または 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

スクリーンショットの例

Apigee 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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee 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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee 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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee 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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee 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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee 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

エラー メッセージ

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

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

エラー メッセージの例

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

スクリーンショットの例

Apigee 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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee 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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee 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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee UI に、エラーを示すダイアログが表示されます。

無効な空要素のエラー メッセージ。

原因

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

診断

  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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee 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

エラー メッセージ

Apigee UI または 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).

スクリーンショットの例

Apigee 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>