आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
क्या
JWS पर हस्ताक्षर की पुष्टि किए बिना, JWS हेडर को डिकोड करता है. साथ ही, हर हेडर को फ़्लो वैरिएबल. यह नीति सबसे ज़्यादा तब काम आती है, जब VerifyJWS की नीति के साथ कॉन्सर्ट में इसका इस्तेमाल किया जाता है. जब JWS के हस्ताक्षर की पुष्टि करने से पहले, JWS के किसी हेडर की वैल्यू पता होनी चाहिए.
किसी JWS में पेलोड अटैच हो सकता है, जैसा कि वह फ़ॉर्म में बताया गया है:
header.payload.signature
इसके अलावा, JWS पेलोड को हटा सकता है, जिसे डिटैच किया गया पेलोड कहा जाता है और वह इस तरह से हो सकता है:
header..signature
DecodeJWS नीति दोनों फ़ॉर्मैट के साथ काम करती है, क्योंकि यह JWS के हेडर वाले हिस्से को ही डीकोड करती है. DecodeJWS नीति भी काम करती है. भले ही, JWS पर साइन करने के लिए इस्तेमाल किया गया एल्गोरिदम कुछ भी हो.
ज़्यादा जानकारी के लिए, JWS और JWT की नीतियों के बारे में खास जानकारी देखें साथ ही, JWS फ़ॉर्मैट की ख़ास जानकारी भी मिलेगी.
वीडियो
किसी JWT को डिकोड करने का तरीका जानने के लिए एक छोटा वीडियो देखें. हालांकि, यह वीडियो इनमें से कई सिद्धांत JWS के लिए एक जैसे होते हैं.
सैंपल: किसी JWS को डिकोड करना
नीचे दिखाई गई नीति, फ़्लो वैरिएबल var.JWS में मिलने वाले JWS को डिकोड करती है. यह वैरिएबल मौजूद होना चाहिए और उसमें एक व्यावहारिक (डिकोडेबल) JWS होना चाहिए. नीति, JWS को यहां से हासिल कर सकती है: का इस्तेमाल किया जा सकता है.
<DecodeJWS name="JWS-Decode-HS256"> <DisplayName>JWS Verify HS256</DisplayName> <Source>var.JWS</Source> </DecodeJWS>
JWS के हेडर वाले हिस्से में मौजूद हर हेडर के लिए, नीति इस नाम का एक फ़्लो वैरिएबल सेट करती है:
jws.policy-name.header.header-name
अगर JWS में पेलोड अटैच है, तो यह jws.policy-name.header.payload
को सेट करता है
फ़्लो वैरिएबल को पेलोड में ले जाता है. डिटैच किए गए पेलोड के लिए, payload
खाली है.
इस नीति में सेट किए गए वैरिएबल की पूरी सूची देखने के लिए, फ़्लो वैरिएबल देखें.
JWS डिकोड करने के लिए एलिमेंट रेफ़रंस
नीति के रेफ़रंस में, डिकोड करने वाली JWS नीति के एलिमेंट और एट्रिब्यूट के बारे में बताया गया है.
ऐसे एट्रिब्यूट जो टॉप-लेवल एलिमेंट पर लागू करें
<DecodeJWS name="JWS" continueOnError="false" enabled="true" async="false">
ये एट्रिब्यूट, नीति के सभी पैरंट एलिमेंट में एक जैसे होते हैं.
एट्रिब्यूट | जानकारी | डिफ़ॉल्ट | मौजूदगी |
---|---|---|---|
नाम |
नीति का अंदरूनी नाम. नाम में इस्तेमाल किए जा सकने वाले वर्ण इन तक सीमित हैं:
A-Z0-9._\-$ % . हालांकि, Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) की मदद से
पाबंदियां, जैसे कि अक्षर और अंक के अलावा किसी और वर्ण को अपने-आप हटाना.
विकल्प के तौर पर, |
लागू नहीं | ज़रूरी है |
continueOnError |
किसी नीति के काम न करने पर, गड़बड़ी दिखाने के लिए false पर सेट करें. यह उम्मीद है
व्यवहार की जानकारी देने वाला डेटा.
नीति के लागू होने के बाद भी फ़्लो को एक्ज़ीक्यूट करने के लिए, इसे |
गलत | वैकल्पिक |
चालू किया गया |
नीति को लागू करने के लिए, true पर सेट करें.
|
सही | वैकल्पिक |
एक साथ काम नहीं करने वाली प्रोसेस | यह एट्रिब्यूट अब काम नहीं करता. | गलत | बहिष्कृत |
<DisplayName>
<DisplayName>Policy Display Name</DisplayName>
मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में नीति को लेबल करने के लिए, नाम एट्रिब्यूट के अलावा इस्तेमाल करें पर क्लिक करें.
डिफ़ॉल्ट | अगर इस एलिमेंट को छोड़ा जाता है, तो नीति के नाम वाले एट्रिब्यूट की वैल्यू का इस्तेमाल किया जाता है. |
मौजूदगी | वैकल्पिक |
स्ट्रीम किस तरह की है | स्ट्रिंग |
<Source>
<Source>JWS-variable</Source>
अगर यह मौजूद है, तो यह उस फ़्लो वैरिएबल के बारे में बताता है जिसमें नीति के मुताबिक, JWS को डिकोड करना.
डिफ़ॉल्ट | request.header.authorization (अहम जानकारी के लिए ऊपर दिया गया नोट देखें
डिफ़ॉल्ट के बारे में जानकारी). |
मौजूदगी | वैकल्पिक |
स्ट्रीम किस तरह की है | स्ट्रिंग |
मान्य वैल्यू | एज फ़्लो वैरिएबल का नाम |
फ़्लो वैरिएबल
सफलता मिलने के बाद, Verify JWS और Decode JWS की नीतियां सेट की गईं इस पैटर्न के अनुसार कॉन्टेक्स्ट वैरिएबल:
jws.{policy_name}.{variable_name}
उदाहरण के लिए, अगर नीति का नाम verify-jws
है, तो नीति सेव हो जाएगी
इस कॉन्टेक्स्ट वैरिएबल के लिए JWS में तय एल्गोरिदम:
jws.verify-jws.header.algorithm
वैरिएबल का नाम | ब्यौरा |
---|---|
decoded.header.name |
पेलोड में हेडर का JSON-पार्स करने लायक मान. इसके लिए एक वैरिएबल सेट किया गया है
हर हेडर को कॉपी करता है. हालांकि, आपके पास header.name फ़्लो वैरिएबल का इस्तेमाल करने का भी विकल्प है,
हेडर को ऐक्सेस करने के लिए, इस वैरिएबल का इस्तेमाल करने का सुझाव दिया जाता है. |
header.algorithm |
JWS पर इस्तेमाल किया जाने वाला साइनिंग एल्गोरिदम. उदाहरण के लिए, RS256, HS384 वगैरह. ज़्यादा जानकारी के लिए (Algorithm) हेडर पैरामीटर देखें. |
header.kid |
कुंजी आईडी, अगर उसे JWS जनरेट करते समय जोड़ा गया हो. "JSON वेब कुंजी सेट का इस्तेमाल करना" भी देखें (JWKS)" JWT और JWS नीतियों की खास जानकारी देखें. ज़्यादा जानकारी के लिए (Key ID) हेडर पैरामीटर देखें. |
header.type |
हेडर टाइप की वैल्यू. ज़्यादा जानकारी के लिए (Type) हेडर पैरामीटर देखें. |
header.name |
नाम वाले हेडर की वैल्यू (स्टैंडर्ड या अतिरिक्त). इनमें से किसी एक को के हेडर वाले हिस्से में हर अतिरिक्त हेडर को शामिल करता है. |
header-json |
JSON फ़ॉर्मैट में हेडर. |
payload |
अगर JWS में पेलोड अटैच है, तो JWS पेलोड. डिटैच किए गए पेलोड के लिए, यह वैरिएबल खाली होता है. |
valid |
VerifyJWS के मामले में, हस्ताक्षर की पुष्टि होने पर यह वैरिएबल सही होगा. साथ ही,
मौजूदा समय, टोकन की समयसीमा खत्म होने से पहले का है. साथ ही, टोकन notbefore वैल्यू के बाद का है, अगर वे
मौजूद हैं. नहीं तो गलत.
DecodeJWS के मामले में, यह वैरिएबल सेट नहीं होता. |
गड़बड़ी का रेफ़रंस
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Occurs when |
---|---|---|
steps.jws.FailedToDecode |
401 | The policy was unable to decode the JWS. The JWS is possibly corrupted. |
steps.jws.FailedToResolveVariable |
401 | Occurs when the flow variable specified in the <Source> element of
the policy does not exist. |
steps.jws.InvalidClaim |
401 | For a missing claim or claim mismatch, or a missing header or header mismatch. |
steps.jws.InvalidJsonFormat |
401 | Invalid JSON found in the JWS header. |
steps.jws.InvalidJws |
401 | This error occurs when the JWS signature verification fails. |
steps.jws.InvalidPayload |
401 | The JWS payload is invalid. |
steps.jws.InvalidSignature |
401 | <DetachedContent> is omitted and the JWS has a detached content payload. |
steps.jws.MissingPayload |
401 | The JWS payload is missing. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Occurs when the JWS omits the algorithm header. |
steps.jws.UnknownException |
401 | An unknown exception occurred. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Occurs when |
---|---|
InvalidAlgorithm |
The only valid values are: RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
Other possible deployment errors. |
गड़बड़ी के वैरिएबल
रनटाइम की गड़बड़ी होने पर ये वैरिएबल सेट किए जाते हैं. ज़्यादा जानकारी के लिए, आपके लिए ज़रूरी जानकारी देखें नीति से जुड़ी गड़बड़ियों के बारे में जानकारी.
वैरिएबल | कहां | उदाहरण |
---|---|---|
fault.name="fault_name" |
fault_name गड़बड़ी का नाम है, जैसा कि ऊपर रनटाइम में गड़बड़ियां टेबल में बताया गया है. गड़बड़ी का नाम, गड़बड़ी के कोड का आखिरी हिस्सा होता है. | fault.name Matches "TokenExpired" |
JWS.failed |
कोई गड़बड़ी होने पर, JWS की सभी नीतियां एक ही वैरिएबल सेट करती हैं. | jws.JWS-Policy.failed = true |
गड़बड़ी के रिस्पॉन्स का उदाहरण
गड़बड़ी ठीक करने के लिए, सबसे सही तरीका यह है कि गड़बड़ी के errorcode
वाले हिस्से को छिपाया जाए
जवाब. faultstring
में मौजूद टेक्स्ट पर पूरी तरह भरोसा न करें, क्योंकि इससे बदलाव हो सकता है.
गड़बड़ी के नियम का उदाहरण
<FaultRules> <FaultRule name="JWS Policy Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "TokenExpired")</Condition> </Step> <Condition>JWS.failed=true</Condition> </FaultRule> </FaultRules>