আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
কি
ক্লায়েন্ট বা অন্যান্য সিস্টেম থেকে প্রাপ্ত একটি JWT-এ স্বাক্ষর যাচাই করে। এই নীতিটি প্রসঙ্গ ভেরিয়েবলগুলিতে দাবিগুলিকেও বের করে দেয় যাতে পরবর্তী নীতি বা শর্তগুলি অনুমোদন বা রাউটিং সিদ্ধান্ত নেওয়ার জন্য সেই মানগুলি পরীক্ষা করতে পারে। বিস্তারিত ভূমিকার জন্য JWS এবং JWT নীতি ওভারভিউ দেখুন।
যখন এই নীতিটি কার্যকর হয়, তখন এজ একটি JWT-এর স্বাক্ষর যাচাই করে এবং যাচাই করে যে JWT মেয়াদোত্তীর্ণ অনুযায়ী বৈধ এবং যদি তারা উপস্থিত থাকে তবে তার আগে নয়। নীতিটি ঐচ্ছিকভাবে JWT-তে নির্দিষ্ট দাবির মান যাচাই করতে পারে, যেমন বিষয়, ইস্যুকারী, দর্শক বা অতিরিক্ত দাবির মান।
যদি JWT যাচাই করা হয় এবং বৈধ হয়, তাহলে JWT-এর মধ্যে থাকা সমস্ত দাবি পরবর্তী নীতি বা শর্তাবলী দ্বারা ব্যবহারের জন্য প্রসঙ্গ ভেরিয়েবলে বের করা হয় এবং অনুরোধটি এগিয়ে যাওয়ার অনুমতি দেওয়া হয়। যদি JWT স্বাক্ষর যাচাই করা না যায় বা যদি JWT টাইমস্ট্যাম্পগুলির একটির কারণে অবৈধ হয়, তবে সমস্ত প্রক্রিয়াকরণ বন্ধ হয়ে যায় এবং প্রতিক্রিয়াতে একটি ত্রুটি ফিরে আসে।
একটি JWT-এর অংশগুলি এবং সেগুলি কীভাবে এনক্রিপ্ট করা এবং স্বাক্ষর করা হয় সে সম্পর্কে জানতে, RFC7519 পড়ুন।
ভিডিও
একটি JWT-তে স্বাক্ষর কীভাবে যাচাই করতে হয় তা জানতে একটি ছোট ভিডিও দেখুন।
নমুনা
- HS256 অ্যালগরিদমের সাথে স্বাক্ষরিত একটি JWT যাচাই করুন
- RS256 অ্যালগরিদমের সাথে স্বাক্ষরিত একটি JWT যাচাই করুন
HS256 অ্যালগরিদমের সাথে স্বাক্ষরিত একটি JWT যাচাই করুন
এই উদাহরণ নীতিটি একটি JWT যাচাই করে যা HS256 এনক্রিপশন অ্যালগরিদম, HMAC এর সাথে SHA-256 চেকসাম ব্যবহার করে স্বাক্ষরিত হয়েছিল। jwt নামক একটি ফর্ম প্যারামিটার ব্যবহার করে প্রক্সি অনুরোধে পাস করা হয়। কীটি private.secretkey নামের একটি ভেরিয়েবলের মধ্যে রয়েছে। নীতিতে অনুরোধ করার পদ্ধতি সহ একটি সম্পূর্ণ উদাহরণের জন্য উপরের ভিডিওটি দেখুন।
পলিসি কনফিগারেশনের মধ্যে রয়েছে JWT ডিকোড এবং মূল্যায়ন করার জন্য Edge-এর প্রয়োজনীয় তথ্য, যেমন JWT কোথায় পাওয়া যাবে (উৎস উপাদানে নির্দিষ্ট একটি ফ্লো ভেরিয়েবলে), প্রয়োজনীয় সাইনিং অ্যালগরিদম, গোপন কী কোথায় পাওয়া যাবে (একটি এজে সংরক্ষিত) ফ্লো ভেরিয়েবল, যা এজ কেভিএম থেকে পুনরুদ্ধার করা যেতে পারে, উদাহরণস্বরূপ), এবং প্রয়োজনীয় দাবি এবং তাদের মানগুলির একটি সেট।
<VerifyJWT name="JWT-Verify-HS256">
<DisplayName>JWT Verify HS256</DisplayName>
<Algorithm>HS256</Algorithm>
<Source>request.formparam.jwt</Source>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<SecretKey encoding="base64">
<Value ref="private.secretkey"/>
</SecretKey>
<Subject>monty-pythons-flying-circus</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>fans</Audience>
<AdditionalClaims>
<Claim name="show">And now for something completely different.</Claim>
</AdditionalClaims>
</VerifyJWT>নীতিটি প্রসঙ্গ ভেরিয়েবলে তার আউটপুট লেখে যাতে API প্রক্সিতে পরবর্তী নীতি বা শর্তগুলি সেই মানগুলি পরীক্ষা করতে পারে৷ এই নীতি দ্বারা সেট করা ভেরিয়েবলের তালিকার জন্য ফ্লো ভেরিয়েবল দেখুন।
RS256 অ্যালগরিদমের সাথে স্বাক্ষরিত একটি JWT যাচাই করুন
এই উদাহরণ নীতিটি একটি JWT যাচাই করে যা RS256 অ্যালগরিদমের সাথে স্বাক্ষরিত হয়েছিল। যাচাই করতে, আপনাকে সর্বজনীন কী প্রদান করতে হবে। jwt নামক একটি ফর্ম প্যারামিটার ব্যবহার করে প্রক্সি অনুরোধে পাস করা হয়। পাবলিক কীটি public.publickey নামের একটি ভেরিয়েবলের মধ্যে রয়েছে। নীতিতে অনুরোধ করার পদ্ধতি সহ একটি সম্পূর্ণ উদাহরণের জন্য উপরের ভিডিওটি দেখুন।
এই নমুনা নীতিতে প্রতিটি উপাদানের জন্য প্রয়োজনীয়তা এবং বিকল্পগুলির বিশদ বিবরণের জন্য এলিমেন্ট রেফারেন্স দেখুন।
<VerifyJWT name="JWT-Verify-RS256">
<Algorithm>RS256</Algorithm>
<Source>request.formparam.jwt</Source>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<PublicKey>
<Value ref="public.publickey"/>
</PublicKey>
<Subject>apigee-seattle-hatrack-montage</Subject>
<Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
<Audience>urn://c60511c0-12a2-473c-80fd-42528eb65a6a</Audience>
<AdditionalClaims>
<Claim name="show">And now for something completely different.</Claim>
</AdditionalClaims>
</VerifyJWT>উপরের কনফিগারেশনের জন্য, এই হেডার সহ একটি JWT …
{
"typ" : "JWT",
"alg" : "RS256"
}এবং এই পেলোড…
{
"sub" : "apigee-seattle-hatrack-montage",
"iss" : "urn://apigee-edge-JWT-policy-test",
"aud" : "urn://c60511c0-12a2-473c-80fd-42528eb65a6a",
"show": "And now for something completely different."
}… বৈধ বলে গণ্য হবে, যদি স্বাক্ষরটি প্রদত্ত পাবলিক কী দিয়ে যাচাই করা যায়।
একই শিরোনাম সহ একটি JWT কিন্তু এই পেলোড সহ ...
{
"sub" : "monty-pythons-flying-circus",
"iss" : "urn://apigee-edge-JWT-policy-test",
"aud" : "urn://c60511c0-12a2-473c-80fd-42528eb65a6a",
"show": "And now for something completely different."
}… অবৈধ বলে নির্ধারণ করা হবে, এমনকি যদি স্বাক্ষরটি যাচাই করা যায়, কারণ JWT-তে অন্তর্ভুক্ত "সাব" দাবি নীতি কনফিগারেশনে নির্দিষ্ট করা "বিষয়" উপাদানের প্রয়োজনীয় মানের সাথে মেলে না।
নীতিটি প্রসঙ্গ ভেরিয়েবলে তার আউটপুট লেখে যাতে API প্রক্সিতে পরবর্তী নীতি বা শর্তগুলি সেই মানগুলি পরীক্ষা করতে পারে৷ এই নীতি দ্বারা সেট করা ভেরিয়েবলের তালিকার জন্য ফ্লো ভেরিয়েবল দেখুন।
মূল উপাদান সেট করা
JWT যাচাই করার জন্য ব্যবহৃত কী নির্দিষ্ট করতে আপনি যে উপাদানগুলি ব্যবহার করেন তা নির্বাচিত অ্যালগরিদমের উপর নির্ভর করে, যেমনটি নিম্নলিখিত টেবিলে দেখানো হয়েছে:
| অ্যালগরিদম | মূল উপাদান | |
|---|---|---|
| এইচএস* | <SecretKey encoding="base16|hex|base64|base64url"> <Value ref="private.secretkey"/> </SecretKey> | |
| RS*, ES*, PS* | <PublicKey> <Value ref="rsa_public_key_or_value"/> </PublicKey> বা: <PublicKey> <Certificate ref="signed_cert_val_ref"/> </PublicKey> বা: <PublicKey> <JWKS ref="jwks_val_or_ref"/> </PublicKey> | |
| * মূল প্রয়োজনীয়তা সম্পর্কে আরও জানতে, স্বাক্ষর এনক্রিপশন অ্যালগরিদম সম্পর্কে দেখুন। | ||
উপাদান রেফারেন্স
নীতির রেফারেন্স JWT যাচাই নীতির উপাদান এবং বৈশিষ্ট্য বর্ণনা করে।
দ্রষ্টব্য: আপনি যে এনক্রিপশন অ্যালগরিদম ব্যবহার করেন তার উপর নির্ভর করে কনফিগারেশন কিছুটা আলাদা হবে। নির্দিষ্ট ব্যবহারের ক্ষেত্রে কনফিগারেশন প্রদর্শন করে এমন উদাহরণগুলির জন্য নমুনাগুলি পড়ুন।
উচ্চ-স্তরের উপাদানে প্রযোজ্য বৈশিষ্ট্য
<VerifyJWT name="JWT" continueOnError="false" enabled="true" async="false">
নিম্নলিখিত বৈশিষ্ট্যগুলি সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ৷
| বৈশিষ্ট্য | বর্ণনা | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
| নাম | নীতির অভ্যন্তরীণ নাম। আপনি নামের মধ্যে যে অক্ষরগুলি ব্যবহার করতে পারেন তাতে সীমাবদ্ধ: A-Z0-9._\-$ % । যাইহোক, এজ ম্যানেজমেন্ট UI অতিরিক্ত বিধিনিষেধ প্রয়োগ করে, যেমন স্বয়ংক্রিয়ভাবে অক্ষরগুলিকে অপসারণ করা যা আলফানিউমেরিক নয়। ঐচ্ছিকভাবে, | N/A | প্রয়োজন |
| continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে false সেট করুন৷ এটি বেশিরভাগ নীতির জন্য প্রত্যাশিত আচরণ। একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
| সক্রিয় | নীতি প্রয়োগ করতে true সেট করুন৷ নীতি "বন্ধ" করতে | সত্য | ঐচ্ছিক |
| অ্যাসিঙ্ক | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName>
<DisplayName>Policy Display Name</DisplayName>
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে নামের বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।
| ডিফল্ট | আপনি এই উপাদানটি বাদ দিলে, নীতির নামের বৈশিষ্ট্যের মান ব্যবহার করা হবে। |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
<অ্যালগরিদম>
<Algorithm>HS256</Algorithm>
টোকেন সাইন ইন করতে এনক্রিপশন অ্যালগরিদম নির্দিষ্ট করে। RS*/PS*/ES* অ্যালগরিদমগুলি একটি পাবলিক/সিক্রেট কী জোড়া নিযুক্ত করে, যখন HS* অ্যালগরিদমগুলি একটি শেয়ার্ড সিক্রেট নিয়োগ করে৷ স্বাক্ষর এনক্রিপশন অ্যালগরিদম সম্পর্কে আরও দেখুন।
আপনি কমা দ্বারা পৃথক করা একাধিক মান নির্দিষ্ট করতে পারেন। যেমন "HS256, HS512" বা "RS256, PS256"। যাইহোক, আপনি HS* অ্যালগরিদমগুলিকে অন্যদের সাথে বা ES* অ্যালগরিদমগুলিকে অন্যদের সাথে একত্রিত করতে পারবেন না কারণ তাদের একটি নির্দিষ্ট কী ধরণের প্রয়োজন৷ আপনি RS* এবং PS* অ্যালগরিদম একত্রিত করতে পারেন।
| ডিফল্ট | N/A |
| উপস্থিতি | প্রয়োজন |
| টাইপ | কমা দ্বারা পৃথক করা মানগুলির স্ট্রিং৷ |
| বৈধ মান | HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512 |
<শ্রোতা>
<Audience>audience-here</Audience> or: <Audience ref='variable-name-here'/>
নীতিটি যাচাই করে যে JWT-এ শ্রোতাদের দাবি কনফিগারেশনে উল্লিখিত মানের সাথে মেলে। কোন মিল না থাকলে, নীতি একটি ত্রুটি নিক্ষেপ করে। এই দাবিটি প্রাপকদের চিহ্নিত করে যাদের জন্য JWT উদ্দেশ্যে করা হয়েছে। এটি RFC7519- এ উল্লেখিত নিবন্ধিত দাবিগুলির মধ্যে একটি।
| ডিফল্ট | N/A |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
| বৈধ মান | একটি ফ্লো ভেরিয়েবল বা স্ট্রিং যা দর্শকদের সনাক্ত করে। |
<অতিরিক্ত দাবি/দাবি>
<AdditionalClaims> <Claim name='claim1'>explicit-value-of-claim-here</Claim> <Claim name='claim2' ref='variable-name-here'/> <Claim name='claim3' ref='variable-name-here' type='boolean'/> </AdditionalClaims> or: <AdditionalClaims ref='claim_payload'/>
যাচাই করে যে JWT পেলোডে নির্দিষ্ট অতিরিক্ত দাবি(গুলি) রয়েছে এবং দাবি করা মানগুলি মিলে যায়৷
একটি অতিরিক্ত দাবি এমন একটি নাম ব্যবহার করে যা স্ট্যান্ডার্ড, নিবন্ধিত JWT দাবির নামগুলির মধ্যে একটি নয়। একটি অতিরিক্ত দাবির মান একটি স্ট্রিং, একটি সংখ্যা, একটি বুলিয়ান, একটি মানচিত্র বা একটি অ্যারে হতে পারে। একটি মানচিত্র হল নাম/মান জোড়ার একটি সেট। এই ধরনের যেকোনো একটি দাবির মান নীতি কনফিগারেশনে স্পষ্টভাবে বা পরোক্ষভাবে একটি ফ্লো ভেরিয়েবলের রেফারেন্সের মাধ্যমে নির্দিষ্ট করা যেতে পারে।
| ডিফল্ট | N/A |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং, সংখ্যা, বুলিয়ান বা মানচিত্র |
| অ্যারে | মানটি ধরনগুলির একটি অ্যারে কিনা তা নির্দেশ করতে সত্যে সেট করুন। ডিফল্ট: মিথ্যা |
| বৈধ মান | আপনি একটি অতিরিক্ত দাবির জন্য ব্যবহার করতে চান যে কোনো মান. |
<Claim> উপাদানটি এই বৈশিষ্ট্যগুলি গ্রহণ করে:
- নাম - (প্রয়োজনীয়) দাবির নাম।
- ref - (ঐচ্ছিক) একটি ফ্লো ভেরিয়েবলের নাম। উপস্থিত থাকলে, নীতি দাবি হিসাবে এই ভেরিয়েবলের মান ব্যবহার করবে। যদি একটি রেফ অ্যাট্রিবিউট এবং একটি স্পষ্ট দাবি মান উভয়ই নির্দিষ্ট করা থাকে, তাহলে স্পষ্ট মানটি ডিফল্ট, এবং যদি উল্লেখিত ফ্লো ভেরিয়েবল অমীমাংসিত হয় তাহলে ব্যবহার করা হয়।
- প্রকার - (ঐচ্ছিক) এর মধ্যে একটি: স্ট্রিং (ডিফল্ট), সংখ্যা, বুলিয়ান বা মানচিত্র
- অ্যারে - (ঐচ্ছিক) মানটি ধরনগুলির একটি অ্যারে কিনা তা নির্দেশ করতে সত্যে সেট করুন। ডিফল্ট: মিথ্যা।
আপনি যখন <Claim> উপাদানটি অন্তর্ভুক্ত করেন, আপনি নীতি কনফিগার করার সময় দাবির নামগুলি স্ট্যাটিকভাবে সেট করা হয়। বিকল্পভাবে, আপনি দাবির নাম নির্দিষ্ট করতে একটি JSON অবজেক্ট পাস করতে পারেন। কারণ JSON অবজেক্ট একটি পরিবর্তনশীল হিসাবে পাস করা হয়েছে, দাবির নাম রানটাইমে নির্ধারিত হয়।
যেমন:
<AdditionalClaims ref='json_claims'/>
যেখানে ভেরিয়েবল json_claims ফর্মটিতে একটি JSON অবজেক্ট রয়েছে:
{ "sub" : "person@example.com", "iss" : "urn://secure-issuer@example.com", "non-registered-claim" : { "This-is-a-thing" : 817, "https://example.com/foobar" : { "p": 42, "q": false } } }
<অতিরিক্ত শিরোনাম/দাবি>
<AdditionalHeaders> <Claim name='claim1'>explicit-value-of-claim-here</Claim> <Claim name='claim2' ref='variable-name-here'/> <Claim name='claim3' ref='variable-name-here' type='boolean'/> <Claim name='claim4' ref='variable-name' type='string' array='true'/> </AdditionalHeaders>
যাচাই করে যে JWT হেডারে নির্দিষ্ট অতিরিক্ত দাবির নাম/মূল্যের জোড়া(গুলি) রয়েছে এবং দাবি করা মানগুলি মিলে যায়।
একটি অতিরিক্ত দাবি এমন একটি নাম ব্যবহার করে যা স্ট্যান্ডার্ড, নিবন্ধিত JWT দাবির নামগুলির মধ্যে একটি নয়। একটি অতিরিক্ত দাবির মান একটি স্ট্রিং, একটি সংখ্যা, একটি বুলিয়ান, একটি মানচিত্র বা একটি অ্যারে হতে পারে। একটি মানচিত্র হল নাম/মান জোড়ার একটি সেট। এই ধরনের যেকোনো একটি দাবির মান নীতি কনফিগারেশনে স্পষ্টভাবে বা পরোক্ষভাবে একটি ফ্লো ভেরিয়েবলের রেফারেন্সের মাধ্যমে নির্দিষ্ট করা যেতে পারে।
| ডিফল্ট | N/A |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং (ডিফল্ট), সংখ্যা, বুলিয়ান বা মানচিত্র। কোনো প্রকার নির্দিষ্ট না থাকলে টাইপটি স্ট্রিং-এ ডিফল্ট হয়। |
| অ্যারে | মানটি ধরনগুলির একটি অ্যারে কিনা তা নির্দেশ করতে সত্যে সেট করুন। ডিফল্ট: মিথ্যা |
| বৈধ মান | আপনি একটি অতিরিক্ত দাবির জন্য ব্যবহার করতে চান যে কোনো মান. |
<Claim> উপাদানটি এই বৈশিষ্ট্যগুলি গ্রহণ করে:
- নাম - (প্রয়োজনীয়) দাবির নাম।
- ref - (ঐচ্ছিক) একটি ফ্লো ভেরিয়েবলের নাম। উপস্থিত থাকলে, নীতি দাবি হিসাবে এই ভেরিয়েবলের মান ব্যবহার করবে। যদি একটি রেফ অ্যাট্রিবিউট এবং একটি স্পষ্ট দাবি মান উভয়ই নির্দিষ্ট করা থাকে, তাহলে স্পষ্ট মানটি ডিফল্ট, এবং যদি উল্লেখিত ফ্লো ভেরিয়েবল অমীমাংসিত হয় তাহলে ব্যবহার করা হয়।
- প্রকার - (ঐচ্ছিক) এর মধ্যে একটি: স্ট্রিং (ডিফল্ট), সংখ্যা, বুলিয়ান বা মানচিত্র
- অ্যারে - (ঐচ্ছিক) মানটি ধরনগুলির একটি অ্যারে কিনা তা নির্দেশ করতে সত্যে সেট করুন। ডিফল্ট: মিথ্যা।
<কাস্টম দাবি>
দ্রষ্টব্য: বর্তমানে, আপনি যখন UI এর মাধ্যমে একটি নতুন GenerateJWT নীতি যোগ করেন তখন একটি CustomClaims উপাদান ঢোকানো হয়। এই উপাদানটি কার্যকরী নয় এবং উপেক্ষা করা হয়। পরিবর্তে ব্যবহার করার জন্য সঠিক উপাদান হল <অতিরিক্ত দাবি >। পরবর্তী সময়ে সঠিক উপাদান সন্নিবেশ করার জন্য UI আপডেট করা হবে।
<আইডি>
<Id>explicit-jti-value-here</Id> -or- <Id ref='variable-name-here'/> -or- <Id/>
JWT-এর নির্দিষ্ট jti দাবি আছে কিনা তা যাচাই করে। যখন টেক্সট মান এবং রেফ অ্যাট্রিবিউট উভয়ই খালি থাকে, তখন নীতিটি একটি এলোমেলো UUID ধারণকারী একটি jti তৈরি করবে। JWT আইডি (jti) দাবি JWT-এর জন্য একটি অনন্য শনাক্তকারী। jti সম্পর্কে আরও তথ্যের জন্য, RFC7519 দেখুন।
| ডিফল্ট | N/A |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং, বা রেফারেন্স। |
| বৈধ মান | হয় একটি স্ট্রিং বা ID ধারণকারী একটি ফ্লো ভেরিয়েবলের নাম। |
<CriticalHeaders> উপেক্ষা করুন
<IgnoreCriticalHeaders>true|false</IgnoreCriticalHeaders>
JWT-এর ক্রিট হেডারে তালিকাভুক্ত যেকোন হেডার <KnownHeaders> এলিমেন্টে তালিকাভুক্ত না থাকলে আপনি যদি নীতিটি ত্রুটি ছুঁড়তে চান তাহলে মিথ্যাতে সেট করুন। VerifyJWT পলিসি ক্রিট হেডার উপেক্ষা করার জন্য সত্যে সেট করুন।
এই উপাদানটিকে সত্য হিসাবে সেট করার একটি কারণ হল আপনি যদি একটি পরীক্ষার পরিবেশে থাকেন এবং একটি অনুপস্থিত শিরোনামে ব্যর্থতার জন্য এখনও প্রস্তুত না হন।
| ডিফল্ট | মিথ্যা |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | বুলিয়ান |
| বৈধ মান | সত্য বা মিথ্যা |
<IgnoreIssuedAt>
<IgnoreIssuedAt>true|false</IgnoreIssuedAt>
মিথ্যা (ডিফল্ট) তে সেট করুন যদি আপনি চান যে নীতিটি একটি ত্রুটি ছুঁড়তে পারে যখন একটি JWT-তে একটি iat (ইস্যু করা হয়েছে) দাবি থাকে যা ভবিষ্যতে একটি সময় নির্দিষ্ট করে। যাচাইকরণের সময় iat উপেক্ষা করার জন্য নীতিটি সত্যে সেট করুন৷
| ডিফল্ট | মিথ্যা |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | বুলিয়ান |
| বৈধ মান | সত্য বা মিথ্যা |
<অমীমাংসিত ভেরিয়েবলগুলিকে উপেক্ষা করুন>
<IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>
পলিসিতে উল্লেখ করা যেকোন রেফারেন্স ভেরিয়েবল অমীমাংসিত হলে আপনি যদি নীতিটি একটি ত্রুটি ছুঁড়তে চান তাহলে মিথ্যাতে সেট করুন৷ কোনো অমীমাংসিত ভেরিয়েবলকে খালি স্ট্রিং (নাল) হিসাবে বিবেচনা করার জন্য সত্যে সেট করুন।
| ডিফল্ট | মিথ্যা |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | বুলিয়ান |
| বৈধ মান | সত্য বা মিথ্যা |
<ইস্যুকারী>
<Issuer ref='variable-name-here'/> <Issuer>issuer-string-here</Issuer>
নীতিটি যাচাই করে যে JWT-এর ইস্যুকারী কনফিগারেশন এলিমেন্টে উল্লেখিত স্ট্রিংয়ের সাথে মেলে। একটি দাবি যা JWT প্রদানকারীকে চিহ্নিত করে। এটি RFC7519- এ উল্লিখিত দাবিগুলির একটি নিবন্ধিত সেট।
| ডিফল্ট | N/A |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং, বা রেফারেন্স |
| বৈধ মান | যে কোন |
<জানা শিরোনাম>
<KnownHeaders>a,b,c</KnownHeaders> or: <KnownHeaders ref=’variable_containing_headers’/>
জেনারেটজেডব্লিউটি নীতি একটি জেডব্লিউটি-তে ক্রিট শিরোলেখ তৈরি করতে <CriticalHeaders> উপাদান ব্যবহার করে। যেমন:
{
“typ: “...”,
“alg” : “...”,
“crit” : [ “a”, “b”, “c” ],
}VerifyJWT নীতি JWT-তে ক্রিট হেডার পরীক্ষা করে, যদি এটি বিদ্যমান থাকে, এবং তালিকাভুক্ত প্রতিটি হেডারের জন্য এটি চেক করে যে <KnownHeaders> উপাদানটিও সেই শিরোনামটি তালিকাভুক্ত করে। <KnownHeaders> উপাদানটিতে crit- এ তালিকাভুক্ত আইটেমগুলির একটি সুপারসেট থাকতে পারে। ক্রিটে তালিকাভুক্ত সমস্ত শিরোনাম <KnownHeaders> এলিমেন্টে তালিকাভুক্ত করা প্রয়োজন। যে কোনো শিরোনাম যা নীতির সমালোচনায় পাওয়া যায় যেটি <KnownHeaders> -এও তালিকাভুক্ত নয়, তার ফলে VerifyJWT নীতি ব্যর্থ হয়।
আপনি ঐচ্ছিকভাবে <IgnoreCriticalHeaders> উপাদানটিকে true সেট করে ক্রিট হেডার উপেক্ষা করার জন্য VerifyJWT নীতি কনফিগার করতে পারেন।
| ডিফল্ট | N/A |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিংগুলির কমা দ্বারা বিভক্ত অ্যারে |
| বৈধ মান | হয় একটি অ্যারে বা অ্যারে ধারণকারী একটি ভেরিয়েবলের নাম। |
<পাবলিককী/শংসাপত্র>
<PublicKey> <Certificate ref="signed_public.cert"/> </PublicKey> -or- <PublicKey> <Certificate> -----BEGIN CERTIFICATE----- cert data -----END CERTIFICATE----- </Certificate> </PublicKey>
JWT-তে স্বাক্ষর যাচাই করতে ব্যবহৃত স্বাক্ষরিত শংসাপত্রটি নির্দিষ্ট করে। একটি ফ্লো ভেরিয়েবলে স্বাক্ষরিত শংসাপত্র পাস করতে ref বৈশিষ্ট্য ব্যবহার করুন, অথবা সরাসরি PEM-এনকোডেড শংসাপত্র নির্দিষ্ট করুন৷ শুধুমাত্র তখনই ব্যবহার করুন যখন অ্যালগরিদমটি RS256/RS384/RS512, PS256/PS384/PS512, অথবা ES256/ES384/ES512-এর মধ্যে একটি হয়৷
| ডিফল্ট | N/A |
| উপস্থিতি | একটি RSA অ্যালগরিদমের সাথে স্বাক্ষরিত একটি JWT যাচাই করতে, আপনাকে হয় সার্টিফিকেট, JWKS বা মান উপাদান ব্যবহার করতে হবে। |
| টাইপ | স্ট্রিং |
| বৈধ মান | একটি প্রবাহ পরিবর্তনশীল বা স্ট্রিং। |
<PublicKey/JWKS>
<!-- Specify the JWKS. --> <PublicKey> <JWKS>jwks-value-here</JWKS> </PublicKey> or: <!-- Specify a variable containing the JWKS. --> <PublicKey> <JWKS ref="public.jwks"/> </PublicKey> or: <!-- Specify a public URL that returns the JWKS. The URL is static, meaning you cannot set it using a variable. --> <PublicKey> <JWKS uri="jwks-url"/> </PublicKey>
JWKS বিন্যাসে একটি মান নির্দিষ্ট করে ( RFC 7517 ) যেখানে পাবলিক কীগুলির একটি সেট রয়েছে। শুধুমাত্র তখনই ব্যবহার করুন যখন অ্যালগরিদমটি RS256/RS384/RS512, PS256/PS384/PS512, অথবা ES256/ES384/ES512-এর মধ্যে একটি হয়৷
যদি ইনবাউন্ড JWT একটি কী আইডি বহন করে যা JWKS-এর সেটে উপস্থিত থাকে, তাহলে নীতি JWT স্বাক্ষর যাচাই করতে সঠিক পাবলিক কী ব্যবহার করবে। এই বৈশিষ্ট্য সম্পর্কে বিস্তারিত জানার জন্য, একটি JWT যাচাই করতে একটি JSON ওয়েব কী সেট (JWKS) ব্যবহার করা দেখুন।
যদি আপনি একটি সর্বজনীন URL থেকে মান আনেন, এজ 300 সেকেন্ডের জন্য JWKS কে ক্যাশ করে। ক্যাশের মেয়াদ শেষ হয়ে গেলে, এজ আবার JWKS নিয়ে আসে।
| ডিফল্ট | N/A |
| উপস্থিতি | একটি RSA অ্যালগরিদম ব্যবহার করে একটি JWT যাচাই করতে, আপনাকে হয় সার্টিফিকেট, JWKS বা মান উপাদান ব্যবহার করতে হবে। |
| টাইপ | স্ট্রিং |
| বৈধ মান | একটি ফ্লো ভেরিয়েবল, স্ট্রিং মান, বা URL। |
<PublicKey/Value>
<PublicKey> <Value ref="public.publickeyorcert"/> </PublicKey> -or- <PublicKey> <Value> -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw2kPrRzcufvUNHvTH/WW Q0UrCw5c0+Y707KX3PpXkZGbtTT4nvU1jC0d1lHV8MfUyRXmpmnNxJHAC2F73IyN C5TBtXMORc+us7A2cTtC4gZV256bT4h3sIEMsDl0Joz9K9MPzVPFxa1i0RgNt06n Xn/Bs2UbbLlKP5Q1HPxewUDEh0gVMqz9wdIGwH1pPxKvd3NltYGfPsUQovlof3l2 ALvO7i5Yrm96kknfFEWf1EjmCCKvz2vjVbBb6mp1ZpYfc9MOTZVpQcXSbzb/BWUo ZmkDb/DRW5onclGzxQITBFP3S6JXd4LNESJcTp705ec1cQ9Wp2Kl+nKrKyv1E5Xx DQIDAQAB -----END PUBLIC KEY----- </Value> </PublicKey>
JWT-তে স্বাক্ষর যাচাই করতে ব্যবহৃত পাবলিক কী বা সর্বজনীন শংসাপত্র নির্দিষ্ট করে। একটি ফ্লো ভেরিয়েবলে কী/সার্ট পাস করতে রেফ অ্যাট্রিবিউট ব্যবহার করুন, অথবা সরাসরি PEM-এনকোডেড কী নির্দিষ্ট করুন। শুধুমাত্র তখনই ব্যবহার করুন যখন অ্যালগরিদমটি RS256/RS384/RS512, PS256/PS384/PS512, অথবা ES256/ES384/ES512-এর মধ্যে একটি হয়৷
| ডিফল্ট | N/A |
| উপস্থিতি | একটি RSA অ্যালগরিদমের সাথে স্বাক্ষরিত একটি JWT যাচাই করতে, আপনাকে হয় সার্টিফিকেট, JWKS বা মান উপাদান ব্যবহার করতে হবে। |
| টাইপ | স্ট্রিং |
| বৈধ মান | একটি প্রবাহ পরিবর্তনশীল বা স্ট্রিং। |
<গোপন কী/মান>
<SecretKey encoding="base16|hex|base64|base64url"> <Value ref="private.your-variable-name"/> </SecretKey>
একটি HMAC অ্যালগরিদম দিয়ে টোকেন যাচাই বা স্বাক্ষর করতে ব্যবহৃত গোপন কী প্রদান করে। অ্যালগরিদম HS256, HS384, HS512-এর মধ্যে একটি হলেই ব্যবহার করুন। .
| ডিফল্ট | N/A |
| উপস্থিতি | HMAC অ্যালগরিদমের জন্য প্রয়োজনীয়। |
| টাইপ | স্ট্রিং |
| বৈধ মান | একটি ফ্লো ভেরিয়েবলে কী পাস করতে রেফ অ্যাট্রিবিউট ব্যবহার করুন। দ্রষ্টব্য: একটি ফ্লো ভেরিয়েবল হলে, এটি অবশ্যই "ব্যক্তিগত" উপসর্গ থাকতে হবে। উদাহরণস্বরূপ, |
<উৎস>
<Source>jwt-variable</Source>
যদি উপস্থিত থাকে, তাহলে ফ্লো ভেরিয়েবল নির্দিষ্ট করে যেখানে পলিসি যাচাই করার জন্য JWT খুঁজে পাওয়ার আশা করে।
| ডিফল্ট | request.header.authorization (ডিফল্ট সম্পর্কে গুরুত্বপূর্ণ তথ্যের জন্য উপরের নোটটি দেখুন)। |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
| বৈধ মান | একটি এজ ফ্লো পরিবর্তনশীল নাম। |
<বিষয়>
<Subject>subject-string-here</Subject>
নীতিটি যাচাই করে যে JWT-এর বিষয় পলিসি কনফিগারেশনে উল্লেখিত স্ট্রিংয়ের সাথে মেলে। এই দাবি JWT এর বিষয় সম্পর্কে একটি বিবৃতি সনাক্ত করে বা করে। এটি RFC7519- এ উল্লিখিত দাবিগুলির একটি আদর্শ সেট।
| ডিফল্ট | N/A |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
| বৈধ মান | যে কোনো মান অনন্যভাবে একটি বিষয় চিহ্নিত করে। |
<সময় ভাতা>
<TimeAllowance>120s</TimeAllowance>
সময়ের জন্য "গ্রেস পিরিয়ড"। উদাহরণ স্বরূপ, যদি সময় ভাতা 60 এর জন্য কনফিগার করা হয়, তাহলে মেয়াদ শেষ হয়ে যাওয়া JWTকে বৈধ বলে গণ্য করা হবে, দাবিকৃত মেয়াদ শেষ হওয়ার পর 60 এর জন্য। পূর্ববর্তী সময়ের একইভাবে মূল্যায়ন করা হবে। ডিফল্ট 0 সেকেন্ড (কোন গ্রেস পিরিয়ড নেই)।
| ডিফল্ট | 0 সেকেন্ড (কোন গ্রেস পিরিয়ড নেই) |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ | স্ট্রিং |
| বৈধ মান | একটি মান বা মান ধারণকারী একটি ফ্লো ভেরিয়েবলের একটি রেফারেন্স। সময় স্প্যান নিম্নলিখিত হিসাবে নির্দিষ্ট করা যেতে পারে:
|
Flow variables
Upon success, the Verify JWT and Decode JWT policies set context variables according to this pattern:
jwt.{policy_name}.{variable_name}
For example, if the policy name is jwt-parse-token , then the policy will store
the subject specified in the JWT to the context variable named jwt.jwt-parse-token.decoded.claim.sub.
(For backward compatibility, it will also be available in jwt.jwt-parse-token.claim.subject)
| Variable name | Description |
|---|---|
claim.audience |
The JWT audience claim. This value may be a string, or an array of strings. |
claim.expiry |
The expiration date/time, expressed in milliseconds since epoch. |
claim.issuedat |
The Date the token was issued, expressed in milliseconds since epoch. |
claim.issuer |
The JWT issuer claim. |
claim.notbefore |
If the JWT includes a nbf claim, this variable will contain the value, expressed in milliseconds since epoch. |
claim.subject |
The JWT subject claim. |
claim.name |
The value of the named claim (standard or additional) in the payload. One of these will be set for every claim in the payload. |
decoded.claim.name |
The JSON-parsable value of the named claim (standard or additional) in the payload. One variable is set for
every claim in the payload. For example, you can use decoded.claim.iat to
retrieve the issued-at time of the JWT, expressed in seconds since epoch. While you
can also use the claim.name flow variables, this is the
recommended variable to use to access a claim. |
decoded.header.name |
The JSON-parsable value of a header in the payload. One variable is set for
every header in the payload. While you can also use the header.name flow variables,
this is the recommended variable to use to access a header. |
expiry_formatted |
The expiration date/time, formatted as a human-readable string. Example: 2017-09-28T21:30:45.000+0000 |
header.algorithm |
The signing algorithm used on the JWT. For example, RS256, HS384, and so on. See (Algorithm) Header Parameter for more. |
header.kid |
The Key ID, if added when the JWT was generated. See also "Using a JSON Web Key Set (JWKS)" at JWT policies overview to verify a JWT. See (Key ID) Header Parameter for more. |
header.type |
Will be set to JWT. |
header.name |
The value of the named header (standard or additional). One of these will be set for every additional header in the header portion of the JWT. |
header-json |
The header in JSON format. |
is_expired |
true or false |
payload-claim-names |
An array of claims supported by the JWT. |
payload-json |
The payload in JSON format.
|
seconds_remaining |
The number of seconds before the token will expire. If the token is expired, this number will be negative. |
time_remaining_formatted |
The time remaining before the token will expire, formatted as a human-readable string. Example: 00:59:59.926 |
valid |
In the case of VerifyJWT, this variable will be true when the signature is verified, and
the current time is before the token expiry, and after the token notBefore value, if they
are present. Otherwise false.
In the case of DecodeJWT, this variable is not set. |
ত্রুটি উল্লেখ
এই বিভাগটি ফল্ট কোড এবং ত্রুটির বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷
রানটাইম ত্রুটি
নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷
| ফল্ট কোড | HTTP স্থিতি | যখন ঘটে |
|---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration | 401 | যখন যাচাইকরণ নীতিতে একাধিক অ্যালগরিদম থাকে তখন ঘটে৷ |
steps.jwt.AlgorithmMismatch | 401 | জেনারেট নীতিতে নির্দিষ্ট করা অ্যালগরিদম যাচাই নীতিতে প্রত্যাশিত অ্যালগরিদমটির সাথে মেলেনি৷ নির্দিষ্ট করা অ্যালগরিদম অবশ্যই মিলবে৷ |
steps.jwt.FailedToDecode | 401 | নীতি JWT ডিকোড করতে অক্ষম ছিল. JWT সম্ভবত দূষিত হয়. |
steps.jwt.GenerationFailed | 401 | নীতি JWT তৈরি করতে অক্ষম ছিল। |
steps.jwt.InsufficientKeyLength | 401 | HS256 অ্যালগরিদমের জন্য 32 বাইটের কম, HS386 অ্যালগরিদমের জন্য 48 বাইটের কম এবং HS512 অ্যালগরিদমের জন্য 64 বাইটের কম। |
steps.jwt.InvalidClaim | 401 | একটি অনুপস্থিত দাবি বা দাবি অমিল, বা একটি অনুপস্থিত শিরোনাম বা শিরোনাম অমিলের জন্য৷ |
steps.jwt.InvalidCurve | 401 | কী দ্বারা নির্দিষ্ট করা বক্ররেখা উপবৃত্তাকার কার্ভ অ্যালগরিদমের জন্য বৈধ নয়। |
steps.jwt.InvalidJsonFormat | 401 | হেডার বা পেলোডে অবৈধ JSON পাওয়া গেছে। |
steps.jwt.InvalidToken | 401 | এই ত্রুটিটি ঘটে যখন JWT স্বাক্ষর যাচাইকরণ ব্যর্থ হয়। |
steps.jwt.JwtAudienceMismatch | 401 | দর্শকদের দাবি টোকেন যাচাইয়ে ব্যর্থ হয়েছে৷ |
steps.jwt.JwtIssuerMismatch | 401 | ইস্যুকারীর দাবি টোকেন যাচাইকরণে ব্যর্থ হয়েছে। |
steps.jwt.JwtSubjectMismatch | 401 | বিষয় দাবি টোকেন যাচাই ব্যর্থ হয়েছে. |
steps.jwt.KeyIdMissing | 401 | যাচাই নীতিতে একটি JWKS পাবলিক কীগুলির উত্স হিসাবে ব্যবহার করা হয়, তবে স্বাক্ষরিত JWT শিরোনামে একটি kid সম্পত্তি অন্তর্ভুক্ত করে না। |
steps.jwt.KeyParsingFailed | 401 | প্রদত্ত মূল তথ্য থেকে সর্বজনীন কী পার্স করা যায়নি। |
steps.jwt.NoAlgorithmFoundInHeader | 401 | তখন ঘটে যখন JWT-এ কোনো অ্যালগরিদম হেডার থাকে না। |
steps.jwt.NoMatchingPublicKey | 401 | যাচাই নীতিতে একটি JWKS-কে পাবলিক কীগুলির উৎস হিসেবে ব্যবহার করা হয়, কিন্তু স্বাক্ষরিত JWT-এর kid JWKS-এ তালিকাভুক্ত নয়। |
steps.jwt.SigningFailed | 401 | জেনারেটজেডব্লিউটি-তে, HS384 বা HS512 অ্যালগরিদমের ন্যূনতম আকারের চেয়ে কম একটি কী-এর জন্য |
steps.jwt.TokenExpired | 401 | নীতি একটি মেয়াদ উত্তীর্ণ টোকেন যাচাই করার চেষ্টা করে। |
steps.jwt.TokenNotYetValid | 401 | টোকেন এখনও বৈধ নয়. |
steps.jwt.UnhandledCriticalHeader | 401 | crit হেডারে যাচাই JWT নীতির দ্বারা পাওয়া একটি হেডার KnownHeaders এ তালিকাভুক্ত নয়। |
steps.jwt.UnknownException | 401 | একটি অজানা ব্যতিক্রম ঘটেছে. |
steps.jwt.WrongKeyType | 401 | ভুল ধরনের কী নির্দিষ্ট করা হয়েছে। উদাহরণস্বরূপ, যদি আপনি একটি উপবৃত্তাকার কার্ভ অ্যালগরিদমের জন্য একটি RSA কী বা একটি RSA অ্যালগরিদমের জন্য একটি কার্ভ কী উল্লেখ করেন। |
স্থাপনার ত্রুটি
আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷
| ত্রুটির নাম | কারণ | ঠিক করুন |
|---|---|---|
InvalidNameForAdditionalClaim | <AdditionalClaims> উপাদানের চাইল্ড এলিমেন্ট <Claim> এ ব্যবহৃত দাবি নিম্নলিখিত নিবন্ধিত নামগুলির মধ্যে একটি হলে স্থাপনা ব্যর্থ হবে: kid , iss , sub , aud , iat , exp , nbf , বা jti । | build |
InvalidTypeForAdditionalClaim | যদি <AdditionalClaims> উপাদানের চাইল্ড এলিমেন্ট <Claim> এ ব্যবহৃত দাবিটি string , number , boolean বা map প্রকারের না হয়, তাহলে স্থাপনা ব্যর্থ হবে। | build |
MissingNameForAdditionalClaim | যদি দাবির নাম <AdditionalClaims> উপাদানের চাইল্ড এলিমেন্ট <Claim> এ নির্দিষ্ট করা না থাকে, তাহলে স্থাপনা ব্যর্থ হবে। | build |
InvalidNameForAdditionalHeader | এই ত্রুটিটি ঘটে যখন <AdditionalClaims> উপাদানের চাইল্ড এলিমেন্ট <Claim> এ ব্যবহৃত দাবির নাম হয় alg বা typ । | build |
InvalidTypeForAdditionalHeader | যদি <AdditionalClaims> উপাদানের চাইল্ড এলিমেন্ট <Claim> এ ব্যবহৃত দাবির ধরনটি string , number , boolean বা map প্রকারের না হয়, তাহলে স্থাপনা ব্যর্থ হবে। | build |
InvalidValueOfArrayAttribute | এই ত্রুটিটি ঘটে যখন <AdditionalClaims> উপাদানের চাইল্ড এলিমেন্ট <Claim> এ অ্যারের অ্যাট্রিবিউটের মান true বা false সেট করা হয় না। | build |
InvalidValueForElement | <Algorithm> এলিমেন্টে উল্লেখ করা মান সমর্থিত মান না হলে, স্থাপনা ব্যর্থ হবে। | build |
MissingConfigurationElement | এই ত্রুটি ঘটবে যদি <PrivateKey> উপাদানটি RSA ফ্যামিলি অ্যালগরিদমের সাথে ব্যবহার না করা হয় অথবা <SecretKey> উপাদানটি HS ফ্যামিলি অ্যালগরিদমের সাথে ব্যবহার না করা হয়। | build |
InvalidKeyConfiguration | যদি চাইল্ড উপাদান <Value> <PrivateKey> বা <SecretKey> উপাদানে সংজ্ঞায়িত না হয়, তাহলে স্থাপনা ব্যর্থ হবে। | build |
EmptyElementForKeyConfiguration | যদি <PrivateKey> বা <SecretKey> এলিমেন্টের চাইল্ড এলিমেন্ট <Value> এর রেফ অ্যাট্রিবিউট খালি বা অনির্দিষ্ট থাকে, তাহলে ডিপ্লয়মেন্ট ব্যর্থ হবে। | build |
InvalidConfigurationForVerify | এই ত্রুটিটি ঘটে যদি <Id> উপাদানটি <SecretKey> উপাদানের মধ্যে সংজ্ঞায়িত করা হয়। | build |
InvalidEmptyElement | যাচাই JWT নীতির <Source> উপাদান খালি থাকলে এই ত্রুটি ঘটে। যদি উপস্থিত থাকে, এটি অবশ্যই একটি এজ ফ্লো পরিবর্তনশীল নাম দিয়ে সংজ্ঞায়িত করা উচিত। | build |
InvalidPublicKeyValue | যদি <PublicKey> এলিমেন্টের চাইল্ড এলিমেন্ট <JWKS> এ ব্যবহৃত মান RFC 7517- এ উল্লিখিত কোনো বৈধ বিন্যাস ব্যবহার না করে, তাহলে স্থাপনা ব্যর্থ হবে। | build |
InvalidConfigurationForActionAndAlgorithm | যদি <PrivateKey> উপাদানটি HS ফ্যামিলি অ্যালগরিদমের সাথে ব্যবহার করা হয় বা RSA ফ্যামিলি অ্যালগরিদমের সাথে <SecretKey> উপাদান ব্যবহার করা হয়, তাহলে স্থাপনা ব্যর্থ হবে। | build |
ফল্ট ভেরিয়েবল
রানটাইম ত্রুটি ঘটলে এই ভেরিয়েবলগুলি সেট করা হয়। আরও তথ্যের জন্য, নীতি ত্রুটি সম্পর্কে আপনার যা জানা দরকার তা দেখুন।
| ভেরিয়েবল | যেখানে | উদাহরণ |
|---|---|---|
fault.name=" fault_name " | fault_name হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। | fault.name Matches "TokenExpired" |
JWT.failed | সমস্ত JWT নীতি ব্যর্থতার ক্ষেত্রে একই পরিবর্তনশীল সেট করে। | JWT.failed = true |
উদাহরণ ত্রুটি প্রতিক্রিয়া
ত্রুটি পরিচালনার জন্য, সর্বোত্তম অনুশীলন হল ত্রুটি প্রতিক্রিয়ার errorcode অংশটি আটকে রাখা। faultstring -এ লেখার উপর নির্ভর করবেন না, কারণ এটি পরিবর্তন হতে পারে।
উদাহরণ দোষ নিয়ম
<FaultRules>
<FaultRule name="JWT Policy Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "TokenExpired")</Condition>
</Step>
<Condition>JWT.failed=true</Condition>
</FaultRule>
</FaultRules>