คุณกำลังดูเอกสารประกอบ Apigee Edge
  ไปที่
     เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
อะไร
สร้าง JWS ที่มีการลงนามพร้อมชุดการอ้างสิทธิ์ที่กำหนดค่าได้ JWS สามารถส่งคืนไปยัง ไคลเอ็นต์ ส่งไปยังเป้าหมายแบ็กเอนด์ หรือใช้วิธีอื่น ดูรายละเอียดข้อมูลเบื้องต้นได้ที่ภาพรวมของนโยบายของ JWS และ JWT
หากต้องการเรียนรู้เกี่ยวกับส่วนต่างๆ ของ JWS รวมถึงวิธีเข้ารหัสและเซ็นชื่อ โปรดดูที่ RFC7515
วิดีโอ
ชมวิดีโอสั้นๆ เพื่อดูวิธีสร้าง JWT ที่มีการลงชื่อ ขณะที่วิดีโอนี้ สำหรับการสร้าง JWT โดยเฉพาะ ซึ่งแนวคิดส่วนใหญ่ของ JWS จะเหมือนกัน
ตัวอย่าง
- สร้าง JWS แบบแนบที่มีการลงชื่อด้วย อัลกอริทึม HS256
 - สร้าง JWS แบบเดี่ยวที่ลงนามด้วย อัลกอริทึม RS256
 
สร้าง 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 ที่สร้างขึ้นจะละเว้นเพย์โหลด
    คุณมีหน้าที่ส่งเพย์โหลดไปยังนโยบาย 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
ข้อมูลอ้างอิงนโยบายอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบาย Generate JWS
หมายเหตุ: การกำหนดค่าจะแตกต่างกันไปขึ้นอยู่กับการเข้ารหัส อัลกอริทึมที่คุณใช้ ดูตัวอย่างสำหรับตัวอย่างที่แสดง สำหรับ Use Case เฉพาะ
แอตทริบิวต์ที่ ใช้กับองค์ประกอบระดับบนสุด
<GenerateJWS name="JWS" continueOnError="false" enabled="true" async="false">
แอตทริบิวต์ต่อไปนี้มีอยู่ในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
| แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การตรวจหาบุคคล | 
|---|---|---|---|
| ชื่อ | 
          ชื่อภายในของนโยบาย อักขระที่คุณสามารถใช้ในชื่อจะถูกจำกัดไว้เฉพาะ:
          A-Z0-9._\-$ % อย่างไรก็ตาม UI การจัดการ Edge จะบังคับใช้เพิ่มเติม
          เช่น การนำอักขระที่ไม่ใช่ตัวอักษรและตัวเลขคละกันออกโดยอัตโนมัติ
          (ไม่บังคับ) ใช้องค์ประกอบ   | 
        ไม่มี | ต้องระบุ | 
| continueOnError | 
          ตั้งค่าเป็น false เพื่อแสดงผลข้อผิดพลาดเมื่อนโยบายล้มเหลว เป็นเรื่องปกติ
          พฤติกรรมสำหรับนโยบายส่วนใหญ่
          ตั้งค่าเป็น   | 
        เท็จ | ไม่บังคับ | 
| เปิดใช้อยู่ | 
          ตั้งค่าเป็น true เพื่อบังคับใช้นโยบาย
          ตั้งค่าเป็น   | 
        จริง | ไม่บังคับ | 
| ไม่พร้อมกัน | แอตทริบิวต์นี้เลิกใช้งานแล้ว | เท็จ | เลิกใช้ | 
<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
| ค่าเริ่มต้น | ไม่มี | 
| การตรวจหาบุคคล | ไม่บังคับ | 
| ค่าที่ถูกต้อง | ค่าใดก็ได้ที่คุณต้องการใช้สำหรับการอ้างสิทธิ์เพิ่มเติม คุณสามารถระบุ การอ้างสิทธิ์อย่างชัดเจนเป็นสตริง ตัวเลข บูลีน แผนที่ หรืออาร์เรย์ | 
องค์ประกอบ <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” ],
}ขณะรันไทม์ นโยบาย VerifyJWS จะตรวจสอบส่วนหัว crit
  สำหรับส่วนหัวแต่ละรายการที่แสดงในส่วนหัว crit ระบบจะตรวจสอบว่าองค์ประกอบ <KnownHeaders>
  ของนโยบาย VerifyJWS จะแสดงส่วนหัวนั้นด้วย ส่วนหัวที่นโยบาย VerifyJWS พบใน crit
  ที่ไม่ได้แสดงอยู่ใน <KnownHeaders> จะทำให้นโยบาย VerifyJWS ล้มเหลว
| ค่าเริ่มต้น | ไม่มี | 
| การตรวจหาบุคคล | ไม่บังคับ | 
| ประเภท | อาร์เรย์ของสตริงที่คั่นด้วยคอมมา | 
| ค่าที่ถูกต้อง | อาจเป็นอาร์เรย์หรือชื่อของตัวแปรที่มีอาร์เรย์ | 
<DetachContent>
<DetachContent>true|false</DetachContent>
ระบุว่าจะสร้าง JWS ที่มีเพย์โหลดที่แยกออกมา (<DetachContent>true</DetachContent>) หรือไม่
    หรือไม่ <DetachContent>false</DetachContent>
หากคุณระบุ "เท็จ" ค่าเริ่มต้น JWS ที่สร้างขึ้นจะอยู่ในรูปแบบ
header.payload.signature
หากคุณระบุ true เพื่อสร้างเพย์โหลดที่ปลดออก JWS ที่สร้างขึ้นจะยกเว้นเพย์โหลดและอยู่ในรูปแบบ:
header..signature
หากมีเพย์โหลดที่ปลดออก คุณจะต้องส่งเพย์โหลดต้นฉบับที่ไม่ได้เข้ารหัสไปยังนโยบาย VerifyJWS
    โดยใช้องค์ประกอบ <DetachedContent> ของนโยบาย VerifyJWS
| ค่าเริ่มต้น | เท็จ | 
| การตรวจหาบุคคล | ไม่บังคับ | 
| ประเภท | บูลีน | 
| ค่าที่ถูกต้อง | จริงหรือเท็จ | 
<IgnoreUnresolvedVariables>
<IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables>
ตั้งค่าเป็น "เท็จ" หากต้องการให้นโยบายแสดงข้อผิดพลาดเมื่อระบุตัวแปรที่อ้างอิงไว้ ในนโยบายนั้นไม่สามารถแก้ปัญหาได้ ตั้งค่าเป็น "จริง" เพื่อจัดการตัวแปรที่แปลงไม่ได้ใดๆ เป็นสตริงว่าง (Null)
| ค่าเริ่มต้น | เท็จ | 
| การตรวจหาบุคคล | ไม่บังคับ | 
| ประเภท | บูลีน | 
| ค่าที่ถูกต้อง | จริงหรือเท็จ | 
<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 จะปฏิเสธเนื่องจาก
          การกำหนดค่านโยบายซึ่งระบุรหัสผ่านเป็นข้อความธรรมดา ตัวแปรโฟลว์
          ต้องมีคำนำหน้าว่า "ส่วนตัว" เช่น   | 
      
<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" สำหรับ
          ตัวอย่างเช่น   | 
      
ตัวแปรโฟลว์
นโยบาย Generate 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>