জেডাব্লুএস নীতি তৈরি করুন

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

কী

কনফিগারযোগ্য ক্লেইম সেট সহ একটি স্বাক্ষরিত JWS তৈরি করে। এরপর JWS-টি ক্লায়েন্টদের কাছে ফেরত পাঠানো, ব্যাকএন্ড টার্গেটে প্রেরণ করা, বা অন্য উপায়ে ব্যবহার করা যেতে পারে। বিস্তারিত পরিচিতির জন্য JWS এবং JWT পলিসি ওভারভিউ দেখুন।

একটি JWS-এর অংশগুলো এবং সেগুলো কীভাবে এনক্রিপ্ট ও সাইন করা হয় সে সম্পর্কে জানতে RFC7515 দেখুন।

ভিডিও

কীভাবে একটি সাইনড JWT তৈরি করতে হয় তা শিখতে একটি ছোট ভিডিও দেখুন। যদিও এই ভিডিওটি বিশেষভাবে JWT তৈরির জন্য, তবে এর অনেক ধারণাই JWS-এর ক্ষেত্রেও একই।

নমুনা

HS256 অ্যালগরিদম দ্বারা স্বাক্ষরিত একটি সংযুক্ত JWS তৈরি করুন।

এই উদাহরণ পলিসিটি একটি সংযুক্ত JWS তৈরি করে এবং HS256 অ্যালগরিদম ব্যবহার করে তাতে স্বাক্ষর করে। স্বাক্ষর করা এবং যাচাই করা—উভয় কাজের জন্যই HS256 একটি শেয়ার্ড সিক্রেটের উপর নির্ভর করে।

সংযুক্ত JWS-টিতে এনকোড করা হেডার, পেলোড এবং সিগনেচার থাকে:

header.payload.signature

ডিটাচড কন্টেন্ট তৈরি করতে <DetachContent> কে true তে সেট করুন। একটি JWS এর গঠন এবং বিন্যাস সম্পর্কে আরও জানতে "Parts of a JWS/JWT" দেখুন।

কাঁচা, এনকোডবিহীন JWS পেলোড নির্দিষ্ট করতে <Payload> এলিমেন্টটি ব্যবহার করুন। এই উদাহরণে, একটি ভেরিয়েবলে পেলোডটি রয়েছে। যখন এই পলিসি অ্যাকশনটি ট্রিগার হয়, Edge JWS হেডার এবং পেলোডকে এনকোড করে, তারপর JWS-টিকে ডিজিটালভাবে স্বাক্ষর করার জন্য এনকোড করা স্বাক্ষরটি যোগ করে।

নিচের পলিসি কনফিগারেশনটি private.payload ভেরিয়েবলে থাকা পেলোড থেকে একটি JWS তৈরি করে।

<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 তৈরি করতে ব্যবহৃত কী নির্দিষ্ট করার জন্য আপনি যে উপাদানগুলো ব্যবহার করেন, তা নির্বাচিত অ্যালগরিদমের উপর নির্ভর করে, যেমনটি নিম্নলিখিত সারণিতে দেখানো হয়েছে:

অ্যালগরিদম মূল উপাদান
এইচএস{২৫৬/৩৮৪/৫১২} *
<SecretKey>
  <Value ref="private.secretkey"/>
  <Id>1918290</Id>
</SecretKey>
আরএস/পিএস/ইএস{২৫৬/৩৮৪/৫১২} *
<PrivateKey>
  <Value ref="private.privatekey"/>
  <Password ref="private.privatekey-password"/>
  <Id ref="private.privatekey-id"/>
</PrivateKey>

<Password> এবং <Id> এলিমেন্টগুলো ঐচ্ছিক।

মূল প্রয়োজনীয়তাগুলো সম্পর্কে আরও জানতে, ‘স্বাক্ষর এনক্রিপশন অ্যালগরিদম সম্পর্কে’ দেখুন।

JWS তৈরি করার জন্য উপাদানের রেফারেন্স

পলিসি রেফারেন্সে Generate JWS পলিসির উপাদান এবং বৈশিষ্ট্যগুলো বর্ণনা করা হয়েছে।

দ্রষ্টব্য: আপনার ব্যবহৃত এনক্রিপশন অ্যালগরিদমের উপর নির্ভর করে কনফিগারেশন কিছুটা ভিন্ন হবে। নির্দিষ্ট ব্যবহারের ক্ষেত্রে কনফিগারেশন প্রদর্শনের জন্য নমুনাগুলো দেখুন।

শীর্ষ-স্তরের উপাদানে প্রযোজ্য অ্যাট্রিবিউটসমূহ

<GenerateJWS name="JWS" continueOnError="false" enabled="true" async="false">

নিম্নলিখিত বৈশিষ্ট্যগুলি সকল পলিসি প্যারেন্ট এলিমেন্টের জন্য সাধারণ।

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
নাম পলিসির অভ্যন্তরীণ নাম। নামে আপনি যে অক্ষরগুলো ব্যবহার করতে পারবেন তা হলো: A-Z0-9._\-$ % । তবে, Edge ম্যানেজমেন্ট UI অতিরিক্ত বিধিনিষেধ আরোপ করে, যেমন অ্যালফানিউমেরিক নয় এমন অক্ষর স্বয়ংক্রিয়ভাবে মুছে ফেলা।

ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে পলিসিটিকে একটি ভিন্ন, স্বাভাবিক ভাষার নাম দিয়ে লেবেল করতে <displayname></displayname> এলিমেন্টটি ব্যবহার করুন।

প্রযোজ্য নয় প্রয়োজনীয়
continueOnError কোনো পলিসি ব্যর্থ হলে ত্রুটি ফেরত দিতে এটিকে false এ সেট করুন। বেশিরভাগ পলিসির ক্ষেত্রেই এটি একটি প্রত্যাশিত আচরণ।

কোনো পলিসি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে এটিকে ' true সেট করুন।

মিথ্যা ঐচ্ছিক
সক্ষম নীতিটি কার্যকর করতে এটিকে true তে সেট করুন।

পলিসিটি 'বন্ধ' করতে এটিকে 'ফলস' false সেট করুন। কোনো ফ্লো-এর সাথে সংযুক্ত থাকলেও পলিসিটি কার্যকর হবে না।

সত্য ঐচ্ছিক
অ্যাসিঙ্ক এই অ্যাট্রিবিউটটি অপ্রচলিত। মিথ্যা অপ্রচলিত

<ডিসপ্লে নাম>

<DisplayName>Policy Display Name</DisplayName>

ম্যানেজমেন্ট UI প্রক্সি এডিটরে পলিসিটিকে একটি ভিন্ন, স্বাভাবিক ভাষার নাম দিয়ে লেবেল করতে name অ্যাট্রিবিউটের পাশাপাশি এটি ব্যবহার করুন।

ডিফল্ট আপনি যদি এই উপাদানটি বাদ দেন, তাহলে পলিসির 'name' অ্যাট্রিবিউটের মান ব্যবহৃত হবে।
উপস্থিতি ঐচ্ছিক
প্রকার স্ট্রিং

<অ্যালগরিদম>

<Algorithm>algorithm-here</Algorithm>

টোকেনটি স্বাক্ষর করার জন্য এনক্রিপশন অ্যালগরিদম নির্দিষ্ট করে।

ডিফল্ট প্রযোজ্য নয়
উপস্থিতি প্রয়োজনীয়
প্রকার স্ট্রিং
বৈধ মান HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512

<অতিরিক্ত শিরোনাম/দাবি>

<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-এর হেডারে অতিরিক্ত ক্লেইম নেম/ভ্যালু পেয়ার(গুলি) যুক্ত করে।

ডিফল্ট প্রযোজ্য নয়
উপস্থিতি ঐচ্ছিক
বৈধ মান অতিরিক্ত ক্লেইমের জন্য আপনি যেকোনো মান ব্যবহার করতে পারেন। আপনি ক্লেইমটিকে স্ট্রিং, সংখ্যা, বুলিয়ান, ম্যাপ বা অ্যারে হিসেবে স্পষ্টভাবে উল্লেখ করতে পারেন।

<Claim> এলিমেন্টটি এই অ্যাট্রিবিউটগুলো গ্রহণ করে:

  • নাম - (আবশ্যক) দাবির নাম।
  • ref - (ঐচ্ছিক) একটি ফ্লো ভেরিয়েবলের নাম। এটি উপস্থিত থাকলে, পলিসি এই ভেরিয়েবলের মানটিকে ক্লেইম হিসেবে ব্যবহার করবে। যদি একটি ref অ্যাট্রিবিউট এবং একটি সুস্পষ্ট ক্লেইম মান উভয়ই নির্দিষ্ট করা থাকে, তবে সুস্পষ্ট মানটি ডিফল্ট হিসেবে গণ্য হবে এবং উল্লেখিত ফ্লো ভেরিয়েবলটি অমীমাংসিত থাকলে সেটিই ব্যবহৃত হবে।
  • ধরণ - (ঐচ্ছিক) নিম্নলিখিতগুলির মধ্যে একটি: স্ট্রিং (ডিফল্ট), সংখ্যা, বুলিয়ান, বা ম্যাপ
  • অ্যারে - (ঐচ্ছিক) মানটি বিভিন্ন টাইপের একটি অ্যারে কিনা তা নির্দেশ করতে ' true' সেট করুন। ডিফল্ট: 'false'।

<সমালোচনামূলক শিরোনাম>

<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> এলিমেন্টেও সেই হেডারটি তালিকাভুক্ত আছে কিনা। crit- এ VerifyJWS পলিসি এমন কোনো হেডার খুঁজে পায় যা <KnownHeaders> এ তালিকাভুক্ত নয়, যার ফলে VerifyJWS পলিসিটি ব্যর্থ হয়।

ডিফল্ট প্রযোজ্য নয়
উপস্থিতি ঐচ্ছিক
প্রকার কমা দ্বারা পৃথক করা স্ট্রিংগুলির অ্যারে
বৈধ মান হয় একটি অ্যারে অথবা অ্যারেটি ধারণকারী কোনো ভেরিয়েবলের নাম।

<বিষয়বস্তু পৃথক করুন>

<DetachContent>true|false</DetachContent>

JWS-টি ডিটাচড পেলোড সহ জেনারেট করা হবে কিনা ( <DetachContent>true</DetachContent> , নাকি হবে না <DetachContent>false</DetachContent> ), তা নির্দিষ্ট করে।

আপনি যদি ডিফল্ট হিসেবে 'false' নির্দিষ্ট করেন, তাহলে তৈরি হওয়া JWS-টি নিম্নলিখিত রূপে থাকবে:

header.payload.signature

ডিটাচড পেলোড তৈরি করার জন্য আপনি যদি 'true' নির্দিষ্ট করেন, তাহলে তৈরি হওয়া JWS-টি পেলোড বাদ দিয়ে নিম্নলিখিত রূপে থাকে:

header..signature

একটি ডিটাচড পেলোডের ক্ষেত্রে, VerifyJWS পলিসির <DetachedContent> এলিমেন্ট ব্যবহার করে মূল এনকোডবিহীন পেলোডটি VerifyJWS পলিসিতে প্রেরণ করার দায়িত্ব আপনার।

ডিফল্ট মিথ্যা
উপস্থিতি ঐচ্ছিক
প্রকার বুলিয়ান
বৈধ মান সত্য বা মিথ্যা

<অমীমাংসিত ভেরিয়েবল উপেক্ষা করুন>

<IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>

যদি আপনি চান যে পলিসিতে উল্লেখিত কোনো রেফারেন্সকৃত ভেরিয়েবল সমাধানযোগ্য না হলে পলিসিটি একটি ত্রুটি (error) দেখাবে, তাহলে এটিকে false সেট করুন। যেকোনো সমাধানযোগ্য নয় এমন ভেরিয়েবলকে একটি খালি স্ট্রিং (null) হিসেবে গণ্য করতে এটিকে true সেট করুন।

ডিফল্ট মিথ্যা
উপস্থিতি ঐচ্ছিক
প্রকার বুলিয়ান
বৈধ মান সত্য বা মিথ্যা

<আউটপুট ভেরিয়েবল>

<OutputVariable>JWS-variable</OutputVariable>

এই পলিসি দ্বারা তৈরি JWS কোথায় রাখা হবে তা নির্দিষ্ট করে। ডিফল্টরূপে এটি jws. POLICYNAME .generated_jws

ডিফল্ট jws. POLICYNAME .generated_jws
উপস্থিতি ঐচ্ছিক
প্রকার স্ট্রিং (একটি ফ্লো ভেরিয়েবলের নাম)

পেলোড

<Payload ref="flow-variable-name-here" />

or

<Payload>payload-value</Payload>

মূল, এনকোডবিহীন JWS পেলোড নির্দিষ্ট করে। পেলোড ধারণকারী একটি ভেরিয়েবল বা একটি স্ট্রিং নির্দিষ্ট করুন।

ডিফল্ট প্রযোজ্য নয়
উপস্থিতি প্রয়োজনীয়
প্রকার এনকোডবিহীন JWS পেলোডের স্ট্রিং, বাইট অ্যারে, স্ট্রিম বা অন্য কোনো উপস্থাপনা।

<প্রাইভেট কী/আইডি>

<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 ref="private.privatekey-password"/>
</PrivateKey>

প্রয়োজনে, প্রাইভেট কী ডিক্রিপ্ট করার জন্য পলিসি যে পাসওয়ার্ডটি ব্যবহার করবে তা নির্দিষ্ট করুন। ফ্লো ভেরিয়েবলে কী-টি পাস করার জন্য ref অ্যাট্রিবিউট ব্যবহার করুন। এটি শুধুমাত্র তখনই ব্যবহার করুন যখন অ্যালগরিদমটি RS256/RS384/RS512, PS256/PS384/PS512, অথবা ES256/ES384/ES512-এর মধ্যে একটি হয়।

ডিফল্ট প্রযোজ্য নয়
উপস্থিতি ঐচ্ছিক
প্রকার স্ট্রিং
বৈধ মান একটি প্রবাহ পরিবর্তনশীল রেফারেন্স।

দ্রষ্টব্য: আপনাকে অবশ্যই একটি ফ্লো ভেরিয়েবল নির্দিষ্ট করতে হবে। Edge এমন কোনো পলিসি কনফিগারেশনকে অবৈধ বলে প্রত্যাখ্যান করবে যেখানে পাসওয়ার্ডটি প্লেইনটেক্সটে (সাধারণ ভাষায়) উল্লেখ করা থাকে। ফ্লো ভেরিয়েবলটির শুরুতে অবশ্যই 'private' উপসর্গটি থাকতে হবে। উদাহরণস্বরূপ, private.mypassword

<ব্যক্তিগত কী/মান>

<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' উপসর্গটি থাকতে হবে। উদাহরণস্বরূপ, private.mykey

<গোপন কী/আইডি>

<SecretKey>
  <Id ref="flow-variable-name-here"/>
</SecretKey>

or

<SecretKey>
  <Id>your-id-value-here</Id>
</SecretKey>

HMAC অ্যালগরিদম দ্বারা স্বাক্ষরিত কোনো JWS-এর হেডারে অন্তর্ভুক্ত করার জন্য কী আইডি (kid) নির্দিষ্ট করে। শুধুমাত্র তখনই ব্যবহার করুন যখন অ্যালগরিদমটি HS256/HS384/HS512-এর মধ্যে একটি হয়।

ডিফল্ট প্রযোজ্য নয়
উপস্থিতি ঐচ্ছিক
প্রকার স্ট্রিং
বৈধ মান একটি ফ্লো ভেরিয়েবল বা স্ট্রিং

<গোপন কী/মান>

<SecretKey>
  <Value ref="private.your-variable-name"/>
</SecretKey>

HMAC অ্যালগরিদম ব্যবহার করে টোকেন যাচাই বা স্বাক্ষর করার জন্য ব্যবহৃত গোপন কী প্রদান করে। শুধুমাত্র তখনই ব্যবহার করুন যখন অ্যালগরিদমটি HS256/HS384/HS512-এর মধ্যে একটি হয়। ফ্লো ভেরিয়েবলে কী-টি পাস করার জন্য ref অ্যাট্রিবিউট ব্যবহার করুন।

Edge, HS256/HS384/HS512 অ্যালগরিদমগুলোর জন্য একটি ন্যূনতম কী-স্ট্রেংথ বা কী-শক্তি বাধ্যতামূলক করেছে। HS256-এর জন্য ন্যূনতম কী-লেংথ হলো ৩২ বাইট, HS384-এর জন্য ৪৮ বাইট এবং HS512-এর জন্য ৬৪ বাইট। এর চেয়ে কম শক্তির কী ব্যবহার করলে রানটাইম এরর দেখা দেয়।

ডিফল্ট প্রযোজ্য নয়
উপস্থিতি HMAC অ্যালগরিদমের জন্য আবশ্যক।
প্রকার স্ট্রিং
বৈধ মান একটি ফ্লো ভেরিয়েবল যা একটি স্ট্রিংকে নির্দেশ করে

দ্রষ্টব্য: যদি এটি একটি ফ্লো ভেরিয়েবল হয়, তবে এর আগে অবশ্যই 'private' উপসর্গটি থাকতে হবে। উদাহরণস্বরূপ, private.mysecret

প্রবাহ পরিবর্তনশীল

Generate JWS পলিসিটি ফ্লো ভেরিয়েবল সেট করে না।

ত্রুটির রেফারেন্স

এই বিভাগটি ফল্ট কোড এবং ত্রুটির বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি যখন ঘটে
steps.jws.GenerationFailed 401 নীতি JWS তৈরি করতে অক্ষম ছিল।
steps.jws.InsufficientKeyLength 401 HS256 অ্যালগরিদমের জন্য 32 বাইটের কম একটি কী-এর জন্য
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 জেনারেটজেডব্লিউএস-এ, 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৷

EmptyElementForKeyConfiguration

FailedToResolveVariable

InvalidConfigurationForActionAndAlgorithmFamily

InvalidConfigurationForVerify

InvalidEmptyElement

InvalidFamiliesForAlgorithm

InvalidKeyConfiguration

InvalidNameForAdditionalClaim

InvalidNameForAdditionalHeader

InvalidPublicKeyId

InvalidPublicKeyValue

InvalidSecretInConfig

InvalidTypeForAdditionalClaim

InvalidTypeForAdditionalHeader

InvalidValueForElement

InvalidValueOfArrayAttribute

InvalidVariableNameForSecret

MissingConfigurationElement

MissingElementForKeyConfiguration

MissingNameForAdditionalClaim

MissingNameForAdditionalHeader

অন্যান্য সম্ভাব্য স্থাপনার ত্রুটি।

ফল্ট ভেরিয়েবল

রানটাইম ত্রুটি ঘটলে এই ভেরিয়েবলগুলি সেট করা হয়। আরও তথ্যের জন্য, নীতি ত্রুটি সম্পর্কে আপনার যা জানা দরকার তা দেখুন।

ভেরিয়েবল যেখানে উদাহরণ
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>