คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
อะไร
สร้าง JWS ที่ลงชื่อ พร้อมชุดการอ้างสิทธิ์ที่กำหนดค่าได้ จากนั้น JWS สามารถส่งคืนไปยังไคลเอ็นต์ ส่งไปยังเป้าหมายแบ็กเอนด์ หรือใช้วิธีอื่นได้ ดูข้อมูลเบื้องต้นอย่างละเอียดได้ในภาพรวมของนโยบาย JWS และ JWT
ดูข้อมูลเกี่ยวกับส่วนต่างๆ ของ JWS และวิธีเข้ารหัสและรับรองส่วนต่างๆ ของ JWS ได้ที่ RFC7515
วิดีโอ
ดูวิดีโอสั้นๆ เพื่อดูวิธีสร้าง JWT พร้อมลายเซ็น แม้ว่าวิดีโอนี้จะมีเนื้อหาเกี่ยวกับการสร้าง JWT โดยเฉพาะ แต่แนวคิดส่วนใหญ่ของ JWS ก็เหมือนกัน
ลองฟัง
สร้าง JWS ที่แนบมาที่ลงนามด้วยอัลกอริทึม HS256
นโยบายตัวอย่างนี้สร้าง JWS ที่แนบมาและลงนามโดยใช้อัลกอริทึม HS256 HS256 ใช้ข้อมูลลับที่ใช้ร่วมกันทั้งในการลงนามและยืนยันลายเซ็น
JWS ที่ต่อเชื่อมมีส่วนหัว เพย์โหลด และลายเซ็นที่เข้ารหัส ดังนี้
header.payload.signature
ตั้งค่า <DetachContent>
เป็น true เพื่อสร้างเนื้อหาที่แยกส่วน
ดูส่วนต่างๆ ของ JWS/JWT เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างและรูปแบบของ JWS
ใช้องค์ประกอบ <Payload>
เพื่อระบุเพย์โหลด JWS แบบข้อมูลดิบ
ในตัวอย่างนี้ ตัวแปรจะเก็บเพย์โหลด เมื่อมีการเรียกใช้การดำเนินการนโยบายนี้ 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>
สร้าง JWS ที่ปลดออกซึ่งลงนามด้วยอัลกอริทึม RS256
นโยบายตัวอย่างนี้สร้าง JWS ที่แยกออกมาและลงนามโดยใช้อัลกอริทึม RS256 การสร้างลายเซ็น RS256 ต้องใช้คีย์ส่วนตัว RSA ซึ่งต้องระบุในรูปแบบที่เข้ารหัส PEM
JWS ที่แยกออกมาจะละเว้นเพย์โหลดจาก JWS ดังนี้
header..signature
ใช้องค์ประกอบ <Payload>
เพื่อระบุเพย์โหลด JWS แบบข้อมูลดิบ
เมื่อเรียกใช้นโยบายนี้ Edge จะเข้ารหัสส่วนหัว JWS และเพย์โหลด จากนั้นใช้ทั้งสองรายการเพื่อสร้างลายเซ็นที่เข้ารหัส อย่างไรก็ตาม JWS ที่สร้างขึ้นจะละเว้นเพย์โหลด
คุณจะส่งผ่านเพย์โหลดไปยังนโยบาย ConfirmJWS โดยใช้องค์ประกอบ <DetachedContent>
ของนโยบาย VerificationJWS ได้
<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> องค์ประกอบ |
|
*ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อกำหนดของคีย์ได้ที่เกี่ยวกับอัลกอริทึมการเข้ารหัสลายเซ็น |
การอ้างอิงองค์ประกอบสำหรับการสร้าง JWS
ข้อมูลอ้างอิงนโยบายจะอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบายสร้าง JWS
หมายเหตุ: การกำหนดค่าจะแตกต่างไปบ้างขึ้นอยู่กับอัลกอริทึมการเข้ารหัสที่ใช้ ดูตัวอย่างสำหรับตัวอย่างที่สาธิตการกำหนดค่าสำหรับกรณีการใช้งานเฉพาะ
แอตทริบิวต์ที่ใช้กับองค์ประกอบระดับบนสุด
<GenerateJWS name="JWS" continueOnError="false" enabled="true" async="false">
แอตทริบิวต์ต่อไปนี้มีอยู่ในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การปรากฏ |
---|---|---|---|
ชื่อ |
ชื่อภายในของนโยบาย จำกัดอักขระที่ใช้ในชื่อได้ดังต่อไปนี้
A-Z0-9._\-$ % แต่ UI การจัดการ Edge จะบังคับใช้ข้อจํากัดเพิ่มเติม เช่น นําอักขระที่ไม่ใช่ตัวอักษรและตัวเลขคละกันออกโดยอัตโนมัติ
(ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มีข้อมูล | ต้องระบุ |
continueOnError |
ตั้งค่าเป็น false เพื่อแสดงผลข้อผิดพลาดเมื่อนโยบายล้มเหลว ซึ่งถือเป็นเรื่องปกติสำหรับนโยบายส่วนใหญ่
ตั้งค่าเป็น |
false | ไม่บังคับ |
เปิดใช้อยู่ |
ตั้งค่าเป็น true เพื่อบังคับใช้นโยบาย
ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async | แอตทริบิวต์นี้เลิกใช้งานแล้ว | false | เลิกใช้ |
<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 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>
มีแอตทริบิวต์ต่อไปนี้
- name - (ต้องระบุ) ชื่อของการอ้างสิทธิ์
- ref - (ไม่บังคับ) ชื่อของตัวแปรโฟลว์ หากมี นโยบายจะใช้ค่าของตัวแปรนี้เป็นการอ้างสิทธิ์ หากมีการระบุทั้งแอตทริบิวต์ ref และค่าการอ้างสิทธิ์อย่างชัดแจ้ง ระบบจะใช้ค่า Explicit เป็นค่าเริ่มต้น และจะใช้ในกรณีที่ตัวแปรขั้นตอนอ้างอิงไม่ได้รับการแก้ไข
- type - (ไม่บังคับ) ค่าใดค่าหนึ่งจาก: สตริง (ค่าเริ่มต้น), ตัวเลข, บูลีน หรือแผนที่
- array - (ไม่บังคับ) ตั้งค่าเป็น true เพื่อระบุว่าค่านี้เป็นอาร์เรย์ประเภทหรือไม่ ค่าเริ่มต้น: เท็จ
<CriticalHeaders>
<CriticalHeaders>a,b,c</CriticalHeaders> or: <CriticalHeaders ref=’variable_containing_headers’/>
เพิ่มส่วนหัววิกฤต (crit) ให้กับ JWS ส่วนหัว crit คืออาร์เรย์ของชื่อส่วนหัวที่ตัวรับสัญญาณ JWS ต้องรู้จักและรู้จัก เช่น
{ “typ: “...”, “alg” : “...”, “crit” : [ “a”, “b”, “c” ], }
ระหว่างรันไทม์ นโยบาย ConfirmJWS จะตรวจสอบส่วนหัว crit
สำหรับส่วนหัวแต่ละรายการที่แสดงในส่วนหัว crit ระบบจะตรวจสอบว่าองค์ประกอบ <KnownHeaders>
ของนโยบาย ConfirmJWS แสดงส่วนหัวดังกล่าวด้วย ส่วนหัวที่นโยบาย ConfirmJWS พบใน crit ซึ่งไม่ได้แสดงอยู่ใน <KnownHeaders>
จะทำให้นโยบาย ConfirmJWS ล้มเหลว
ค่าเริ่มต้น | ไม่มีข้อมูล |
การปรากฏ | ไม่บังคับ |
ประเภท | อาร์เรย์ของสตริงที่คั่นด้วยเครื่องหมายจุลภาค |
ค่าที่ถูกต้อง | อาร์เรย์หรือชื่อของตัวแปรที่มีอาร์เรย์ |
<DetachContent>
<DetachContent>true|false</DetachContent>
ระบุว่าจะสร้าง JWS ที่มีเพย์โหลด <DetachContent>true</DetachContent>
แยกต่างหาก <DetachContent>false</DetachContent>
หรือไม่
หากคุณระบุ "เท็จ" ค่าเริ่มต้น JWS ที่สร้างขึ้นจะอยู่ในรูปแบบต่อไปนี้
header.payload.signature
หากคุณระบุ true เพื่อสร้างเพย์โหลดที่ปลดออก JWS ที่สร้างขึ้นจะข้ามเพย์โหลดและอยู่ในรูปแบบดังนี้
header..signature
หากมีเพย์โหลดที่ปลดออก คุณจะต้องส่งผ่านเพย์โหลดเดิมที่ไม่เข้ารหัสไปยังนโยบายVerifyJWS โดยใช้องค์ประกอบ <DetachedContent>
ของนโยบาย ConfirmJWS
ค่าเริ่มต้น | false |
การปรากฏ | ไม่บังคับ |
ประเภท | บูลีน |
ค่าที่ถูกต้อง | จริงหรือเท็จ |
<IgnoreUnresolvedVariables>
<IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>
ตั้งค่าเป็น "เท็จ" หากต้องการให้นโยบายแสดงข้อผิดพลาดเมื่อตัวแปรที่อ้างอิงที่ระบุไว้ในนโยบายแก้ไขไม่ได้ ตั้งค่าเป็น true เพื่อทำให้ตัวแปรที่แก้ไขไม่ได้เป็นสตริงว่าง (Null)
ค่าเริ่มต้น | false |
การปรากฏ | ไม่บังคับ |
ประเภท | บูลีน |
ค่าที่ถูกต้อง | จริงหรือเท็จ |
<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>
ระบุรหัสคีย์ (kid) ที่จะรวมไว้ในส่วนหัว JWS ใช้เฉพาะเมื่ออัลกอริทึมเป็น 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>
ระบุคีย์ส่วนตัวที่เข้ารหัสด้วย PEM ที่ใช้ในการลงนาม JWS ใช้แอตทริบิวต์ ref เพื่อส่งคีย์ในตัวแปรโฟลว์ ใช้เฉพาะเมื่ออัลกอริทึมเป็น RS256/RS384/RS512, PS256/PS384/PS512 หรือ ES256/ES384/ES512
ค่าเริ่มต้น | ไม่มีข้อมูล |
การปรากฏ | ต้องสร้าง JWS โดยใช้อัลกอริทึม RS256 |
ประเภท | สตริง |
ค่าที่ถูกต้อง |
ตัวแปรโฟลว์ที่มีสตริงที่แทนค่าคีย์ส่วนตัว RSA ที่เข้ารหัสด้วย PEM
หมายเหตุ: ตัวแปรโฟลว์ต้องมีคำนำหน้า "private" เช่น |
<SecretKey/Id>
<SecretKey> <Id ref="flow-variable-name-here"/> </SecretKey> or <SecretKey> <Id>your-id-value-here</Id> </SecretKey>
ระบุรหัสคีย์ (kid) ที่จะรวมไว้ในส่วนหัว JWS ของ JWS ที่ลงชื่อด้วยอัลกอริทึม HMAC ใช้เฉพาะเมื่ออัลกอริทึมเป็นหนึ่งใน HS256/HS384/HS512
ค่าเริ่มต้น | ไม่มีข้อมูล |
การปรากฏ | ไม่บังคับ |
ประเภท | สตริง |
ค่าที่ถูกต้อง | ตัวแปรหรือสตริงโฟลว์ |
<SecretKey/Value>
<SecretKey> <Value ref="private.your-variable-name"/> </SecretKey>
ระบุคีย์ลับที่ใช้ยืนยันหรือลงนามโทเค็นด้วยอัลกอริทึม HMAC ใช้เฉพาะเมื่ออัลกอริทึมเป็นหนึ่งใน HS256/HS384/HS512 ใช้แอตทริบิวต์ ref เพื่อส่งคีย์ในตัวแปรโฟลว์
Edge บังคับใช้ความเข้มงวดของคีย์ขั้นต่ำสำหรับอัลกอริทึม HS256/HS384/HS512 ความยาวคีย์ขั้นต่ำของ HS256 คือ 32 ไบต์ สำหรับ HS384 จะเท่ากับ 48 ไบต์ และสำหรับ HS512 จะเท่ากับ 64 ไบต์ การใช้คีย์ที่มีความแรงต่ำกว่าจะทำให้เกิดข้อผิดพลาดรันไทม์
ค่าเริ่มต้น | ไม่มีข้อมูล |
การปรากฏ | จำเป็นสำหรับอัลกอริทึม HMAC |
ประเภท | สตริง |
ค่าที่ถูกต้อง |
ตัวแปรโฟลว์ที่อ้างถึงสตริง
หมายเหตุ: หากตัวแปรโฟลว์ต้องมีคำนำหน้า "private" เช่น |
ตัวแปรโฟลว์
นโยบายสร้าง JWS ไม่ได้ตั้งค่าตัวแปรโฟลว์
การอ้างอิงข้อผิดพลาด
ส่วนนี้จะอธิบายโค้ดข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงผลและตัวแปรข้อผิดพลาดที่ Edge กําหนดเมื่อนโยบายนี้ทําให้เกิดข้อผิดพลาด ข้อมูลนี้เป็นสิ่งสำคัญที่คุณควรทราบหากคุณกำลังกำหนดกฎข้อผิดพลาดเพื่อจัดการกับข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่ต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด
ข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน
รหัสข้อผิดพลาด | สถานะ HTTP | เกิดขึ้นเมื่อ |
---|---|---|
steps.jws.GenerationFailed |
401 | นโยบายสร้าง JWS ไม่ได้ |
steps.jws.InsufficientKeyLength |
401 | สำหรับคีย์ที่มีขนาดเล็กกว่า 32 ไบต์สำหรับอัลกอริทึม HS256 |
steps.jws.InvalidClaim |
401 | สำหรับการอ้างสิทธิ์ที่ขาดหายไปหรือการอ้างสิทธิ์ไม่ตรงกัน หรือส่วนหัวที่ขาดหายไปหรือส่วนหัวไม่ตรงกัน |
steps.jws.InvalidCurve |
401 | เส้นโค้งที่คีย์ระบุไม่ถูกต้องสำหรับอัลกอริทึม Elliptic Curve |
steps.jws.InvalidJsonFormat |
401 | พบ JSON ที่ไม่ถูกต้องในส่วนหัว JWS |
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 สำหรับอัลกอริทึม Elliptic Curve หรือคีย์เส้นโค้งสำหรับอัลกอริทึม 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>