VerifyJWT 정책 배포 오류 문제 해결

ApigeeApigee Hybrid 문서입니다.
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. 오류 메시지에서 JWT 확인 정책 이름과 클레임 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256이고 클레임 이름은 iss입니다.

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. 실패한 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'

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

    위에 표시된 JWT 확인 정책 예시에서 <Claim> 이름은 <AdditionalClaims> 요소 아래에 iss로 지정되며 오류가 발생합니다.

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

해결 방법

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

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(기본값), number, boolean, map

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

진단

  1. 오류 메시지에서 JWT 확인 정책 이름, 클레임 이름, 유형을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256, 클레임 이름은 claim, 유형은 integer:입니다.

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. 실패한 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(기본값), number, boolean, map

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

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

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

해결 방법

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

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. 오류 메시지에서 JWT 확인 정책 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256입니다.

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. 실패한 JWT 확인 정책 XML을 검사하고 <AdditionalClaims> 또는 <AdditionalHeaders> 요소의 하위 요소 <Claims>에 클레임 이름이 누락되었는지 확인합니다. 예를 들어 다음 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>
    

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

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

해결 방법

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

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. 오류 메시지에서 JWT 확인 정책 이름과 헤더 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256이고 헤더 이름은 alg입니다.

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. 실패한 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

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

    위에 표시된 JWT 확인 정책 예시에서 <Claim> 이름은 <AdditionalClaims> 요소 아래에 alg로 지정되며 오류가 발생합니다.

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

해결 방법

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

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에서 오류가 포함된 대화상자가 표시됩니다.

추가 헤더 오류 메시지의 유형이 잘못되었습니다.

원인

JWT 확인 정책에서 <AdditionalHeaders> 요소의 하위 요소 <Claim>에서 사용된 클레임 유형이 다음 유형 중 하나가 아닌 경우 오류가 발생합니다.

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

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

진단

  1. 오류 메시지에서 JWT 확인 정책 이름, 클레임 이름, 유형을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256이고 클레임 이름은 claim, 유형은 integer입니다.

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. 실패한 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(기본값), number, boolean, map

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

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

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

해결 방법

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

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. 오류 메시지에서 JWT 확인 정책 이름과 클레임 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256이고 클레임 이름은 claim입니다.

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. 실패한 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로 설정되었는지 확인합니다.

위에 표시된 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> 요소에 지정된 값이 다음 값 중 하나가 아닌 경우에 발생합니다.

HS256, HS384, HS512, RS256, RS384, RS512

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

진단

  1. 오류 메시지에서 JWT 확인 정책 이름과 요소 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256이고 요소 이름은 Algorithm입니다.

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

    다음은 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> 요소에 지정된 값을 검사합니다. 다음 값 중 하나가 아닌 경우,

    HS256, HS384, HS512, RS256, RS384, RS512

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

    위에 표시된 JWT 확인 예시에서 <Algorithm> 이름은 HS128로 지정됩니다. 지원되는 알고리즘이 아니기 때문에 오류가 발생합니다.

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

해결 방법

<Algorithm> 요소에 지정된 값이 지원되는 값 중 하나인지 확인합니다.

HS256, HS384, HS512, RS256, RS384, RS512

위에 표시된 <SecretKey> 요소가 사용되는 JWT 확인 정책 예시를 수정하려면 <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에서 오류가 포함된 대화상자가 표시됩니다.

누락된 구성 요소를 나타내는 오류 메시지

원인

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

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

진단

  1. 오류 메시지에서 JWT 확인 정책 이름과 누락된 요소 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256이고 누락된 요소 이름은 PublicKey입니다.

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. 실패한 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>
    

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

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

해결 방법

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

RS256 알고리즘을 사용하는 위에 표시된 JWT 확인 정책 예시를 수정하려면 <PublicKey> 요소를 VerifyJWT 정책에 추가합니다.

<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에서 오류가 포함된 대화상자가 표시됩니다.

잘못된 키 구성을 나타내는 오류 메시지

원인

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

진단

  1. 오류 메시지에서 JWT 확인 정책 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256입니다.

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. 실패한 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>
    

    하위 요소 <Value> 또는 <JWKS>가 JWT 확인 정책의 <PublicKey> 요소에 정의되어 있지 않으므로 다음 오류가 발생합니다.

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

해결 방법

하위 요소 <Value> 또는 <JWKS>가 항상 JWT 확인 정책의 <PublicKey> 요소에 정의되어 있는지 확인합니다.

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>에 ref 속성이 지정되지 않거나 비어 있는 경우에 발생합니다.

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

진단

  1. 오류 메시지에서 JWT 확인 정책 이름 및 비어 있는 요소 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256이고 요소 이름은 PublicKey/Value입니다.

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. 실패한 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>
    

    JWT 확인 정책의 <PublicKey> 요소 중 하위 요소 <Value>가 비어 있으므로 다음 오류가 발생합니다.

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

해결 방법

<PublicKey> 요소의 하위 요소 <Value> 또는 <JWKS>의 ref 속성이 항상 지정되어 있는지 확인합니다.

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에서 오류가 포함된 대화상자가 표시됩니다.

확인을 위한 잘못된 구성 요소를 나타내는 오류 메시지

원인

이 오류는 <Id> 요소가 VerifyJWT 정책의 <SecretKey> 요소 내에 정의된 경우 발생합니다.

예를 들어 <Id> 요소가 <SecretKey> 요소에 정의된 경우 이 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 확인 정책 이름과 잘못된 요소 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256이고 요소 이름은 SecretKey/Id입니다.

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. 실패한 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> 요소는 JWT 확인 정책의 <SecretKey> 요소 내에 정의되므로 오류가 발생합니다.

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

해결 방법

<Id> 요소가 JWT 확인 정책의 <SecretKey> 요소 내에 정의되지 않았는지 확인합니다.

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에서 오류가 포함된 대화상자가 표시됩니다.

잘못된 빈 요소를 나타내는 오류 메시지

원인

이 오류는 JWT 확인 정책의 <Source> 요소가 비어 있는 경우에 발생합니다. 이 요소가 있는 경우 흐름 변수 이름으로 정의해야 합니다.

진단

  1. 오류 메시지에서 JWT 확인 정책 이름과 비어 있는 요소 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256이고 요소 이름은 PublicKey/Value입니다.

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. 실패한 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>
    

    JWT 확인 정책의 <Source> 요소가 비어 있기 때문에 다음 오류가 발생합니다.

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

해결 방법

JWT 확인 정책의 <Source> 요소가 있는 경우 흐름 변수를 지정해야 합니다.

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에 지정된 올바른 형식이 아닌 경우에 발생합니다.

예를 들어 abc<PublicKey> 요소 아래의 하위 요소 값 <JWKS>로 사용하면 이 오류가 발생합니다.

진단

  1. 오류 메시지에서 JWT 확인 정책 이름과 잘못된 값이 포함된 요소 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 JWT 확인 정책 이름은 JWT-Verify-RS256이고 요소가 PublicKey/JWKS입니다.

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. 실패한 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)인지 확인합니다.

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 계열 알고리즘에 사용될 경우에 발생합니다. 또한 이러한 조건 중 하나라도 true이면 오류가 발생합니다.

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

진단

  1. 오류 메시지에서 JWT 확인 정책 이름, 요소 이름, 알고리즘 계열 이름을 식별합니다. 예를 들어 다음 오류 메시지에서 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. 실패한 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>를 사용한 경우 이것이 오류의 원인입니다.

    위에 표시된 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 계열 알고리즘에만 사용되는지 확인합니다.

JWT 확인 정책 예시를 수정하려면 HS256 알고리즘을 사용하는 VerifyJWT 정책의 <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>