আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
কি
JWS-এ স্বাক্ষর যাচাই না করেই JWS হেডারকে ডিকোড করে এবং প্রতিটি হেডারকে একটি ফ্লো ভেরিয়েবলে লেখে। ভেরিফাইজেডব্লিউএস নীতির সাথে কনসার্টে ব্যবহার করা হলে এই নীতিটি সবচেয়ে উপযোগী, যখন জেডব্লিউএস-এর স্বাক্ষর যাচাই করার আগে জেডব্লিউএস-এর মধ্যে থেকে হেডারের মান জানতে হবে।
একটি JWS-এর একটি সংযুক্ত পেলোড থাকতে পারে, যেমন ফর্মে রয়েছে:
header.payload.signature
অথবা, JWS পেলোড বাদ দিতে পারে, যাকে একটি বিচ্ছিন্ন পেলোড বলা হয় এবং ফর্মে থাকতে পারে:
header..signature
DecodeJWS নীতি উভয় ফর্মের সাথে কাজ করে কারণ এটি শুধুমাত্র JWS-এর হেডার অংশকে ডিকোড করে। JWS সাইন করার জন্য যে অ্যালগরিদম ব্যবহার করা হয়েছিল তা নির্বিশেষে DecodeJWS নীতিও কাজ করে।
একটি JWS এবং JWT নীতি ওভারভিউ একটি বিস্তারিত ভূমিকা এবং একটি JWS বিন্যাসের একটি ওভারভিউ জন্য দেখুন.
ভিডিও
একটি JWT ডিকোড কিভাবে শিখতে একটি ছোট ভিডিও দেখুন. যদিও এই ভিডিওটি একটি 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._\-$ % । যাইহোক, এজ ম্যানেজমেন্ট UI অতিরিক্ত বিধিনিষেধ প্রয়োগ করে, যেমন স্বয়ংক্রিয়ভাবে অক্ষরগুলিকে অপসারণ করা যা আলফানিউমেরিক নয়। ঐচ্ছিকভাবে, | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে false সেট করুন৷ এটি বেশিরভাগ নীতির জন্য প্রত্যাশিত আচরণ। একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
সক্রিয় | নীতি প্রয়োগ করতে true সেট করুন৷ নীতি "বন্ধ" করতে | সত্য | ঐচ্ছিক |
অ্যাসিঙ্ক | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName>
<DisplayName>Policy Display Name</DisplayName>
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে নামের বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।
ডিফল্ট | আপনি এই উপাদানটি বাদ দিলে, নীতির নামের বৈশিষ্ট্যের মান ব্যবহার করা হবে। |
উপস্থিতি | ঐচ্ছিক |
টাইপ | স্ট্রিং |
<উৎস>
<Source>JWS-variable</Source>
যদি উপস্থিত থাকে, তাহলে ফ্লো ভেরিয়েবল নির্দিষ্ট করে যেখানে নীতি JWS-কে ডিকোড করার জন্য খুঁজে পাওয়ার আশা করে।
ডিফল্ট | request.header.authorization (ডিফল্ট সম্পর্কে গুরুত্বপূর্ণ তথ্যের জন্য উপরের নোটটি দেখুন)। |
উপস্থিতি | ঐচ্ছিক |
টাইপ | স্ট্রিং |
বৈধ মান | একটি এজ ফ্লো পরিবর্তনশীল নাম |
ফ্লো ভেরিয়েবল
সফল হলে, JWS যাচাই করুন এবং 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, এবং তাই। আরও জানতে (অ্যালগরিদম) হেডার প্যারামিটার দেখুন। |
header.kid | কী আইডি, যদি JWS তৈরি করার সময় যোগ করা হয়। একটি JWS যাচাই করতে JWT এবং JWS নীতি ওভারভিউ -এ "একটি JSON ওয়েব কী সেট (JWKS) ব্যবহার করা" দেখুন। আরও জানতে (কী আইডি) হেডার প্যারামিটার দেখুন। |
header.type | হেডার টাইপ মান। আরও জন্য (টাইপ) হেডার প্যারামিটার দেখুন। |
header. name | নামযুক্ত হেডারের মান (মান বা অতিরিক্ত)। JWS-এর হেডার অংশে প্রতিটি অতিরিক্ত হেডারের জন্য এর মধ্যে একটি সেট করা হবে। |
header-json | JSON ফর্ম্যাটে হেডার। |
payload | JWS পেলোড যদি JWS এর একটি সংযুক্ত পেলোড থাকে। একটি বিচ্ছিন্ন পেলোডের জন্য, এই ভেরিয়েবলটি খালি। |
valid | VerifyJWS-এর ক্ষেত্রে, এই ভেরিয়েবলটি সত্য হবে যখন স্বাক্ষর যাচাই করা হবে, এবং বর্তমান সময়টি টোকেনের মেয়াদ শেষ হওয়ার আগে এবং টোকেন NotBefore মানের পরে, যদি তারা উপস্থিত থাকে। অন্যথায় মিথ্যা। DecodeJWS এর ক্ষেত্রে, এই ভেরিয়েবল সেট করা হয় না। |
ত্রুটি উল্লেখ
এই বিভাগটি ফল্ট কোড এবং ত্রুটির বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷
রানটাইম ত্রুটি
নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷
ফল্ট কোড | HTTP স্থিতি | ঘটে যখন |
---|---|---|
steps.jws.FailedToDecode | 401 | নীতি JWS ডিকোড করতে অক্ষম ছিল. JWS সম্ভবত দূষিত হয়. |
steps.jws.FailedToResolveVariable | 401 | যখন নীতির <Source> উপাদানে নির্দিষ্ট করা ফ্লো ভেরিয়েবল বিদ্যমান থাকে না তখন ঘটে। |
steps.jws.InvalidClaim | 401 | একটি অনুপস্থিত দাবি বা দাবি অমিল, বা একটি অনুপস্থিত শিরোনাম বা শিরোনাম অমিলের জন্য৷ |
steps.jws.InvalidJsonFormat | 401 | JWS হেডারে অবৈধ JSON পাওয়া গেছে। |
steps.jws.InvalidJws | 401 | এই ত্রুটিটি ঘটে যখন JWS স্বাক্ষর যাচাইকরণ ব্যর্থ হয়। |
steps.jws.InvalidPayload | 401 | JWS পেলোড অবৈধ। |
steps.jws.InvalidSignature | 401 | <DetachedContent> বাদ দেওয়া হয়েছে এবং JWS-এর একটি বিচ্ছিন্ন কন্টেন্ট পেলোড রয়েছে। |
steps.jws.MissingPayload | 401 | JWS পেলোড অনুপস্থিত. |
steps.jws.NoAlgorithmFoundInHeader | 401 | JWS অ্যালগরিদম হেডার বাদ দিলে ঘটে। |
steps.jws.UnknownException | 401 | একটি অজানা ব্যতিক্রম ঘটেছে. |
স্থাপনার ত্রুটি
আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷
ত্রুটির নাম | ঘটে যখন |
---|---|
InvalidAlgorithm | শুধুমাত্র বৈধ মানগুলি হল: RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512৷ |
| অন্যান্য সম্ভাব্য স্থাপনার ত্রুটি। |
ফল্ট ভেরিয়েবল
রানটাইম ত্রুটি ঘটলে এই ভেরিয়েবলগুলি সেট করা হয়। আরও তথ্যের জন্য, নীতি ত্রুটি সম্পর্কে আপনার যা জানা দরকার তা দেখুন।
ভেরিয়েবল | যেখানে | উদাহরণ |
---|---|---|
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>