আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
কী
দাবিগুলির কনফিগার করা সেট সহ একটি স্বাক্ষরিত JWS তৈরি করে। JWS তারপরে ক্লায়েন্টকে ফেরত পাঠানো, ব্যাকএন্ড টার্গেটে ট্রান্সমিট করা বা অন্য উপায়ে ব্যবহার করা যেতে পারে। বিস্তারিত ভূমিকা পেতে JWS ও JWT নীতি ওভারভিউ দেখুন।
JWS-এর অংশ এবং সেগুলি কীভাবে এনক্রিপ্ট ও সাইন করা হয় সেই সম্পর্কে জানতে, RFC7515 দেখুন।
ভিডিও
কীভাবে সাইন করা JWT তৈরি করতে হয় তা জানতে একটি ছোট ভিডিও দেখুন। এই ভিডিওটি JWT জেনারেট করার জন্য নির্দিষ্ট হলেও, JWS-এর জন্য অনেক কনসেপ্ট একই।
নমুনা
- HS256 অ্যালগরিদম দিয়ে স্বাক্ষর করা একটি অ্যাটাচ করা JWS জেনারেট করুন
- RS256 অ্যালগরিদম দিয়ে সাইন করা একটি ডিট্যাচড JWS তৈরি করুন
HS256 অ্যালগরিদম দিয়ে সাইন করা অ্যাটাচ করা JWS তৈরি করা
এই উদাহরণ নীতি একটি অ্যাটাচ করা JWS তৈরি করে এবং HS256 অ্যালগরিদম ব্যবহার করে এটি স্বাক্ষর করে। HS256, স্বাক্ষর যাচাই ও স্বাক্ষর করার জন্য শেয়ার করা সিক্রেটের উপর নির্ভর করে।
অ্যাটাচ করা JWS-এ এনকোড করা হেডার, পেলোড ও স্বাক্ষর থাকে:
header.payload.signature
আলাদা কন্টেন্ট তৈরি করতে <DetachContent>-এর মান true হিসেবে সেট করুন।
JWS-এর গঠন ও ফর্ম্যাট সম্পর্কে আরও জানতে
JWS/JWT-এর অংশ দেখুন।
কাঁচা, এনকোড না করা JWS পেলোড নির্দিষ্ট করতে <Payload> এলিমেন্ট ব্যবহার করুন।
এই উদাহরণে, একটি ভেরিয়েবলে পেলোড থাকে। এই নীতি সংক্রান্ত অ্যাকশন ট্রিগার করা হলে,
Edge JWS হেডার ও পেলোড এনকোড করে, তারপর JWS-এ ডিজিটাল স্বাক্ষর করার জন্য এনকোড করা স্বাক্ষর যোগ করে।
নিচে উল্লেখ করা নীতি কনফিগারেশন, ভেরিয়েবলে থাকা পেলোড থেকে JWS তৈরি করে
private.payload।
<GenerateJWS name="JWS-Generate-HS256"> <DisplayName>JWS Generate HS256</DisplayName> <Algorithm>HS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> <Payload ref="private.payload" /> <OutputVariable>jws-variable</OutputVariable> </GenerateJWS>
RS256 অ্যালগরিদম দিয়ে সাইন করা একটি আলাদা JWS তৈরি করুন
এই নীতির উদাহরণে একটি আলাদা JWS তৈরি করা হয় এবং RS256 অ্যালগরিদম ব্যবহার করে তাতে স্বাক্ষর করা হয়। RS256 সিগনেচার তৈরি করার জন্য RSA প্রাইভেট কী প্রয়োজন, যা অবশ্যই PEM-এনকোডেড ফর্ম্যাটে দিতে হবে।
একটি আলাদা করা JWS, JWS থেকে পেলোড বাদ দেয়:
header..signature
কাঁচা, এনকোড না করা JWS পেলোড নির্দিষ্ট করতে <Payload> এলিমেন্ট ব্যবহার করুন।
এই নীতি ট্রিগার করা হলে, Edge JWS হেডার ও পেলোড এনকোড করে,
এবং তারপর এনকোড করা স্বাক্ষর তৈরি করতে সেগুলি ব্যবহার করে। তবে, জেনারেট করা JWS-এ পেলোড থাকে না।
VerifyJWS নীতির
<DetachedContent> এলিমেন্ট ব্যবহার করে VerifyJWS নীতিতে পেলোড পাস করার দায়িত্ব আপনার।
<GenerateJWS name="JWS-Generate-RS256"> <DisplayName>JWS Generate RS256</DisplayName> <Algorithm>RS256</Algorithm> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <PrivateKey> <Value ref="private.privatekey"/> <Password ref="private.privatekey-password"/> <Id ref="private.privatekey-id"/> </PrivateKey> <Payload ref="private.payload" /> <DetachContent>true</DetachContent> <OutputVariable>jws-variable</OutputVariable> </GenerateJWS>
মূল এলিমেন্ট সেট করা
JWS জেনারেট করার জন্য ব্যবহৃত কী নির্দিষ্ট করতে আপনি যেসব এলিমেন্ট ব্যবহার করেন তা বেছে নেওয়া অ্যালগরিদমের উপর নির্ভর করে, নিচের সারণীতে দেখানো হয়েছে:
| অ্যালগরিদম | গুরুত্বপূর্ণ এলিমেন্ট | |
|---|---|---|
| HS{256/384/512}* | <SecretKey> <Value ref="private.secretkey"/> <Id>1918290</Id> </SecretKey> |
|
| RS/PS/ES{256/384/512}* | <PrivateKey> <Value ref="private.privatekey"/> <Password ref="private.privatekey-password"/> <Id ref="private.privatekey-id"/> </PrivateKey>
|
|
| *কী সংক্রান্ত প্রয়োজনীয়তা সম্পর্কে আরও জানতে, সিগনেচার এনক্রিপশন অ্যালগরিদম সম্পর্কে দেখুন। | ||
Generate JWS-এর জন্য এলিমেন্ট রেফারেন্স
নীতি সংক্রান্ত রেফারেন্সে জেনারেট JWS নীতির এলিমেন্ট ও অ্যাট্রিবিউট বর্ণনা করা আছে।
মনে রাখবেন: আপনি যে এনক্রিপশন অ্যালগরিদম ব্যবহার করেন তার উপর নির্ভর করে কনফিগারেশন কিছুটা আলাদা হবে। নির্দিষ্ট ব্যবহারিক প্রয়োগের জন্য কনফিগারেশন ডেমোনস্ট্রেট করে এমন উদাহরণ পেতে, স্যাম্পেল দেখুন।
টপ-লেভেল এলিমেন্টে প্রযোজ্য অ্যাট্রিবিউট
<GenerateJWS name="JWS" continueOnError="false" enabled="true" async="false">
সব নীতি সংক্রান্ত পেরেন্ট এলিমেন্টের ক্ষেত্রে নিম্নলিখিত অ্যাট্রিবিউট সাধারণ।
| অ্যাট্রিবিউট | বিবরণ | ডিফল্ট | উপস্থিতি |
|---|---|---|---|
| নাম |
নীতির ইন্টার্নাল নাম। নামে ব্যবহার করা অক্ষরগুলি এগুলির মধ্যে সীমাবদ্ধ:
A-Z0-9._\-$ %. তবে, Edge ম্যানেজমেন্ট UI অতিরিক্ত
বিধিনিষেধ আরোপ করে, যেমন অটোমেটিক এমন অক্ষর সরিয়ে দেয় যা আলফানিউমেরিক নয়।
বিকল্প হিসেবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে অন্য, স্বাভাবিক-ভাষার
নাম দিয়ে নীতি লেবেল করতে |
প্রযোজ্য নয় | প্রয়োজনীয় |
| continueOnError |
নীতি কাজ না করলে সমস্যা দেখানোর জন্য false-এ সেট করা হয়। বেশিরভাগ নীতির ক্ষেত্রে এটি প্রত্যাশিত
আচরণ।
|
মিথ্যা | ঐচ্ছিক |
| সক্ষমিত |
নীতি প্রয়োগ করতে true হিসেবে সেট করুন।
নীতি "বন্ধ করতে" |
সত্য | ঐচ্ছিক |
| async | এই অ্যাট্রিবিউট আর কাজ করে না। | মিথ্যা | বন্ধ করে দেওয়া হয়েছে |
<DisplayName>
<DisplayName>Policy Display Name</DisplayName>
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিকে অন্য, স্বাভাবিক-ভাষার নাম দিয়ে লেবেল করার জন্য নাম অ্যাট্রিবিউটের সাথে এটি ব্যবহার করুন ।
| ডিফল্ট | আপনি এই এলিমেন্ট বাদ দিলে, নীতির নাম অ্যাট্রিবিউটের ভ্যালু ব্যবহার করা হয়। |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ করুন | স্ট্রিং |
<Algorithm>
<Algorithm>algorithm-here</Algorithm>
টোকেনে সই করার জন্য এনক্রিপশন অ্যালগরিদম নির্দিষ্ট করে।
| ডিফল্ট | প্রযোজ্য নয় |
| উপস্থিতি | প্রয়োজনীয় |
| টাইপ করুন | স্ট্রিং |
| সঠিক ভ্যালু | HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512 |
<AdditionalHeaders/Claim>
<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>
JWS-এর হেডার অংশে অতিরিক্ত দাবি সংক্রান্ত নাম/ভ্যালু পেয়ার যোগ করে।
type=map হলে,| ডিফল্ট | প্রযোজ্য নয় |
| উপস্থিতি | ঐচ্ছিক |
| সঠিক ভ্যালু | অতিরিক্ত দাবি জানানোর জন্য আপনি যে ভ্যালু ব্যবহার করতে চান। আপনি স্ট্রিং, সংখ্যা, বুলিয়ান, ম্যাপ বা অ্যারে হিসেবে দাবি স্পষ্টভাবে উল্লেখ করতে পারেন। |
<Claim> এলিমেন্ট এই অ্যাট্রিবিউটগুলি নেয়:
- name - (আবশ্যক) দাবির নাম।
- ref - (ঐচ্ছিক) ফ্লো ভেরিয়েবলের নাম। উপস্থিত থাকলে, নীতিটি এই ভেরিয়েবলের ভ্যালুকে দাবি হিসেবে ব্যবহার করবে। ref অ্যাট্রিবিউট ও স্পষ্ট দাবি ভ্যালু, দু'টিই উল্লেখ করা থাকলে, স্পষ্ট ভ্যালু ডিফল্ট হিসেবে ধরে নেওয়া হয় এবং রেফারেন্স করা ফ্লো ভেরিয়েবল সমাধান না করা গেলে এটি ব্যবহার করা হয়।
- type - (ঐচ্ছিক) এগুলির মধ্যে একটি: string (ডিফল্ট), number, boolean বা map
- array - (ঐচ্ছিক) ভ্যালু যদি কোনও ধরনের অ্যারে হয়, তাহলে তা বোঝাতে true হিসেবে সেট করুন। ডিফল্ট: false.
<CriticalHeaders>
<CriticalHeaders>a,b,c</CriticalHeaders> or: <CriticalHeaders ref=’variable_containing_headers’/>
JWS-এ গুরুত্বপূর্ণ হেডার, crit, যোগ করে। crit হেডার হল হেডার নামের একটি অ্যারে যা JWS রিসিভারকে অবশ্যই জানতে ও চিনতে হবে। যেমন:
{
“typ: “...”,
“alg” : “...”,
“crit” : [ “a”, “b”, “c” ],
}রানটাইমে, VerifyJWS নীতি crit হেডার পরীক্ষা করে।
crit হেডারে তালিকাভুক্ত প্রতিটি হেডার, VerifyJWS নীতির <KnownHeaders> এলিমেন্টেও
সেই হেডার তালিকাভুক্ত আছে কিনা তা চেক করে। VerifyJWS নীতি crit-এ
এমন কোনও হেডার খুঁজে পেলে যা <KnownHeaders>-এও তালিকাভুক্ত নেই, তাহলে VerifyJWS নীতি কাজ করে না।
| ডিফল্ট | প্রযোজ্য নয় |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ করুন | কমা দিয়ে আলাদা করা স্ট্রিংয়ের অ্যারে |
| সঠিক ভ্যালু | অ্যারে বা অ্যারে থাকা ভেরিয়েবলের নাম। |
<DetachContent>
<DetachContent>true|false</DetachContent>
ডিটাচড পেলোড সহ JWS তৈরি করা হবে কিনা, <DetachContent>true</DetachContent>,
অথবা হবে না, <DetachContent>false</DetachContent> তা নির্দিষ্ট করে।
আপনি false নির্দিষ্ট করলে, ডিফল্ট হিসেবে, জেনারেট করা JWS এই ফর্ম্যাটে থাকবে:
header.payload.signature
আপনি যদি আলাদা পে-লোড তৈরি করার জন্য true নির্দিষ্ট করেন, তাহলে জেনারেট করা JWS পে-লোড বাদ দেয় এবং এই ফর্ম্যাটে থাকে:
header..signature
ডিটাচ করা পেলোডের ক্ষেত্রে, VerifyJWS নীতিতে
VerifyJWS নীতির <DetachedContent> এলিমেন্ট ব্যবহার করে আসল আনএনকোডেড পেলোড পাস করার দায়িত্ব আপনার।
| ডিফল্ট | মিথ্যা |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ করুন | বুলিয়ান |
| সঠিক ভ্যালু | ঠিক বা ভুল |
<IgnoreUnresolvedVariables>
<IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>
নীতিতে উল্লেখ করা কোনও ভেরিয়েবল সমাধান করা না গেলে, আপনি যদি চান যে নীতিটি একটি সমস্যা দেখাক, তাহলে এটি false হিসেবে সেট করুন। কোনও সমাধান করা যায় না এমন ভেরিয়েবলকে খালি স্ট্রিং (নাল) হিসেবে গণ্য করতে true হিসেবে সেট করুন।
| ডিফল্ট | মিথ্যা |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ করুন | বুলিয়ান |
| সঠিক ভ্যালু | ঠিক বা ভুল |
<OutputVariable>
<OutputVariable>JWS-variable</OutputVariable>
এই নীতি দ্বারা তৈরি JWS কোথায় প্লেস করতে হবে তা নির্দিষ্ট করে। ডিফল্ট হিসেবে এটি
ফ্লো ভেরিয়েবল jws.POLICYNAME.generated_jws-এ প্লেস করা হয়।
| ডিফল্ট | jws.POLICYNAME.generated_jws |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ করুন | স্ট্রিং (ফ্লো ভেরিয়েবলের নাম) |
<Payload>
<Payload ref="flow-variable-name-here" /> or <Payload>payload-value</Payload>
এনকোড না করা JWS পেলোড নির্দিষ্ট করে। পেলোড বা স্ট্রিং আছে এমন ভেরিয়েবেল নির্দিষ্ট করুন।
| ডিফল্ট | প্রযোজ্য নয় |
| উপস্থিতি | প্রয়োজনীয় |
| টাইপ করুন | আনএনকোড করা JWS পেলোডের স্ট্রিং, বাইট অ্যারে, স্ট্রিম বা অন্য কোনও উপস্থাপনা। |
<PrivateKey/Id>
<PrivateKey> <Id ref="flow-variable-name-here"/> </PrivateKey> or <PrivateKey> <Id>your-id-value-here</Id> </PrivateKey>
JWS হেডারে অন্তর্ভুক্ত করার জন্য কী আইডি (kid) নির্দিষ্ট করে। অ্যালগরিদম RS256/RS384/RS512, PS256/PS384/PS512 অথবা ES256/ES384/ES512 হলে শুধুমাত্র এটি ব্যবহার করুন।
| ডিফল্ট | প্রযোজ্য নয় |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ করুন | স্ট্রিং |
| সঠিক ভ্যালু | ফ্লো ভেরিয়েবল বা স্ট্রিং |
<PrivateKey/Password>
<PrivateKey> <Password ref="private.privatekey-password"/> </PrivateKey>
প্রয়োজন হলে, প্রাইভেট কী ডিক্রিপ্ট করার জন্য নীতিকে যে পাসওয়ার্ড ব্যবহার করতে হবে তা নির্দিষ্ট করুন। ফ্লো ভেরিয়েবলে কী পাস করতে, ref অ্যাট্রিবিউট ব্যবহার করুন। অ্যালগরিদম RS256/RS384/RS512, PS256/PS384/PS512 অথবা ES256/ES384/ES512 হলে শুধুমাত্র এটি ব্যবহার করুন।
| ডিফল্ট | প্রযোজ্য নয় |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ করুন | স্ট্রিং |
| সঠিক ভ্যালু |
ফ্লো ভেরিয়েবল রেফারেন্স।
মনে রাখবেন: আপনাকে অবশ্যই ফ্লো ভেরিয়েবল নির্দিষ্ট করতে হবে। Edge, পাসওয়ার্ড প্লেনটেক্সটে উল্লেখ করা হয়েছে এমন
নীতি কনফিগারেশনকে ভুল হিসেবে বাতিল করে দেবে। ফ্লো ভেরিয়েবলের
প্রিফিক্স "private" হতে হবে। যেমন, |
<PrivateKey/Value>
<PrivateKey> <Value ref="private.variable-name-here"/> </PrivateKey>
JWS-এ সই করার জন্য ব্যবহৃত PEM-এনকোড করা প্রাইভেট কী নির্দিষ্ট করে। ফ্লো ভেরিয়েবলে কী পাস করাতে ref অ্যাট্রিবিউট ব্যবহার করুন। অ্যালগরিদম RS256/RS384/RS512, PS256/PS384/PS512 অথবা ES256/ES384/ES512 হলে তবেই ব্যবহার করুন।
| ডিফল্ট | প্রযোজ্য নয় |
| উপস্থিতি | RS256 অ্যালগরিদম ব্যবহার করে JWS তৈরি করতে হবে। |
| টাইপ করুন | স্ট্রিং |
| সঠিক ভ্যালু |
PEM-এনকোড করা RSA প্রাইভেট কী ভ্যালু বোঝায় এমন স্ট্রিং সহ ফ্লো ভেরিয়েবল।
মনে রাখবেন: ফ্লো ভেরিয়েবেলে "private" প্রিফিক্স থাকতে হবে। যেমন,
|
<SecretKey/Id>
<SecretKey> <Id ref="flow-variable-name-here"/> </SecretKey> or <SecretKey> <Id>your-id-value-here</Id> </SecretKey>
HMAC অ্যালগরিদম দিয়ে সাইন করা JWS-এর JWS হেডারে অন্তর্ভুক্ত করার জন্য কী আইডি (kid) নির্দিষ্ট করে। অ্যালগরিদম HS256/HS384/HS512 হলে তবেই ব্যবহার করুন।
| ডিফল্ট | প্রযোজ্য নয় |
| উপস্থিতি | ঐচ্ছিক |
| টাইপ করুন | স্ট্রিং |
| সঠিক ভ্যালু | ফ্লো ভেরিয়েবল বা স্ট্রিং |
<SecretKey/Value>
<SecretKey> <Value ref="private.your-variable-name"/> </SecretKey>
HMAC অ্যালগরিদম ব্যবহার করে টোকেন যাচাই বা সাইন করার জন্য ব্যবহৃত সিক্রেট কী প্রদান করে। অ্যালগরিদম HS256/HS384/HS512 হলে, শুধুমাত্র ব্যবহার করুন। ফ্লো ভেরিয়েবলে কী পাস করাতে, ref অ্যাট্রিবিউট ব্যবহার করুন।
HS256/HS384/HS512 অ্যালগরিদমের জন্য Edge ন্যূনতম কী শক্তি প্রয়োগ করে। HS256-এর জন্য ন্যূনতম কীয়ের দৈর্ঘ্য ৩২ বাইট, HS384-এর জন্য ৪৮ বাইট এবং HS512-এর জন্য ৬৪ বাইট। কম শক্তির কী ব্যবহার করলে রানটাইম সংক্রান্ত সমস্যা হয়।
| ডিফল্ট | প্রযোজ্য নয় |
| উপস্থিতি | HMAC অ্যালগরিদমের জন্য প্রয়োজন। |
| টাইপ করুন | স্ট্রিং |
| সঠিক ভ্যালু |
স্ট্রিংয়ের রেফারেন্স সহ ফ্লো ভেরিয়েবল
মনে রাখবেন: এটি ফ্লো ভেরিয়েবল হলে, এর আগে "private" প্রিফিক্স থাকতে হবে। যেমন, |
ফ্লো ভেরিয়েবল
Generate JWS নীতি ফ্লো ভেরিয়েবল সেট করে না।
সমস্যার রেফারেন্স
এই নীতি কোনও সমস্যার কারণে ট্রিগার হলে, Edge-এর মাধ্যমে ফেরত আসা ফল্ট কোড ও সমস্যার মেসেজ এবং সেট করা ফল্ট ভেরিয়েবল সম্পর্কে এই বিভাগে বর্ণনা করা হয়েছে। সমস্যা সমাধানের জন্য আপনি যদি ফল্ট রুল তৈরি করেন, তাহলে এই তথ্য জানা আপনার জন্য গুরুত্বপূর্ণ। আরও জানতে, নীতি সংক্রান্ত সমস্যার ব্যাপারে আপনার যা জানা প্রয়োজন এবং সমস্যার সমাধান করা দেখুন।
রানটাইম সমস্যা
নীতি এক্সিকিউট করার সময় এই সমস্যা হতে পারে।
| সমস্যার কোড | HTTP স্ট্যাটাস | এটি তখন ঘটে যখন |
|---|---|---|
steps.jws.GenerationFailed |
401 | নীতিটি JWS তৈরি করতে পারেনি। |
steps.jws.InsufficientKeyLength |
401 | HS256 অ্যালগরিদমের জন্য ৩২ বাইটের কম কী |
steps.jws.InvalidClaim |
401 | দাবি না থাকা বা দাবি না মেলা অথবা হেডার না থাকা বা হেডার না মেলা। |
steps.jws.InvalidCurve |
401 | কী দ্বারা নির্দিষ্ট করা কার্ভটি উপবৃত্তাকার কার্ভ অ্যালগরিদমের জন্য সঠিক নয়। |
steps.jws.InvalidJsonFormat |
401 | JWS হেডারে ভুল JSON পাওয়া গেছে। |
steps.jws.InvalidPayload |
401 | JWS পেলোড সঠিক নয়। |
steps.jws.InvalidSignature |
401 | <DetachedContent> বাদ দেওয়া হয়েছে এবং JWS-এ আলাদা করা কন্টেন্ট পেলোড আছে। |
steps.jws.KeyIdMissing |
401 | যাচাইকরণ নীতি পাবলিক কীয়ের সোর্স হিসেবে JWKS ব্যবহার করে, কিন্তু সাইন করা JWS-এ
হেডারে kid প্রপার্টি অন্তর্ভুক্ত থাকে না। |
steps.jws.KeyParsingFailed |
401 | প্রদত্ত কী সংক্রান্ত তথ্য থেকে সর্বজনীন কী পার্স করা যায়নি। |
steps.jws.MissingPayload |
401 | JWS পেলোড নেই। |
steps.jws.NoAlgorithmFoundInHeader |
401 | JWS-এ অ্যালগরিদম হেডার না থাকলে এটি ঘটে। |
steps.jws.SigningFailed |
401 | GenerateJWS-এ, HS384 বা HS512 অ্যালগরিদমের জন্য ন্যূনতম সাইজের থেকে ছোট কী |
steps.jws.UnknownException |
401 | অজানা ব্যতিক্রম ঘটেছে। |
steps.jws.WrongKeyType |
401 | ভুল ধরনের কী উল্লেখ করা হয়েছে। যেমন, আপনি যদি কোনও উপবৃত্তাকার কার্ভ অ্যালগরিদমের জন্য RSA কী বা RSA অ্যালগরিদমের জন্য কার্ভ কী নির্দিষ্ট করেন। |
ডিপ্লয়মেন্ট সংক্রান্ত সমস্যা
এই নীতি থাকা কোনও প্রক্সি আপনি প্রয়োগ করলে, এই সমস্যা হতে পারে।
| সমস্যার নাম | এটি তখন ঘটে যখন |
|---|---|
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>