คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
อะไร
นโยบาย "ยืนยันคีย์ API" ให้คุณบังคับใช้การยืนยันคีย์ API ขณะรันไทม์ โดยอนุญาตเฉพาะแอปที่มีคีย์ API ที่ได้รับอนุมัติเท่านั้นที่เข้าถึง API ของคุณได้ นโยบายนี้ช่วยให้คีย์ API ถูกต้อง ไม่มีการเพิกถอน และได้รับอนุมัติให้ใช้ทรัพยากรเฉพาะที่เชื่อมโยงกับผลิตภัณฑ์ API ของคุณ
ลองฟัง
คีย์ในพารามิเตอร์การค้นหา
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.queryparam.apikey" /> </VerifyAPIKey>
ในตัวอย่างนี้ นโยบายคาดว่าจะพบคีย์ API ในตัวแปรโฟลว์ที่ชื่อว่า request.queryparam.apikey
ตัวแปร request.queryparam.{name}
คือตัวแปรโฟลว์ Edge มาตรฐานที่มีการเติมข้อมูลด้วยค่าของพารามิเตอร์การค้นหาที่ส่งในคำขอไคลเอ็นต์
คำสั่ง curl
ต่อไปนี้ส่งคีย์ API ในพารามิเตอร์การค้นหา
curl http://myorg-test.apigee.net/mocktarget?apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls
คีย์ในส่วนหัว
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.header.x-apikey" /> </VerifyAPIKey>
ในตัวอย่างนี้ นโยบายคาดว่าจะพบคีย์ API ในตัวแปรโฟลว์ที่ชื่อว่า request.header.x-apikey
ตัวแปร request.header.{name}
คือตัวแปรโฟลว์ Edge มาตรฐานที่สร้างขึ้นด้วยค่าของส่วนหัวที่ส่งในคำขอไคลเอ็นต์
cURL ต่อไปนี้แสดงวิธีส่งคีย์ API ในส่วนหัว
curl "http://myorg-test.apigee.net/mocktarget" -H "x-apikey:IEYRtW2cb7A5Gs54A1wKElECBL65GVls"
คีย์ในตัวแปร
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="requestAPIKey.key"/> </VerifyAPIKey>
นโยบายจะอ้างอิงตัวแปรใดก็ได้ที่มีคีย์ นโยบายในตัวอย่างนี้ดึงคีย์ API ออกจากตัวแปรชื่อ requestAPIKey.key
วิธีการสร้างตัวแปรดังกล่าวขึ้นอยู่กับคุณ ตัวอย่างเช่น คุณอาจใช้นโยบายการแยกตัวแปรเพื่อป้อนข้อมูล requestAPIKey.key จากพารามิเตอร์การค้นหาชื่อ myKey ดังที่แสดงด้านล่าง
<ExtractVariables async="false" continueOnError="false" enabled="true" name="SetAPIKeyVar"> <Source>request</Source> <QueryParam name="myKey"> <Pattern ignoreCase="true">{key}</Pattern> </QueryParam> <VariablePrefix>requestAPIKey</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
ตัวแปรโฟลว์ของนโยบายการเข้าถึง
<AssignMessage async="false" continueOnError="false" enabled="true" name="accessverifyvars"> <AssignVariable> <Name>devFirstName</Name> <Ref>verifyapikey.verify-api-key.developer.firstName</Ref> <Value>ErrorOnCopy</Value> </AssignVariable> <AssignVariable> <Name>devLastName</Name> <Ref>verifyapikey.verify-api-key.developer.lastName</Ref> <Value>ErrorOnCopy</Value> </AssignVariable> <AssignVariable> <Name>devEmail</Name> <Ref>verifyapikey.verify-api-key.developer.email</Ref> <Value>ErrorOnCopy</Value> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Edge จะป้อนข้อมูลชุดตัวแปรโฟลว์โดยอัตโนมัติเมื่อใช้นโยบาย "ยืนยันคีย์ API" สำหรับคีย์ API ที่ถูกต้อง คุณใช้ตัวแปรเหล่านี้เพื่อเข้าถึงข้อมูล เช่น ชื่อแอป รหัสแอป และข้อมูลเกี่ยวกับนักพัฒนาซอฟต์แวร์หรือบริษัทที่ลงทะเบียนแอปได้ ในตัวอย่างด้านบน คุณใช้นโยบายมอบหมายข้อความเพื่อเข้าถึงชื่อ นามสกุล และอีเมลของนักพัฒนาซอฟต์แวร์หลังจากดำเนินการคีย์ API ยืนยัน
ตัวแปรเหล่านี้มีคำนำหน้าด้วย
verifyapikey.{policy_name}
ในตัวอย่างนี้ ชื่อนโยบายคีย์ API ของ "ยืนยัน" คือ "verify-api-key" ดังนั้น คุณจึงอ้างอิงชื่อของนักพัฒนาซอฟต์แวร์ที่ส่งคำขอโดยการเข้าถึงตัวแปร verifyapikey.verify-api-key.developer.firstName.
เรียนรู้ Edge
เกี่ยวกับนโยบาย "ยืนยันคีย์ API"
เมื่อนักพัฒนาซอฟต์แวร์ลงทะเบียนแอปใน Edge แล้ว Edge จะสร้างคู่คีย์ผู้บริโภคและคู่ข้อมูลลับโดยอัตโนมัติ คุณดูคู่คีย์ผู้บริโภคและข้อมูลลับของแอปได้ใน Edge UI หรือเข้าถึงได้จาก Edge API
ขณะลงทะเบียนแอป นักพัฒนาซอฟต์แวร์จะเลือกผลิตภัณฑ์ API อย่างน้อย 1 รายการเพื่อเชื่อมโยงกับแอป โดยที่ผลิตภัณฑ์ API คือคอลเล็กชันของทรัพยากรที่เข้าถึงได้ผ่านพร็อกซี API จากนั้นนักพัฒนาซอฟต์แวร์จะส่งคีย์ API (คีย์ผู้ใช้) เป็นส่วนหนึ่งของ คำขอทุกรายการไปยัง API ในผลิตภัณฑ์ API ที่เชื่อมโยงกับแอป ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการเผยแพร่
คุณใช้คีย์ API เป็นโทเค็นการตรวจสอบสิทธิ์ได้ หรือคีย์ API เหล่านี้ใช้เพื่อรับโทเค็นเพื่อการเข้าถึง OAuth ได้ ใน OAuth คีย์ API จะเรียกว่า "รหัสไคลเอ็นต์" ชื่อสามารถใช้แทนกันได้ โปรดดูข้อมูลเพิ่มเติมที่หน้าแรกของ OAuth
Edge จะป้อนข้อมูลชุดตัวแปรโฟลว์โดยอัตโนมัติเมื่อดำเนินการนโยบาย "ยืนยันคีย์ API" ดูข้อมูลเพิ่มเติมได้ที่ตัวแปรโฟลว์ด้านล่าง
การอ้างอิงองค์ประกอบ
องค์ประกอบและแอตทริบิวต์ที่คุณกำหนดค่าในนโยบายนี้ได้มีดังนี้
<VerifyAPIKey async="false" continueOnError="false" enabled="true" name="Verify-API-Key-1"> <DisplayName>Custom label used in UI</DisplayName> <APIKey ref="variable_containing_api_key"/> </VerifyAPIKey>
แอตทริบิวต์ <VerifyAPIKey>
ตัวอย่างต่อไปนี้แสดงแอตทริบิวต์ในแท็ก <VerifyAPIKey>
<VerifyAPIKey async="false" continueOnError="false" enabled="true" name="Verify-API-Key-1">
ตารางต่อไปนี้อธิบายแอตทริบิวต์ที่ใช้ร่วมกันในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
name |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ (ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มีข้อมูล | จำเป็น |
continueOnError |
ตั้งค่าเป็น ตั้งค่าเป็น |
false | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
false | เลิกใช้ |
องค์ประกอบ <DisplayName>
ใช้เพิ่มเติมจากแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติที่แตกต่างออกไป
<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น |
ไม่มีข้อมูล หากคุณไม่ใส่องค์ประกอบนี้ ระบบจะใช้ค่าของแอตทริบิวต์ |
---|---|
การมีบุคคลอยู่ | ไม่บังคับ |
Type | สตริง |
องค์ประกอบ <APIKey>
องค์ประกอบนี้ระบุตัวแปรโฟลว์ที่มีคีย์ API โดยปกติแล้ว ไคลเอ็นต์จะส่งคีย์ API ในพารามิเตอร์การค้นหา ส่วนหัว HTTP หรือพารามิเตอร์ของฟอร์ม เช่น หากระบบส่งคีย์ในส่วนหัวชื่อ x-apikey
คีย์จะอยู่ในตัวแปร request.header.x-apikey
ค่าเริ่มต้น | ไม่มี |
---|---|
การมีบุคคลอยู่ | จำเป็น |
Type | สตริง |
Attributes
ตารางต่อไปนี้อธิบายแอตทริบิวต์ขององค์ประกอบ <APIKey>
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
อ้างอิง |
การอ้างอิงตัวแปรที่มีคีย์ API ระบบอนุญาตให้ใช้ตำแหน่งได้เพียง 1 แห่งต่อนโยบาย |
ไม่มีข้อมูล | จำเป็น |
ตัวอย่าง
ในตัวอย่างเหล่านี้ ระบบจะส่งคีย์ในพารามิเตอร์และส่วนหัวที่เรียกว่า x-apikey
ในรูปแบบพารามิเตอร์การค้นหา
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.queryparam.x-apikey"/> </VerifyAPIKey>
ใช้เป็นส่วนหัว HTTP ได้ดังนี้
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.header.x-apikey"/> </VerifyAPIKey>
เป็นพารามิเตอร์ของฟอร์ม HTTP:
<VerifyAPIKey name="APIKeyVerifier"> <APIKey ref="request.formparam.x-apikey"/> </VerifyAPIKey>
สคีมา
ตัวแปรโฟลว์
เมื่อบังคับใช้นโยบาย "ยืนยันคีย์ API" กับคีย์ API ที่ถูกต้อง Edge จะป้อนข้อมูลชุดตัวแปรโฟลว์ ตัวแปรเหล่านี้พร้อมใช้งานสำหรับนโยบายหรือโค้ดที่เรียกใช้ภายหลังในขั้นตอน และมักใช้เพื่อดำเนินการที่กำหนดเองตามแอตทริบิวต์ของคีย์ API เช่น ชื่อแอป ผลิตภัณฑ์ API ที่ใช้ในการให้สิทธิ์คีย์ หรือแอตทริบิวต์ที่กำหนดเองของคีย์ API
นโยบายจะป้อนข้อมูลตัวแปรโฟลว์หลากหลายประเภท ได้แก่
- ทั่วไป
- แอป
- นักพัฒนาแอป
- บริษัท
- Analytics
ตัวแปรโฟลว์แต่ละประเภทมีคำนำหน้าที่ต่างกัน ตัวแปรทั้งหมดเป็นสเกลาร์ ยกเว้นตัวแปรที่ระบุเป็นอาร์เรย์โดยเฉพาะ
ตัวแปรโฟลว์ทั่วไป
ตารางต่อไปนี้แสดงรายการตัวแปรโฟลว์ทั่วไปที่ป้อนข้อมูลโดยนโยบายยืนยันคีย์ API ตัวแปรเหล่านี้มีคำนำหน้าด้วย
verifyapikey.{policy_name}
เช่น verifyapikey.{policy_name}.client_id
ตัวแปรที่ใช้ได้มีดังนี้
ตัวแปร | คำอธิบาย |
---|---|
client_id |
คีย์ผู้ใช้ (หรือที่เรียกว่าคีย์ API หรือคีย์แอป) ที่แอปส่งคำขอมา |
client_secret |
ข้อมูลลับของผู้ใช้ที่เชื่อมโยงกับรหัสผู้ใช้ |
redirection_uris |
URI การเปลี่ยนเส้นทางในคำขอ |
developer.app.id |
รหัสของแอปนักพัฒนาแอปที่ส่งคำขอ |
developer.app.name |
ชื่อแอปของนักพัฒนาแอปที่ส่งคำขอ |
developer.id |
รหัสของนักพัฒนาซอฟต์แวร์ที่ลงทะเบียนเป็นเจ้าของแอปที่ส่งคำขอ |
developer.{custom_attrib_name} |
แอตทริบิวต์ที่กำหนดเองซึ่งได้มาจากโปรไฟล์คีย์แอป |
DisplayName |
ค่าของแอตทริบิวต์ <DisplayName> ของนโยบาย |
failed |
ตั้งค่าเป็น "จริง" เมื่อตรวจสอบคีย์ API ไม่สำเร็จ |
{custom_app_attrib} |
แอตทริบิวต์ที่กำหนดเองใดๆ ที่ได้มาจากโปรไฟล์แอป ระบุชื่อของแอตทริบิวต์ที่กำหนดเอง |
apiproduct.name* |
ชื่อผลิตภัณฑ์ API ที่ใช้ในการตรวจสอบคำขอ |
apiproduct.{custom_attrib_name}* |
แอตทริบิวต์ที่กำหนดเองใดๆ ที่ได้มาจากโปรไฟล์ผลิตภัณฑ์ API |
apiproduct.developer.quota.limit* |
ขีดจำกัดโควต้าที่ตั้งค่าในผลิตภัณฑ์ API หากมี |
apiproduct.developer.quota.interval* |
ช่วงเวลาของโควต้าที่กำหนดในผลิตภัณฑ์ API หากมี |
apiproduct.developer.quota.timeunit* |
หน่วยเวลาโควต้าที่กำหนดในผลิตภัณฑ์ API หากมี |
* ระบบจะป้อนข้อมูลตัวแปรผลิตภัณฑ์ API โดยอัตโนมัติหากมีการกำหนดค่าผลิตภัณฑ์ API ด้วยสภาพแวดล้อม พร็อกซี และทรัพยากรที่ถูกต้อง (ดึงมาจาก proxy.pathsuffix ) โปรดดูวิธีการตั้งค่าผลิตภัณฑ์ API ได้ที่การใช้ Edge Management API เพื่อเผยแพร่ API |
ตัวแปรโฟลว์ของแอป
ระบบจะป้อนข้อมูลตัวแปรโฟลว์ต่อไปนี้ที่มีข้อมูลเกี่ยวกับแอปโดยนโยบาย ตัวแปรเหล่านี้มีคำนำหน้าด้วย
verifyapikey.{policy_name}.app
.
เช่น
verifyapikey.{policy_name}.app.name
ตัวแปรที่ใช้ได้มีดังนี้
ตัวแปร | คำอธิบาย |
---|---|
name |
ชื่อแอป |
id |
รหัสของแอป |
accessType |
Apigee ที่ไม่ได้ใช้งาน |
callbackUrl |
URL เรียกกลับของแอป โดยปกติใช้สำหรับ OAuth เท่านั้น |
DisplayName |
ชื่อที่แสดงของแอป |
status |
สถานะของแอป เช่น "อนุมัติ" หรือ "เพิกถอนแล้ว" |
apiproducts |
อาร์เรย์ที่มีรายการผลิตภัณฑ์ API ที่เชื่อมโยงกับแอป |
appFamily |
กลุ่มแอปที่มีแอปนั้น หรือ "ค่าเริ่มต้น" |
appParentStatus |
สถานะหลักของแอป เช่น "ใช้งานอยู่" หรือ "ไม่ได้ใช้งาน" |
appType |
ประเภทแอป เช่น "บริษัท" หรือ "นักพัฒนาซอฟต์แวร์" |
appParentId |
รหัสของแอปหลัก |
created_at |
การประทับวันที่/เวลาที่สร้างแอป |
created_by |
อีเมลของนักพัฒนาแอปที่สร้างแอป |
last_modified_at |
การประทับวันที่/เวลาที่อัปเดตแอปครั้งล่าสุด |
last_modified_by |
อีเมลของนักพัฒนาแอปที่อัปเดตแอปครั้งล่าสุด |
{app_custom_attributes} |
แอตทริบิวต์แอปที่กำหนดเอง ระบุชื่อแอตทริบิวต์ที่กำหนดเอง |
ตัวแปรขั้นตอนสำหรับนักพัฒนาซอฟต์แวร์
นโยบายจะป้อนข้อมูลตัวแปรโฟลว์ต่อไปนี้ที่มีข้อมูลเกี่ยวกับนักพัฒนาซอฟต์แวร์ ตัวแปรเหล่านี้มีคำนำหน้าด้วย
verifyapikey.{policy_name}.developer
เช่น
verifyapikey.{policy_name}.developer.id
ตัวแปรที่ใช้ได้มีดังนี้
ตัวแปร | คำอธิบาย |
---|---|
id |
ส่งคืน {org_name}@@@{developer_id} |
userName |
ชื่อผู้ใช้ของนักพัฒนาซอฟต์แวร์ |
firstName |
ชื่อของนักพัฒนาซอฟต์แวร์ |
lastName |
นามสกุลของนักพัฒนาซอฟต์แวร์ |
email |
อีเมลของนักพัฒนาแอป |
status |
สถานะของนักพัฒนาแอป เช่น ใช้งานอยู่ ไม่ใช้งาน หรือเข้าสู่ระบบ |
apps |
อาร์เรย์ของแอปที่เกี่ยวข้องกับนักพัฒนาซอฟต์แวร์ |
created_at |
การประทับวันที่/เวลาที่สร้างนักพัฒนาซอฟต์แวร์ |
created_by |
อีเมลของผู้ใช้ที่สร้างนักพัฒนาซอฟต์แวร์ |
last_modified_at |
การประทับวันที่/เวลาที่แก้ไขนักพัฒนาซอฟต์แวร์ครั้งล่าสุด |
last_modified_by |
อีเมลของผู้ใช้ที่แก้ไขนักพัฒนาแอป |
{developer_custom_attributes} |
แอตทริบิวต์นักพัฒนาซอฟต์แวร์ที่กำหนดเอง ระบุชื่อแอตทริบิวต์ที่กำหนดเอง |
Company |
ชื่อบริษัทที่เชื่อมโยงกับนักพัฒนาแอป (หากมี) |
ตัวแปรโฟลว์บริษัท
ระบบจะป้อนข้อมูลตัวแปรโฟลว์ต่อไปนี้ที่มีข้อมูลเกี่ยวกับบริษัทโดยนโยบาย ตัวแปรเหล่านี้มีคำนำหน้าด้วย
verifyapikey.{policy_name}.company
เช่น
verifyapikey.{policy_name}.company.name
ตัวแปรที่ใช้ได้มีดังนี้
ตัวแปร | คำอธิบาย |
---|---|
name |
ชื่อบริษัท |
displayName |
ชื่อที่แสดงของบริษัท |
id |
รหัสบริษัท |
apps |
อาร์เรย์ที่มีรายการแอปของบริษัท |
appOwnerStatus |
สถานะของเจ้าของแอปเป็นใช้งาน ไม่ใช้งาน หรือเข้าสู่ระบบ
|
created_at |
การประทับวันที่/เวลาที่สร้างบริษัท |
created_by |
ที่อยู่อีเมลของผู้ใช้ที่สร้างบริษัท |
last_modified_at |
การประทับวันที่/เวลาที่แก้ไขบริษัทครั้งล่าสุด |
last_modified_by |
ที่อยู่อีเมลของผู้ใช้ที่แก้ไขบริษัทครั้งล่าสุด |
{company_custom_attributes} |
แอตทริบิวต์บริษัทที่กำหนดเอง ระบุชื่อแอตทริบิวต์ที่กำหนดเอง |
ตัวแปรของ Analytics
ระบบจะป้อนข้อมูลตัวแปรต่อไปนี้โดยอัตโนมัติใน Analytics เมื่อบังคับใช้นโยบาย "ยืนยันคีย์ API" สำหรับคีย์ API ที่ถูกต้อง ระบบจะป้อนข้อมูลตัวแปรเหล่านี้ด้วยนโยบาย Confirm API และนโยบาย OAuth เท่านั้น
คุณใช้ตัวแปรและค่าเป็นมิติข้อมูลเพื่อสร้างรายงาน Analytics เพื่อดูรูปแบบการใช้งานของนักพัฒนาแอปและแอปได้
- apiproduct.name
- developer.app.name
- client_id
- developer.id
การอ้างอิงข้อผิดพลาด
ส่วนนี้จะอธิบายโค้ดข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงผลและตัวแปรข้อผิดพลาดที่ Edge กําหนดเมื่อนโยบายนี้ทําให้เกิดข้อผิดพลาด ข้อมูลนี้เป็นสิ่งสำคัญที่ต้องทราบหากคุณกำลังกำหนดกฎข้อผิดพลาดเพื่อจัดการกับข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด
ข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน
รหัสข้อผิดพลาด | สถานะ HTTP | สาเหตุ |
---|---|---|
keymanagement.service.CompanyStatusNotActive |
401 | บริษัทที่เชื่อมโยงกับแอปนักพัฒนาซอฟต์แวร์ซึ่งมีคีย์ API ที่คุณใช้อยู่มีสถานะไม่ใช้งาน เมื่อตั้งสถานะของบริษัทเป็นไม่มีการใช้งาน คุณจะเข้าถึงนักพัฒนาแอปหรือแอปที่เชื่อมโยงกับบริษัทนั้นไม่ได้ ผู้ดูแลระบบองค์กรเปลี่ยนสถานะของบริษัทได้โดยใช้ Management API ดูตั้งค่าสถานะของบริษัท |
keymanagement.service.DeveloperStatusNotActive |
401 |
นักพัฒนาซอฟต์แวร์ที่สร้างแอปนักพัฒนาซอฟต์แวร์ซึ่งมีคีย์ API ที่คุณใช้อยู่มีสถานะไม่ใช้งาน เมื่อตั้งค่าสถานะของนักพัฒนาแอปเป็น "ไม่ใช้งาน" แอปของนักพัฒนาซอฟต์แวร์ที่นักพัฒนาแอปนั้นสร้างขึ้นจะถูกปิดใช้งาน ผู้ใช้ที่ดูแลระบบที่มีสิทธิ์ที่เหมาะสม (เช่น ผู้ดูแลระบบองค์กร) จะเปลี่ยนสถานะนักพัฒนาซอฟต์แวร์ได้ด้วยวิธีต่อไปนี้
|
keymanagement.service.invalid_client-app_not_approved |
401 | แอปนักพัฒนาซอฟต์แวร์ที่เชื่อมโยงกับคีย์ API ถูกเพิกถอนแล้ว แอปที่ถูกเพิกถอนไม่สามารถเข้าถึงผลิตภัณฑ์ API ใดๆ และไม่สามารถเรียกใช้ API ที่จัดการโดย Apigee Edge ได้ ผู้ดูแลระบบองค์กรเปลี่ยนสถานะของแอปนักพัฒนาซอฟต์แวร์ได้โดยใช้ Management API โปรดดู อนุมัติหรือเพิกถอนแอปนักพัฒนาซอฟต์แวร์ |
oauth.v2.FailedToResolveAPIKey |
401 | นโยบายคาดว่าจะพบคีย์ API ในตัวแปรที่ระบุในองค์ประกอบ <APIKey> ของนโยบาย ข้อผิดพลาดนี้เกิดขึ้นเมื่อไม่มีตัวแปรที่คาดไว้อยู่ (แก้ไขไม่ได้) |
oauth.v2.InvalidApiKey |
401 | Edge ได้รับคีย์ API แล้ว แต่คีย์ดังกล่าวไม่ถูกต้อง เมื่อ Edge ค้นหาคีย์ในฐานข้อมูล คีย์จะต้องตรงกับคีย์ที่ส่งไปในคำขอทุกประการ หาก API ใช้งานได้ก่อนหน้านี้ โปรดตรวจสอบว่าไม่ได้สร้างคีย์ใหม่ หากมีการสร้างคีย์ใหม่ คุณจะเห็นข้อผิดพลาดนี้หากพยายามใช้คีย์เก่า โปรดดูรายละเอียดที่หัวข้อลงทะเบียนแอปและจัดการคีย์ API |
oauth.v2.InvalidApiKeyForGivenResource |
401 | Edge ได้รับคีย์ API แล้วและใช้งานได้ แต่ไม่ตรงกับคีย์ที่ได้รับอนุมัติในแอปนักพัฒนาซอฟต์แวร์ที่เชื่อมโยงกับพร็อกซี API ของคุณผ่านผลิตภัณฑ์ |
ข้อผิดพลาดในการทำให้ใช้งานได้
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้
ชื่อข้อผิดพลาด | สาเหตุ |
---|---|
SpecifyValueOrRefApiKey |
องค์ประกอบ <APIKey> ไม่มีค่าหรือคีย์ที่ระบุไว้ |
ตัวแปรของข้อผิดพลาด
ระบบจะตั้งค่าตัวแปรเหล่านี้เมื่อเกิดข้อผิดพลาดรันไทม์ ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบาย
ตัวแปร | สถานที่ | ตัวอย่าง |
---|---|---|
fault.name="fault_name" |
fault_name คือชื่อของข้อผิดพลาดตามที่แสดงในตารางข้อผิดพลาดรันไทม์ด้านบน ชื่อข้อผิดพลาดคือส่วนสุดท้ายของโค้ดข้อผิดพลาด | fault.name Matches "FailedToResolveAPIKey" |
oauthV2.policy_name.failed |
policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นข้อผิดพลาด | oauthV2.VK-VerifyAPIKey.failed = true |
ตัวอย่างการตอบกลับข้อผิดพลาด
{ "fault":{ "faultstring":"Invalid ApiKey", "detail":{ "errorcode":"oauth.v2.InvalidApiKey" } } }
{ "fault":{ "detail":{ "errorcode":"keymanagement.service.DeveloperStatusNotActive" }, "faultstring":"Developer Status is not Active" } }
ตัวอย่างกฎข้อผิดพลาด
<FaultRule name="FailedToResolveAPIKey"> <Step> <Name>AM-FailedToResolveAPIKey</Name> </Step> <Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition> </FaultRule>