पुष्टि के लिए JWT नीति के लागू होने से जुड़ी गड़बड़ी ठीक करना

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

InvalidNameForAdditionalClaim

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब <AdditionalClaims> एलिमेंट के चाइल्ड एलिमेंट <Claim> में इस्तेमाल किए गए दावे का नाम, इनमें से रजिस्टर किए गए नामों में से एक हो:

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

रजिस्टर किए गए दावों की जानकारी RFC7519 में दी गई है.

उदाहरण के लिए, <AdditionalClaims> एलिमेंट में दावे का नाम iss इस्तेमाल करने पर, यह गड़बड़ी हो सकती है.

संक्रमण की जांच

  1. पुष्टि करें JWT नीति की पहचान करें और गड़बड़ी के मैसेज से नाम पर दावा करें. उदाहरण के लिए, नीचे दिए गए गड़बड़ी के मैसेज में, 'JWT की पुष्टि करें' नीति का नाम JWT-Verify-RS256 है और दावे का नाम iss है:

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. पुष्टि करें कि पुष्टि न करने वाली JWT नीति के एक्सएमएल में, <AdditionalClaims> एलिमेंट के तहत इस्तेमाल किए गए दावे का नाम, पहले चरण में गड़बड़ी के मैसेज में बताए गए दावे के नाम से मेल खाता है. उदाहरण के लिए, यह नीति दावे के बारे में 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 की पुष्टि करें' नीति के उदाहरण में, <AdditionalClaims> एलिमेंट के तहत <Claim> नाम को 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

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

पुष्टि करने वाली जेडब्लयूटी नीति के <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 नीति एक्सएमएल में <AdditionalClaims> एलिमेंट के तहत इस्तेमाल किया गया दावा नाम और टाइप, पहले चरण में गड़बड़ी के मैसेज में बताए गए दावे के नाम और टाइप से मेल खाता है. उदाहरण के लिए, इस नीति में दावे को 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 की पुष्टि करें' नीति के उदाहरण में, <AdditionalClaims> एलिमेंट के तहत <Claim> टाइप को integer के तौर पर दिखाया गया है. integer काम नहीं करता, इसलिए आपको गड़बड़ी का यह मैसेज मिल रहा है:

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

रिज़ॉल्यूशन

पक्का करें कि <AdditionalClaims> एलिमेंट के चाइल्ड एलिमेंट <Claim> में, सिर्फ़ काम करने वाले डेटा टाइप string (डिफ़ॉल्ट), number, boolean या map का इस्तेमाल किया गया हो.

JWT की पुष्टि करने की नीति के उदाहरण को सही करने के लिए, दावे के टाइप को बदलकर boolean करें:

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

MissingNameForAdditionalClaim

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब <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 नीति एक्सएमएल की जांच करें और पुष्टि करें कि <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

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब <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 नीति एक्सएमएल के <AdditionalHeaders> एलिमेंट के अंदर, चाइल्ड एलिमेंट <Claim> में इस्तेमाल किया गया हेडर नाम, पहले चरण में गड़बड़ी के मैसेज में पहचाने गए हेडर नाम से मेल खाता है. उदाहरण के लिए, यह नीति हेडर को 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 की पुष्टि करें' नीति के उदाहरण में, <AdditionalClaims> एलिमेंट के तहत <Claim> नाम को 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

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

गड़बड़ी तब होती है, जब पुष्टि करें 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 नीति एक्सएमएल में <AdditionalClaims> एलिमेंट के तहत इस्तेमाल किया गया दावा नाम और टाइप, पहले चरण में गड़बड़ी के मैसेज में बताए गए दावे के नाम और टाइप से मेल खाता है. उदाहरण के लिए, इस नीति में दावे को 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).
    

रिज़ॉल्यूशन

पक्का करें कि <AdditionalHeaders> एलिमेंट के चाइल्ड एलिमेंट <Claim> में, सिर्फ़ काम करने वाले डेटा टाइप string, number, boolean या map का इस्तेमाल किया गया हो.

JWT की पुष्टि करने की नीति के उदाहरण को सही करने के लिए, दावे के टाइप को बदलकर boolean करें:

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

InvalidValueOfArrayAttribute

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब <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 नीति एक्सएमएल में, <AdditionalHeaders> एलिमेंट के तहत चाइल्ड एलिमेंट <Claim> में इस्तेमाल किए गए दावे का नाम, पहले चरण में गड़बड़ी के मैसेज में बताए गए दावे के नाम से मेल खाता है. उदाहरण के लिए, यह नीति दावे के नाम के लिए 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

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब <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 नीति एक्सएमएल की जांच करें और <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

ऊपर दी गई 'JWT की पुष्टि करें' नीति के उदाहरण को ठीक करने के लिए, <Algorithm> की वैल्यू को HS25 में बदलें. इस नीति में <SecretKey> एलिमेंट का इस्तेमाल किया जाता है. ध्यान दें, जब <SecretKey> एलिमेंट का इस्तेमाल किया जाता है, तो सिर्फ़ एचएस फ़ैमिली एल्गोरिदम का इस्तेमाल किया जा सकता है.

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

MissingConfigurationElement

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब पुष्टि करने के JWT की नीति में, आरएसए फ़ैमिली एल्गोरिदम के साथ <PublicKey> एलिमेंट का इस्तेमाल नहीं किया जाता. इसी तरह, गड़बड़ी तब हो सकती है, जब पुष्टि करें JWT की नीति में, <SecretKey> एलिमेंट का इस्तेमाल एचएस फ़ैमिली एल्गोरिदम के साथ नहीं किया गया हो.

उदाहरण के लिए, आरएसए फ़ैमिली एल्गोरिदम के साथ <PublicKey> एलिमेंट का इस्तेमाल न करने पर, यह गड़बड़ी होती है.

संक्रमण की जांच

  1. पुष्टि करें JWT नीति का नाम और गड़बड़ी के मैसेज में मौजूद एलिमेंट के नाम की पहचान करें. उदाहरण के लिए, नीचे दिए गए गड़बड़ी के मैसेज में, 'JWT की पुष्टि करें' नीति का नाम JWT-Verify-RS256 है और PublicKey एलिमेंट का नाम मौजूद नहीं है:

    Missing configuration element : policy(JWT-Verify-RS256) element(PublicKey).
    
  2. पुष्टि नहीं हुई JWT नीति एक्सएमएल की जांच करें और पुष्टि करें कि गड़बड़ी के मैसेज में दिखाया गया एलिमेंट मौजूद नहीं है. अगर वह मौजूद नहीं है, तो इसका मतलब है कि गड़बड़ी इसी वजह से हुई है.

    उदाहरण के लिए, इस नीति से पता चलता है कि PublicKey मौजूद नहीं है और इस्तेमाल किया गया Algorithm RS256 है:

    <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 Family एल्गोरिदम का इस्तेमाल करता है, लेकिन ज़रूरी एलिमेंट PublicKey मौजूद नहीं है, जिसकी वजह से यह गड़बड़ी होगी:

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

रिज़ॉल्यूशन

पक्का करें कि ज़रूरी <PublicKey> एलिमेंट का इस्तेमाल आरएसए फ़ैमिली एल्गोरिदम के साथ और ज़रूरी <SecretKey> एलिमेंट का इस्तेमाल एचएस फ़ैमिली एल्गोरिदम के साथ किया गया हो.

ऊपर दी गई, JWT की पुष्टि करने की नीति के उदाहरण को ठीक करने के लिए, इस नीति में <PublicKey> एलिमेंट जोड़ें. इस नीति में RS256 एल्गोरिदम का इस्तेमाल किया जाता है:

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

InvalidKeyConfiguration

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब पुष्टि करने के लिए JWT की नीति के <PublicKey> या <SecretKey> एलिमेंट में, चाइल्ड एलिमेंट <Value> या ज़रूरी चाइल्ड एलिमेंट <JWKS> के बारे में न बताया गया हो.

संक्रमण की जांच

  1. गड़बड़ी के मैसेज में, पुष्टि करें JWT नीति का नाम बताएं. उदाहरण के लिए, नीचे दिए गए गड़बड़ी के मैसेज में, 'JWT की पुष्टि करें' नीति का नाम JWT-Verify-RS256 है:

    Invalid Key configuration : policy(JWT-Verify-RS256).
    
    
  2. पुष्टि नहीं हो सकी JWT नीति एक्सएमएल की जांच करें. साथ ही, पुष्टि करें कि <PublicKey> या <SecretKey> एलिमेंट में चाइल्ड एलिमेंट <Value> या चाइल्ड एलिमेंट <JWKS> की जानकारी न दी गई हो. अगर चाइल्ड एलिमेंट तय नहीं है, तो यही गड़बड़ी है.

    उदाहरण के लिए, इस नीति से पता चलता है कि <PublicKey> एलिमेंट में चाइल्ड एलिमेंट <Value> या <JWKS> के बारे में नहीं बताया गया है:

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

    JWT की पुष्टि करने की नीति के <PublicKey>एलिमेंट में, चाइल्ड एलिमेंट <Value> या <JWKS> को तय नहीं किया गया है. इसलिए, आपको यह गड़बड़ी मिलेगी:

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

रिज़ॉल्यूशन

यह पक्का करें कि चाइल्ड एलिमेंट <Value> या <JWKS>, पुष्टि करें JWT नीति के <PublicKey> एलिमेंट में तय किया गया हो.

'JWT की पुष्टि करें' नीति के उदाहरण को ठीक करने के लिए, चाइल्ड एलिमेंट <Value> या <JWKS> को <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>
</PublicJWT>

EmptyElementForKeyConfiguration

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब <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 नीति एक्सएमएल की जांच करें और पुष्टि करें कि पहले चरण में तय किया गया एलिमेंट खाली है. अगर वह खाली है, तो यही गड़बड़ी की वजह है.

    उदाहरण के लिए, यह नीति दिखाती है कि <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> में रेफ़रंस एट्रिब्यूट हमेशा दिया गया हो.

JWT की पुष्टि करने की नीति के उदाहरण को ठीक करने के लिए, <PublicKey> एलिमेंट के चाइल्ड एलिमेंट <Value> में फ़्लो वैरिएबल public.publickey का इस्तेमाल करें:

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

InvalidConfigurationForVerify

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब <Id> एलिमेंट को VerificationJWT नीति के <SecretKey> एलिमेंट में बताया गया हो.

उदाहरण के लिए, अगर <SecretKey> एलिमेंट में <Id> एलिमेंट की जानकारी दी गई है, तो यह गड़बड़ी दिखती है.

संक्रमण की जांच

  1. पुष्टि करें JWT नीति का नाम और गड़बड़ी के मैसेज में मौजूद अमान्य एलिमेंट के नाम की पहचान करें. उदाहरण के लिए, नीचे दिए गए गड़बड़ी के मैसेज में, 'JWT की पुष्टि करें' नीति का नाम JWT-Verify-RS256 है और एलिमेंट का नाम SecretKey/Id है:

    Invalid configuration element for verify : policy(JWT-Verify-HS256) element(SecretKey/Id)
    
  2. पुष्टि नहीं हुई JWT नीति एक्सएमएल की जांच करें और पुष्टि करें कि पहले चरण में बताए गए अमान्य एलिमेंट की पहचान की गई है. अगर इसकी जानकारी दी गई है, तो यही गड़बड़ी की वजह है.

    उदाहरण के लिए, यह नीति दिखाती है कि <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>
    

    JWT की पुष्टि करने की नीति के <SecretKey> एलिमेंट में <Id> एलिमेंट के बारे में बताया गया है, इसलिए आपको यह गड़बड़ी मिली है:

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

रिज़ॉल्यूशन

पक्का करें कि JWT की पुष्टि करने की नीति के <SecretKey> एलिमेंट में, <Id> एलिमेंट को कभी भी परिभाषित न किया गया हो.

JWT की पुष्टि करने की नीति के उदाहरण को ठीक करने के लिए, <SecretKey> एलिमेंट से चाइल्ड एलिमेंट <Id> को हटाएं:

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

InvalidEmptyElement

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब दिखती है, जब 'JWT की पुष्टि करें' नीति का <Source> एलिमेंट खाली होता है. अगर यह मौजूद है, तो इसे Edge फ़्लो वैरिएबल के नाम के साथ तय किया जाना चाहिए.

संक्रमण की जांच

  1. पुष्टि करें JWT नीति का नाम और गड़बड़ी के मैसेज में मौजूद खाली एलिमेंट के नाम की पहचान करें. उदाहरण के लिए, नीचे दिए गए गड़बड़ी के मैसेज में, 'JWT की पुष्टि करें' नीति का नाम JWT-Verify-RS256 है और एलिमेंट का नाम PublicKey/Value है:

    Invalid empty element : policy(JWT-Verify-HS256) element(Source).
    
  2. पुष्टि नहीं हुई JWT नीति एक्सएमएल की जांच करें और पुष्टि करें कि पहले चरण में तय किया गया एलिमेंट खाली है. अगर वह खाली है, तो यही गड़बड़ी की वजह है.

    उदाहरण के लिए, इस नीति से पता चलता है कि <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

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब <PublicKey> एलिमेंट के चाइल्ड एलिमेंट <JWKS> में इस्तेमाल की गई वैल्यू, आरएफ़सी 7517 में बताए गए मान्य फ़ॉर्मैट में न हो.

उदाहरण के लिए, <PublicKey> एलिमेंट में चाइल्ड एलिमेंट <JWKS> की वैल्यू के तौर पर abc का इस्तेमाल करने पर यह गड़बड़ी होगी.

संक्रमण की जांच

  1. पुष्टि करें JWT की नीति और उस एलिमेंट के नाम की पहचान करें जिसमें गड़बड़ी के मैसेज में शामिल अमान्य वैल्यू दी गई है. उदाहरण के लिए, नीचे दिए गए गड़बड़ी के मैसेज में, पुष्टि करें कि JWT नीति का नाम JWT-Verify-RS256 है और एलिमेंट PublicKey/JWKS है:

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. पुष्टि नहीं हो सकी JWT नीति एक्सएमएल की जांच करें और पुष्टि करें कि पहले चरण में बताए गए एलिमेंट में आरएफ़सी 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> में मौजूद वैल्यू, आरएफ़सी 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

गड़बड़ी का मैसेज

इस गड़बड़ी के मैसेज के साथ EDGE यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई से एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

गड़बड़ी के मैसेज का उदाहरण

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

स्क्रीनशॉट का उदाहरण

Edge यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी के साथ एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब <PublicKey> एलिमेंट का इस्तेमाल एचएस फ़ैमिली एल्गोरिदम के साथ और <SecretKey> एलिमेंट का इस्तेमाल आरएसए फ़ैमिली एल्गोरिदम के साथ किया जाता है. गड़बड़ी तब भी होगी, जब इनमें से कोई भी स्थिति सही हो.

उदाहरण के लिए, एचएस फ़ैमिली एल्गोरिदम के साथ <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 नीति एक्सएमएल में इस्तेमाल किया गया एलिमेंट और एल्गोरिदम फ़ैमिली, पहले चरण में गड़बड़ी के मैसेज में बताए गए एलिमेंट और एल्गोरिदम फ़ैमिली से मेल खाते हैं. उदाहरण के लिए, इस नीति में एलिमेंट को 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> एलिमेंट का इस्तेमाल, सिर्फ़ आरएसए फ़ैमिली एल्गोरिदम के साथ और <SecretKey> एलिमेंट का इस्तेमाल सिर्फ़ एचएस फ़ैमिली एल्गोरिदम के साथ किया गया हो.

JWT की पुष्टि करने की नीति के उदाहरण को ठीक करने के लिए, HS256 एल्गोरिदम का इस्तेमाल करने वाली, VerificationJWT नीति में मौजूद <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>