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

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

पर क्लिक करें.

InvalidNameForAdditionalClaim

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

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

रजिस्टर्ड किए गए दावों के बारे में RFC7519 में बताया गया है.

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

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

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

    Invalid name for additional claim : policy(JWT-Verify-RS256) claim(iss).
    
  2. पुष्टि करें कि Verify JWT नीति के एक्सएमएल में मौजूद <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"

    तो यह गड़बड़ी की वजह है.

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

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

रिज़ॉल्यूशन

<AdditionalClaims> एलिमेंट के चाइल्ड एलिमेंट <Claim> में, रजिस्टर किए गए नाम "kid", "iss", "sub", "aud", "iat", "exp", "nbf" या "jti" में से किसी का भी इस्तेमाल न करें.

Verify JWT नीति के उदाहरण से जुड़ी समस्या को ठीक करने के लिए, दावे का नाम बदलकर status करें:

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

InvalidTypeForAdditionalClaim

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

string (डिफ़ॉल्ट), number, boolean या map

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

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

  1. गड़बड़ी के मैसेज से, Verify JWT नीति का नाम, दावे का नाम, और टाइप का पता लगाएं. उदाहरण के लिए, गड़बड़ी के इस मैसेज में, Verify JWT नीति का नाम JWT-Verify-RS256 है, दावे का नाम claim है, और टाइप integer: है

    Invalid type for additional claim : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. पुष्टि करें कि Verify JWT नीति के एक्सएमएल में <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

    तो यह गड़बड़ी की वजह है.

    ऊपर दिखाए गए Verify JWT नीति के उदाहरण में, <AdditionalClaims> एलिमेंट के तहत <Claim> टाइप को integer के तौर पर तय किया गया है. integer एक ऐसा टाइप है जिसका इस्तेमाल नहीं किया जा सकता. इसलिए, आपको यह गड़बड़ी का मैसेज मिलता है:

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

रिज़ॉल्यूशन

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

Verify JWT नीति के उदाहरण को ठीक करने के लिए, दावे के टाइप को boolean में बदलें:

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

MissingNameForAdditionalClaim

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

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

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

    Error occurred while validation of bean JWT-Verify-RS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Verify JWT नीति के एक्सएमएल की जांच करें. साथ ही, पुष्टि करें कि <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>
    

    <AdditionalClaims> एलिमेंट में <Claim> का नाम नहीं दिया गया है. इसलिए, आपको यह गड़बड़ी दिखेगी:

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

रिज़ॉल्यूशन

पक्का करें कि दावे का नाम हमेशा <AdditionalClaims> या <AdditionalHeaders> एलिमेंट के चाइल्ड एलिमेंट <Claim> में दिया गया हो.

Verify JWT नीति के उदाहरण को ठीक करने के लिए, दावे का नाम इस तरह बताएं:

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

InvalidNameForAdditionalHeader

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

alg या typ

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

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

  1. गड़बड़ी के मैसेज से, Verify JWT नीति और हेडर के नाम का पता लगाएं. उदाहरण के लिए, गड़बड़ी के इस मैसेज में, Verify JWT नीति का नाम JWT-Verify-RS256 और हेडर का नाम alg है:

    Invalid name for additional header: policy(JWT-Verify-RS256) header(alg).
    
  2. पुष्टि करें कि Verify JWT नीति के एक्सएमएल में <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

    तो यह गड़बड़ी की वजह है.

    ऊपर दिए गए Verify JWT नीति के उदाहरण में, <AdditionalClaims> एलिमेंट के तहत <Claim> नाम alg दिया गया है. इससे यह गड़बड़ी होती है:

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

रिज़ॉल्यूशन

<AdditionalHeaders> एलिमेंट के चाइल्ड एलिमेंट <Claim> में, स्टैंडर्ड JWT हेडर alg या typ का इस्तेमाल न करें.

Verify JWT नीति के उदाहरण को ठीक करने के लिए, <AdditionalHeaders> एलिमेंट के चाइल्ड एलिमेंट <Claim> में x5c नाम का इस्तेमाल करें:

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

InvalidTypeForAdditionalHeader

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

string (डिफ़ॉल्ट), number, boolean या map

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

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

  1. गड़बड़ी के मैसेज से, Verify JWT नीति का नाम, दावे का नाम, और टाइप का पता लगाएं. उदाहरण के लिए, गड़बड़ी के इस मैसेज में, Verify JWT नीति का नाम JWT-Verify-RS256 है, दावे का नाम claim है, और टाइप integer है:

    Invalid type for additional header : policy(JWT-Verify-RS256) claim(claim) type(integer).
    
  2. पुष्टि करें कि Verify JWT नीति के एक्सएमएल में <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

    तो यह गड़बड़ी की वजह है.

    ऊपर दिखाए गए Verify JWT नीति के उदाहरण में, <AdditionalHeaders> एलिमेंट के तहत <Claim> टाइप को integer के तौर पर तय किया गया है. integer एक ऐसा टाइप है जिसका इस्तेमाल नहीं किया जा सकता. इसलिए, आपको यह गड़बड़ी का मैसेज मिलता है:

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

रिज़ॉल्यूशन

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

Verify JWT नीति के उदाहरण को ठीक करने के लिए, दावे के टाइप को boolean में बदलें:

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

InvalidValueOfArrayAttribute

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

यह गड़बड़ी तब होती है, जब <AdditionalClaims> या <AdditionalHeaders> एलिमेंट के चाइल्ड एलिमेंट <Claim> में मौजूद कलेक्शन एट्रिब्यूट की वैल्यू, true या false पर सेट न हो.

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

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

  1. गड़बड़ी के मैसेज से, Verify JWT नीति और दावे के नाम का पता लगाएं. उदाहरण के लिए, गड़बड़ी के इस मैसेज में, Verify JWT नीति का नाम JWT-Verify-RS256 है और दावे का नाम claim है:

    Invalid value for array attribute: policy(JWT-Verify-RS256) claim(claim).
    
  2. पुष्टि करें कि Verify JWT नीति के एक्सएमएल में मौजूद <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 पर सेट हो.

ऊपर दिखाई गई Verify JWT नीति के उदाहरण को ठीक करने के लिए, ऐरे एट्रिब्यूट की वैल्यू को true में बदलें:

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

InvalidValueForElement

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

अगर <Algorithm> एलिमेंट में दी गई वैल्यू, इनमें से कोई वैल्यू नहीं है, तो यह गड़बड़ी दिखती है:

HS256, HS384, HS512, RS256, RS384, RS512

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

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

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

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. Verify 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

    तो यह गड़बड़ी की वजह है.

    ऊपर दिखाए गए Verify JWT नीति के उदाहरण में, <Algorithm> का नाम HS128 के तौर पर बताया गया है. यह एल्गोरिदम काम नहीं करता. इसलिए, आपको यह गड़बड़ी का मैसेज मिलता है:

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

रिज़ॉल्यूशन

पक्का करें कि <Algorithm> एलिमेंट में दी गई वैल्यू, इस्तेमाल की जा सकने वाली वैल्यू में से एक हो:

HS256, HS384, HS512, RS256, RS384, RS512

ऊपर दिए गए Verify JWT नीति के उदाहरण को ठीक करने के लिए, <SecretKey> एलिमेंट का इस्तेमाल करें. इसके लिए, <Algorithm> की वैल्यू को HS25 में बदलें. ध्यान दें कि <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 Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

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

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

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

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

    Verify JWT नीति के इस उदाहरण में, HS फ़ैमिली एल्गोरिदम का इस्तेमाल किया गया है. हालांकि, इसमें ज़रूरी एलिमेंट PublicKey मौजूद नहीं है. इसलिए, यह गड़बड़ी दिख रही है:

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

रिज़ॉल्यूशन

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

ऊपर दिए गए Verify JWT नीति के उदाहरण को ठीक करने के लिए, VerifyJWT नीति में <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 Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

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

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

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

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

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

रिज़ॉल्यूशन

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

Verify JWT नीति के उदाहरण को ठीक करने के लिए, <PublicKey> एलिमेंट के तहत <Value> या <JWKS> चाइल्ड एलिमेंट को इस तरह से तय करें:

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

EmptyElementForKeyConfiguration

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

यह गड़बड़ी तब होती है, जब <PublicKey> एलिमेंट के <Value> या <JWKS> चाइल्ड एलिमेंट में ref एट्रिब्यूट की वैल्यू नहीं दी गई हो या वह खाली हो.

उदाहरण के लिए, अगर <PublicKey> एलिमेंट का चाइल्ड एलिमेंट <Value> खाली है, तो गड़बड़ी होती है.

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

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

    Empty Element for Key Configuration : policy(JWT-Verify-RS256) element(PublicKey/Value).
    
  2. Verify JWT नीति के उस एक्सएमएल की जांच करें जो काम नहीं कर रहा है. साथ ही, पुष्टि करें कि पहले चरण में पहचाना गया एलिमेंट खाली है. अगर यह खाली है, तो गड़बड़ी की वजह यही है.

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

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

    Verify JWT नीति के <PublicKey> एलिमेंट का चाइल्ड एलिमेंट <Value> खाली होने की वजह से, आपको यह गड़बड़ी दिखती है:

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

रिज़ॉल्यूशन

पक्का करें कि <PublicKey> एलिमेंट के चाइल्ड एलिमेंट <Value> या <JWKS> में ref एट्रिब्यूट की वैल्यू हमेशा दी गई हो.

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

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

InvalidConfigurationForVerify

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

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

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

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

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

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

    Verify JWT नीति के <SecretKey> एलिमेंट में <Id> एलिमेंट को तय किया गया है. इसलिए, आपको यह गड़बड़ी दिखती है:

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

रिज़ॉल्यूशन

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

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

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

InvalidEmptyElement

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

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

  1. गड़बड़ी के मैसेज से, Verify JWT नीति का नाम और खाली एलिमेंट का नाम पता करें. उदाहरण के लिए, गड़बड़ी के इस मैसेज में, Verify 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>
    

    Verify JWT नीति के <Source> एलिमेंट में कोई वैल्यू मौजूद न होने की वजह से, आपको यह गड़बड़ी दिखती है:

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

रिज़ॉल्यूशन

अगर Verify JWT नीति का <Source> एलिमेंट मौजूद है, तो पक्का करें कि यह फ़्लो वैरिएबल के बारे में बताता हो.

Verify JWT नीति के उदाहरण को ठीक करने के लिए, <Source> एलिमेंट में मान्य फ़्लो वैरिएबल का इस्तेमाल करें:

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

InvalidPublicKeyValue

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

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

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

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

    Invalid Public Key Value in Configuration : policy(JWT-Verify-RS256) element(PublicKey/JWKS).
    
  2. Verify JWT नीति के एक्सएमएल की जांच करें. साथ ही, पुष्टि करें कि पहले चरण में पहचाने गए एलिमेंट में, RFC 7517 के मुताबिक मान्य फ़ॉर्मैट में वैल्यू मौजूद हो. अगर एट्रिब्यूट की वैल्यू मान्य फ़ॉर्मैट में नहीं है, तो गड़बड़ी की वजह यही है.

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

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

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

रिज़ॉल्यूशन

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

Verify JWT नीति के उदाहरण को ठीक करने के लिए, <JWKS> की वैल्यू को यहां दिए गए तरीके से बदलें:

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

InvalidConfigurationForActionAndAlgorithm

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

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

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

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

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

उदाहरण के तौर पर दिया गया स्क्रीनशॉट

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

वजह

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

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

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

  1. गड़बड़ी के मैसेज से, Verify JWT नीति का नाम, एलिमेंट का नाम, और एल्गोरिदम फ़ैमिली का नाम पता करें. उदाहरण के लिए, गड़बड़ी के इस मैसेज में, Verify JWT नीति का नाम JWT-Verify-HS256 है, एलिमेंट का नाम PublicKey है, और एल्गोरिदम फ़ैमिली RSA है:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Verify-HS256) element(PublicKey) action(Verify) family(RSA).
    
  2. पुष्टि करें कि Verify JWT नीति के एक्सएमएल में इस्तेमाल किया गया एलिमेंट और एल्गोरिदम फ़ैमिली, पहले चरण में गड़बड़ी के मैसेज में पहचाने गए एलिमेंट और एल्गोरिदम फ़ैमिली से मेल खाती हो. उदाहरण के लिए, यहां दी गई नीति में एलिमेंट को 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 की पुष्टि करने की नीति के उदाहरण में, <PublicKey> एलिमेंट का इस्तेमाल किया गया है. भले ही, <Algorithm> को फ़ैमिली एल्गोरिदम HS256 पर सेट किया गया हो. इससे यह गड़बड़ी होती है:

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

रिज़ॉल्यूशन

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

Verify JWT नीति के उदाहरण को ठीक करने के लिए, VerifyJWT नीति से <SecretKey> का इस्तेमाल करें. यह नीति, HS256 एल्गोरिदम का इस्तेमाल करती है:

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