GenerateJWT 정책 배포 오류 문제 해결

ApigeeApigee Hybrid 문서입니다.
Apigee Edge 문서 보기

InvalidNameForAdditionalClaim

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 <AdditionalClaims> 요소의 <Claim> 하위 요소에 사용된 클레임 이름이 다음 등록된 이름 중 하나일 때 발생합니다.

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

등록된 클레임은 RFC 7519에 지정되어 있습니다.

예를 들어 <AdditionalClaims> 요소 아래에서 iss 클레임 이름을 사용하면 이 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책의 이름과 클레임 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책 이름은 JWT-Generate-HS256이고 클레임 이름은 iss입니다.

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. 실패한 JWT 생성 정책 XML의 <AdditionalClaims> 요소 아래에 사용된 클레임 이름이 오류 메시지에서 확인된 클레임 이름과 일치하는지 확인합니다(위의 1단계). 예를 들어 다음 정책은 클레임을 오류 메시지에 있는 내용과 일치하는 iss로 지정합니다.

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name="iss"/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. <AdditionalClaims> 요소의 <Claim> 하위 요소에 사용된 클레임 이름이 다음 등록된 이름 중 하나인 경우,

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

    이는 오류의 원인이 됩니다.

    위에 표시된 JWT 생성 정책 예시에서 <Claim> 이름은 <AdditionalClaims> 요소 아래에 iss로 지정되며, 오류를 일으킵니다.

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

해결 방법

<AdditionalClaims> 요소의 <Claim> 하위 요소에 등록된 이름인 'kid', 'iss', 'sub', 'aud', 'iat', 'exp', 'nbf', 'jti'을 사용하지 마세요.

위에 표시된 JWT 생성 정책 예시를 수정하려면 클레임 이름을 status로 변경합니다.

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

InvalidTypeForAdditionalClaim

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 GenerateJWT 정책의 <AdditionalClaims> 요소의 <Claim> 하위 요소에 사용된 클레임 유형이 다음 유형 중 하나가 아닐 때 발생합니다.

string(기본값), number, boolean, map

예를 들어 <AdditionalClaims> 요소 아래에서 integer 클레임 유형을 사용하면 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책의 이름, 클레임 이름, 클레임 유형을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책의 이름은 JWT-Generate-HS256이고, 클레임 이름은 claim이며, 클레임 유형은 integer입니다.

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. 실패한 JWT 생성 정책 XML의 <AdditionalClaims> 요소 아래에 사용된 클레임 이름과 유형이 1단계 오류 메시지에서 확인된 클레임 이름 및 유형과 일치하는지 확인합니다. 예를 들어 다음 정책은 오류 메시지에 표시된 내용과 일치하도록 클레임을 claim으로 지정하고, 유형을 integer로 지정합니다.

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. <AdditionalClaims> 요소의 <Claim> 하위 요소에 사용된 클레임 유형이 다음 유형 중 하나가 아닌 경우,

    string(기본값), number, boolean, map

    이는 오류의 원인이 됩니다.

    위에 표시된 JWT 생성 정책 예시에서 <AdditionalClaims> 요소 아래의 <Claim> 유형은 integer로 지정됩니다. integer가 지원되는 유형이 아니므로 오류가 발생합니다.

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

해결 방법

string, number, boolean, map과 같은 지원되는 데이터 유형만 <AdditionalClaims> 요소의 <Claim> 하위 요소에 사용되는지 확인합니다.

위에 표시된 JWT 생성 정책 예시를 수정하려면 클레임 유형을 boolean으로 변경합니다.

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

MissingNameForAdditionalClaim

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 클레임 이름이 <AdditionalClaims> 또는 <AdditionalHeaders> 요소의 <Claim> 하위 요소에 지정되지 않은 경우에 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책의 이름은 JWT-Generate-HS256입니다.

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. 실패한 JWT 생성 정책 XML을 검사하고 <AdditionalClaims> 또는 <AdditionalHeaders> 요소의 <Claims> 하위 요소에 클레임 이름이 누락되었는지 확인합니다. 예를 들어 다음 JWT 생성 정책은 <AdditionalClaims> 요소 아래에 클레임 이름을 지정하지 않습니다.

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

    <Claim> 이름이 <AdditionalClaims> 요소 아래에 지정되지 않았기 때문에 오류가 발생합니다.

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

해결 방법

클레임 이름이 항상 <AdditionalClaims> 또는 <AdditionalHeaders> 요소의 <Claim> 하위 클레임에 지정되었는지 확인합니다.

위에 표시된 JWT 생성 정책 예시를 수정하려면 아래 표시된 것처럼 클레임 이름을 지정합니다.

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

InvalidNameForAdditionalHeader

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 <AdditionalHeaders> 요소의 <Claim> 하위 요소에 사용된 클레임 이름이 다음 표준 JWT 헤더 중 하나인 경우에 발생합니다.

alg 또는 typ

예를 들어 <AdditionalHeaders> 요소 아래에 alg 클레임 이름을 사용하면 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책의 이름과 헤더 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책 이름은 JWT-Generate-HS256이고 헤더 이름은 alg입니다.

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. 실패한 JWT 생성 정책 XML에 있는 <AdditionalHeaders> 요소의 <Claim> 하위 요소에 사용된 헤더 이름이 1단계 오류 메시지에서 확인된 헤더 이름과 일치하는지 확인합니다. 예를 들어 다음 정책은 헤더를 오류 메시지에 있는 것과 일치하는 alg로 지정합니다.

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. <AdditionalClaims> 요소의 <Claim> 하위 요소에 사용된 헤더 이름이 다음 표준 JWT 헤더 중 하나인 경우,

    alg 또는 typ

    이는 오류의 원인이 됩니다.

    위에 표시된 JWT 생성 정책 예시에서 <Claim> 이름은 <AdditionalClaims> 요소 아래에 alg로 지정되며, 오류를 일으킵니다.

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

해결 방법

<AdditionalHeaders> 요소의 <Claim> 하위 요소에는 표준 JWT 헤더 alg 또는 typ를 사용하지 마세요.

위에 표시된 JWT 생성 정책 예시를 수정하려면 <AdditionalHeaders> 요소의 <Claim> 하위 요소에 x5c 이름을 사용하세요.

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

InvalidTypeForAdditionalHeader

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 GenerateJWT 정책의 <AdditionalHeaders> 요소에 해당하는 <Claim> 하위 요소에 사용되는 클레임 유형이 다음 유형 중 하나가 아닌 경우에 발생합니다.

string(기본값), number, boolean, map.

예를 들어 <AdditionalHeaders> 요소 아래에 integer 클레임 유형을 사용하면 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책의 이름, 클레임 이름, 클레임 유형을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책의 이름은 JWT-Generate-HS256이고, 클레임 이름은 claim,이며, 클레임 유형은 integer:입니다.

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. 실패한 JWT 생성 정책 XML의 <AdditionalClaims> 요소 아래에 사용된 클레임 이름과 유형이 1단계 오류 메시지에서 확인된 클레임 이름 및 클레임 유형과 일치하는지 확인합니다. 예를 들어 다음 정책은 오류 메시지에 표시된 내용과 일치하도록 클레임을 claim으로 지정하고, 클레임 유형을 integer로 지정합니다.

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. <AdditionalHeaders> 요소의 <Claim> 하위 요소에 사용된 클레임 유형이 다음 유형 중 하나가 아닌 경우,

    string(기본값), number, boolean, map

    이는 오류의 원인이 됩니다.

    위에 표시된 JWT 생성 정책 예시에서 <AdditionalHeaders> 요소 아래의 <Claim> 유형은 integer로 지정됩니다. integer가 지원되는 유형이 아니므로 오류가 발생합니다.

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

해결 방법

지원되는 유일한 데이터 유형인 string, number, boolean, map<AdditionalHeaders> 요소의 <Claim> 하위 요소에 사용되는지 확인합니다.

위에 표시된 JWT 생성 정책 예시를 수정하려면 클레임 유형을 boolean으로 변경합니다.

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

InvalidValueOfArrayAttribute

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 <AdditionalClaims> 또는 <AdditionalHeaders> 요소의 <Claim> 하위 요소에 있는 배열 속성의 값이 true 또는 false로 설정되지 않은 경우에 발생합니다.

예를 들어 <AdditionalClaims> 또는 <AdditionalHeaders><Claim> 하위 요소에서 배열 속성의 값을 yes로 설정하면 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책의 이름과 클레임 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책 이름은 JWT-Generate-HS256이고 클레임 이름은 claim:입니다.

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. 실패한 JWT 생성 정책 XML에 있는 <AdditionalHeaders> 요소의 <Claim> 하위 요소에 사용된 클레임 이름이 1단계 오류 메시지에서 확인된 클레임 이름과 일치하는지 확인합니다. 예를 들어 다음 정책은 클레임 이름을 오류 메시지에 있는 내용과 일치하는 claim으로 지정합니다.

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. <AdditionalClaims> 요소의 <Claim> 하위 요소에서 array 속성의 값이 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidConfigurationForActionAndAlgorithm

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 <PrivateKey> 요소가 HS 계열 알고리즘에 사용되고 <SecretKey> 요소가 RSA 계열 알고리즘에 사용될 경우에 발생합니다. 또한 이러한 조건 중 하나라도 true이면 오류가 발생합니다.

예를 들어 HS 계열 알고리즘에 <PrivateKey> 요소를 사용하면 이 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책의 이름, 요소 이름, 알고리즘 계열 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책의 이름은 JWT-Generate-HS256, 요소 이름은 PrivateKey, 알고리즘 계열은 HMAC입니다.

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. 실패한 JWT 생성 정책 XML에 사용된 요소 및 알고리즘 계열이 1단계 오류 메시지에서 확인된 요소 및 알고리즘 계열과 일치하는지 확인합니다. 예를 들어 다음 정책은 오류 메시지와 일치하도록 요소를 PrivateKey로 지정하고 알고리즘 계열을 HMAC로 지정합니다.

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PrivateKey>
            <Password ref="private.privatekey-password"/>
    
        </PrivateKey>
            <ExpiresIn>1h</ExpiresIn>
            <Subject>monty-pythons-flying-circus</Subject>
            <Issuer>urn://apigee-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
            <Id/>
            <AdditionalClaims>
                <Claim name='claim' ref='reqclaim' type='string' array=tuu
        =/>
            </AdditionalClaims>
        </GenerateJWT>
    
  3. <Algorithm> 요소의 값이 HS256이지만 <PrivateKey>를 사용한 경우 이것이 오류의 원인입니다.

    위에 표시된 JWT 생성 정책 예시에서 <PrivateKey><PrivateKey>HS256 계열 알고리즘으로 설정되어 있더라도 사용되므로 오류가 발생합니다.

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

해결 방법

<PrivateKey> 요소가 RSA 계열 알고리즘에만 사용되고 <SecretKey> 요소가 HS 계열 알고리즘에만 사용되는지 확인합니다.

위에 표시된 JWT 생성 정책을 수정하려면 HS256 알고리즘을 사용하는 GenerateJWT 정책에서 <SecretKey>를 사용합니다.

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

InvalidValueForElement

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

Error Saving Revision 2
Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 <Algorithm> 요소에 지정된 값이 다음 값 중 하나가 아닌 경우에 발생합니다.

HS256, HS384, HS512, RS256, RS384, RS512

예를 들어 알고리즘 값을 <Algorithm> 요소에서 RS128로 지정하면 이 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책의 이름과 요소 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책 이름은 JWT-Generate-HS256이고 요소 이름은 Algorithm.입니다.

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    
  2. 실패한 JWT 생성 정책 XML을 검사하고 <Algorithm> 요소에 지정된 값을 확인합니다.

    다음은 JWT 생성 정책 샘플입니다.

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS128</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. <Algorithm> 요소에 지정된 값을 검사합니다. 다음 값 중 하나가 아닌 경우,

    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> 요소가 사용되는 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

MissingConfigurationElement

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

Error Saving Revision 2
Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 JWT 생성 정책에서 <PrivateKey> 요소가 RSA 계열 알고리즘과 함께 사용되지 않은 경우에 발생합니다. 마찬가지로 JWT 생성 정책에서 <SecretKey> 요소가 HS 계열 알고리즘과 함께 사용되지 않은 경우에도 이 오류가 발생합니다.

예를 들어 RSA 계열 알고리즘에 <PrivateKey> 요소를 사용하지 않으면 이 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책의 이름과 누락된 요소 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책의 이름은 JWT-Generate-HS256이고 누락된 요소 이름은 SecretKey입니다.

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. 실패한 JWT 생성 정책 XML을 검사하고 오류 메시지에 표시된 요소가 누락되었는지 확인합니다. 누락되었으면 이것이 오류의 원인입니다.

    예를 들어 다음 정책에서 SecretKey가 누락되었고 사용된 AlgorithmHS256입니다.

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

    JWT 생성 정책 예시에 HS 계열 알고리즘이 사용되지만, 필수 요소인 SecretKey가 누락되었기 때문에 오류가 발생합니다.

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

해결 방법

필수 <PrivateKey> 요소가 RSA 계열 알고리즘에 사용되었고 필수 <SecretKey> 요소가 HS 계열 알고리즘에 사용되었는지 확인합니다.

위에 표시된 HS256 알고리즘이 사용되는 JWT 생성 정책 예시를 수정하려면 JWT 생성 정책에 <SecretKey> 요소를 추가합니다.

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

InvalidKeyConfiguration

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 3을 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 필수 하위 요소 <Value>가 JWT 생성 정책의 <PrivateKey> 또는 <SecretKey> 요소에 정의되지 않은 경우에 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책의 이름은 JWT-Generate-HS256입니다.

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. 실패한 JWT 생성 정책 XML을 검사하고 <Value> 하위 요소가 <PrivateKey> 또는 <SecretKey> 요소에 정의되지 않았는지 확인합니다. <Value>가 정의되지 않았으면 이것이 오류의 원인입니다.

    예를 들어 다음 정책에서 <Value> 하위 요소는 <SecretKey> 요소에 정의되지 않았습니다.

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

    <Value> 하위 요소가 JWT 생성 정책의 <SecretKey> 요소에 정의되지 않았기 때문에 오류가 발생합니다.

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

해결 방법

<Value> 하위 요소가 JWT 생성 정책의 <PrivateKey> 또는 <SecretKey> 요소에 항상 정의되는지 확인합니다.

위에 표시된 JWT 생성 정책 예시를 수정하려면 아래 표시된 것처럼 <SecretKey> 요소 아래에 <Value> 하위 요소를 정의합니다.

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

EmptyElementForKeyConfiguration

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 <PrivateKey> 또는 <SecretKey> 요소의 <Value> 하위 요소에 있는 ref 속성이 지정되지 않았거나 비어 있을 때 발생합니다.

예를 들어 <SecretKey> 요소의 <Value> 하위 요소가 비어 있으면 이 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책의 이름과 빈 요소 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책의 이름은 JWT-Generate-HS256이고 빈 요소 이름은 SecretKey/Value입니다.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. 실패한 JWT 생성 정책 XML을 검사하고 1단계에서 확인한 요소가 비어 있는지 확인합니다. 비어 있으면 이것이 오류의 원인입니다.

    예를 들어 다음 정책은 <SecretKey> 요소의 <Value> 하위 요소가 비어 있는 것을 보여줍니다.

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

    JWT 생성 정책에서 <SecretKey> 요소의 <Value> 하위 요소가 비어 있기 때문에 오류가 발생합니다.

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

해결 방법

<PrivateKey> 또는 <SecretKey> 요소의 <Value> 하위 요소에 있는 ref 속성이 항상 지정되었고 'private.' 프리픽스를 포함하는지 확인합니다.

위에 표시된 JWT 생성 정책 예시를 수정하려면 <SecretKey> 요소의 <Value> 하위 요소에 private.privatekey 흐름 변수를 사용합니다.

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

InvalidVariableNameForSecret

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

Error Saving Revision 2
Invalid variable name for secret : policy(policy_name) element(element_name).

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

이 오류는 <PrivateKey> 또는 <SecretKey> 요소의 <Value> 하위 요소에 있는 ref 속성에 지정된 흐름 변수 이름에 비공개 프리픽스(private.)가 포함되지 않은 경우에 발생합니다.

예를 들면 다음과 같습니다.

<PrivateKey> 요소의 <Value> 하위 요소에 있는 ref 속성에서 흐름 변수 이름이 mykey로 지정된 경우 이 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 생성 정책의 이름과 변수 이름이 잘못된 요소의 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책 이름은 JWT-Generate-HS256이고 요소 이름은 SecretKey/Value입니다.

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. 실패한 JWT 생성 정책 XML을 검사하고 1단계에서 확인된 요소에 사용된 변수 이름을 확인합니다. 변수 이름에 private. 프리픽스가 없으면 이것이 오류의 원인입니다.

    예를 들어 다음 정책은 <SecretKey> 요소의 <Value> 하위 요소에 잘못된 변수 이름 mykey가 포함된 것을 보여줍니다.

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

    JWT 생성 정책의 <SecretKey> 요소의 <Value> 하위 요소에 지정된 변수 이름에 private. 프리픽스가 포함되지 않기 때문에 이 오류가 발생합니다.

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

해결 방법

<PrivateKey> 또는 <SecretKey> 요소의 <Value> 하위 요소에 ref 속성이 항상 지정되었고 private. 프리픽스를 포함하는지 확인합니다.

위에 표시된 JWT 생성 정책 예시를 수정하려면 <SecretKey> 요소의 <Value> 하위 요소에 private.privatekey 흐름 변수를 사용합니다.

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

InvalidSecretInConfig

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(policy_name) element(element_name).

오류 메시지 예시

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

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 2를 저장하는 중에 오류가 발생했습니다.

원인

JWT 생성 정책에서 값(보안 비밀)이 다음 위치에 명시적으로 지정된 경우,

  • <PrivateKey> 요소의 <Value> 또는 <Password> 하위 요소 또는
  • <SecretKey> 요소의 <Value> 하위 요소

이 오류가 발생합니다.

예를 들어 보안 비밀이 <SecretKey> 요소의 <Value> 하위 요소에 abc로 명시적으로 지정된 경우 이 오류가 발생합니다.

진단

  1. 오류 메시지에서 보안 비밀이 명시적으로 지정된 JWT 생성 정책의 이름 및 요소 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책 이름은 JWT-Generate-HS256이고 요소 이름은 SecretKey/Value입니다.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. 실패한 JWT 생성 정책 XML을 검사하고 1단계에서 확인된 요소에 보안 비밀이 명시적으로 지정되었는지 확인합니다. 명시적으로 지정된 경우 이것이 오류의 원인입니다.

    예를 들어 다음 정책은 보안 비밀이 <SecretKey> 요소의 <Value> 하위 요소에 명시적으로 지정된 것을 보여줍니다.

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

    JWT 생성 정책의 <SecretKey> 요소의 <Value> 하위 요소에 보안 비밀이 명시적으로 지정되었기 때문에 이 오류가 발생합니다.

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

해결 방법

<PrivateKey> 또는 <SecretKey> 요소의 <Value> 하위 요소에 값이 항상 흐름 변수로 지정되었는지 확인합니다.

위에 표시된 JWT 생성 정책 예시를 수정하려면 <SecretKey> 요소의 <Value> 하위 요소에 있는 ref 속성에 private.secretkey 흐름 변수를 사용합니다.

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

InvalidTimeFormat

오류 메시지

다음 오류 메시지와 함께 Apigee UI 또는 API를 통한 API 프록시의 배포가 실패합니다.

Error Saving Revision 2
Invalid Time format: policy(policy_name) element(element_name).

오류 메시지 예시

Error Saving Revision 3
Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).

예시 스크린샷

Apigee UI에서 오류가 포함된 대화상자가 표시됩니다.

버전 3을 저장하는 중에 오류가 발생했습니다.

원인

<NotBefore> 요소에 지정된 값이 지원되는 형식 중 하나가 아니면 이 오류가 발생합니다.

sortable, RFC 1123, RFC 850, ANCI-C

예를 들어 <NotBefore>에 지정된 값이 지원되는 형식이 아닌 20-JUN-1990 08:03이면 이 오류가 발생합니다.

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

진단

  1. 오류 메시지에서 시간 형식이 잘못된 JWT 생성 정책의 이름과 요소 이름을 확인합니다. 예를 들어 다음 오류 메시지에서 JWT 생성 정책 이름은 JWT-Generate-HS256이고 요소 이름은 NotBefore입니다.

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. 실패한 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-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    JWT 생성 정책의 <NotBefore> 요소에 지원되는 시간 형식이 사용되지 않기 때문에 이 오류가 발생합니다.

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

해결 방법

<NotBefore> 요소에 지정된 값에 지원되는 형식 중 하나가 사용되는지 확인합니다.

sortable, RFC 1123, RFC 850, ANCI-C

JWT 생성 정책 예시를 수정하려면 아래 표시된 것처럼 sortable 형식을 사용하도록 <NotBefore> 요소에서 날짜를 수정합니다.

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <NotBefore>2018-08-14T11:00:21-07:00</NotBefore>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>