นโยบาย VerificationAPIKey

คุณกำลังดูเอกสารประกอบของ 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

ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ name มีตัวอักษร ตัวเลข ช่องว่าง ขีดกลาง ขีดล่าง และจุด ค่านี้ต้องมีอักขระไม่เกิน 255 ตัว

(ไม่บังคับ) ใช้องค์ประกอบ <DisplayName> เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติที่แตกต่างออกไป

ไม่มีข้อมูล จำเป็น
continueOnError

ตั้งค่าเป็น false เพื่อแสดงผลข้อผิดพลาดเมื่อนโยบายล้มเหลว ซึ่งถือเป็นเรื่องปกติสำหรับนโยบายส่วนใหญ่

ตั้งค่าเป็น true เพื่อให้การดำเนินการโฟลว์ดำเนินต่อไปได้แม้ว่านโยบายจะล้มเหลวก็ตาม

false ไม่บังคับ
enabled

ตั้งค่าเป็น true เพื่อบังคับใช้นโยบาย

ตั้งค่าเป็น false เพื่อปิดนโยบาย ระบบจะไม่บังคับใช้นโยบายแม้ว่าจะยังแนบอยู่กับขั้นตอนก็ตาม

จริง ไม่บังคับ
async

แอตทริบิวต์นี้เลิกใช้งานแล้ว

false เลิกใช้

องค์ประกอบ <DisplayName>

ใช้เพิ่มเติมจากแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติที่แตกต่างออกไป

<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น

ไม่มีข้อมูล

หากคุณไม่ใส่องค์ประกอบนี้ ระบบจะใช้ค่าของแอตทริบิวต์ name ของนโยบาย

การมีบุคคลอยู่ ไม่บังคับ
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>

หัวข้อที่เกี่ยวข้อง