पुष्टि के लिए 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).
    

रिज़ॉल्यूशन

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

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 यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी वाला एक डायलॉग बॉक्स दिखेगा:

वजह

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

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. गड़बड़ी के मैसेज से, Verify 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 यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी वाला एक डायलॉग बॉक्स दिखेगा:

वजह

गड़बड़ी तब होती है, जब पुष्टि की जेडब्लयूटी नीति के <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. गड़बड़ी के मैसेज से, Verify JWT नीति का नाम और एलिमेंट के नाम की पहचान करें. उदाहरण के लिए, नीचे दिए गए गड़बड़ी के मैसेज में, पुष्टि की गई JWT नीति का नाम JWT-Verify-RS256 है और एलिमेंट का नाम Algorithm है:

    Invalid Value for element : policy(JWT-Verify-RS256) element(Algorithm).
    
  2. पुष्टि नहीं हो पाने वाली JWT नीति की एक्सएमएल की जांच करें और <Algorithm> एलिमेंट के लिए दी गई वैल्यू की जांच करें.

    यहां पुष्टि के लिए जेडब्लयूटी से जुड़ी नीति का एक नमूना दिया गया है:

    <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 यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी वाला एक डायलॉग बॉक्स दिखेगा:

वजह

यह गड़बड़ी तब होती है, जब पुष्टि करने के लिए जेडब्लयूटी की नीति में, आरएसए फ़ैमिली एल्गोरिदम के साथ <PublicKey> एलिमेंट का इस्तेमाल नहीं किया जाता है. इसी तरह, अगर जेडब्लयूटी की पुष्टि करने की नीति में <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>
    

    'पुष्टि करें कि जेडब्ल्यूटी' नीति के उदाहरण में एचएस फ़ैमिली एल्गोरिदम का इस्तेमाल किया गया है, लेकिन ज़रूरी एलिमेंट PublicKey मौजूद नहीं है. इस वजह से यह गड़बड़ी होती है:

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

रिज़ॉल्यूशन

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

ऊपर दिखाई गई 'पुष्टि करें' 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 मैनेजमेंट एपीआई के ज़रिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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. गड़बड़ी के मैसेज से, Verify JWT नीति का नाम पहचानें. उदाहरण के लिए, नीचे दिए गए गड़बड़ी के मैसेज में, पुष्टि की गई JWT की नीति का नाम JWT-Verify-RS256 है:

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

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

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

    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

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

गड़बड़ी के इस मैसेज के साथ, 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> में 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

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

गड़बड़ी के इस मैसेज के साथ, 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 यूज़र इंटरफ़ेस (यूआई) में, आपको गड़बड़ी वाला एक डायलॉग बॉक्स दिखेगा:

वजह

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

उदाहरण के लिए, अगर <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>
    

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

    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> एलिमेंट में abc को चाइल्ड एलिमेंट <JWKS> की वैल्यू के तौर पर इस्तेमाल करने से यह गड़बड़ी दिखेगी.

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

  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 नीति के उदाहरण में, <PublicKey> एलिमेंट का इस्तेमाल किया जाता है, भले ही <Algorithm> को फ़ैमिली एल्गोरिदम HS256 पर सेट किया गया हो. इससे यह गड़बड़ी होती है:

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

रिज़ॉल्यूशन

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

'पुष्टि करें' 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>