รับนโยบาย OAuthV2Info

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

อะไร

รับแอตทริบิวต์ของโทเค็นเพื่อการเข้าถึง โทเค็นการรีเฟรช รหัสการให้สิทธิ์ และแอตทริบิวต์ของแอปไคลเอ็นต์ และป้อนค่าของแอตทริบิวต์เหล่านั้นลงในตัวแปร

นโยบายนี้มีประโยชน์เมื่อคุณต้องการกำหนดค่าลักษณะการทำงานแบบมีเงื่อนไขแบบไดนามิกตามค่า ในโทเค็นหรือรหัสการให้สิทธิ์ ทุกครั้งที่มีการตรวจสอบโทเค็น ระบบจะป้อนค่าแอตทริบิวต์โทเค็นลงในตัวแปรโดยอัตโนมัติ อย่างไรก็ตาม ในกรณีที่ไม่มีการตรวจสอบโทเค็น คุณสามารถใช้ฟีเจอร์นี้เพื่อป้อนข้อมูลตัวแปรอย่างชัดเจนด้วยค่าแอตทริบิวต์ของโทเค็น ดูเพิ่มเติมที่ การปรับแต่งโทเค็นและ รหัสการให้สิทธิ์

โทเค็นเพื่อการเข้าถึงที่คุณส่งไปยังนโยบายนี้ต้องถูกต้อง มิเช่นนั้นนโยบายจะแสดงข้อผิดพลาด invalid_access_token

ตัวอย่าง

ตัวอย่างต่อไปนี้ใช้นโยบาย Get OAuth V2 Info เพื่อดึงข้อมูลเกี่ยวกับคอมโพเนนต์ต่างๆ ของเวิร์กโฟลว์ OAuth2 จากนั้นจึงเข้าถึงข้อมูลดังกล่าวภายในโค้ด

โทเค็นเพื่อการเข้าถึง

หากต้องการรับข้อมูลอ้างอิงถึงโทเค็นเพื่อการเข้าถึง ให้ใช้องค์ประกอบ <AccessToken> ในนโยบาย ของคุณ

ตัวอย่างต่อไปนี้คาดว่าจะพบโทเค็นการเข้าถึงในพารามิเตอร์การค้นหาชื่อ "access_token" (รายละเอียดการติดตั้งใช้งานจริงขึ้นอยู่กับคุณ):

<GetOAuthV2Info name="MyTokenAttrsPolicy">
  <AccessToken ref="request.queryparam.access_token"></AccessToken>
</GetOAuthV2Info>

เมื่อได้รับโทเค็นเพื่อการเข้าถึงแล้ว นโยบายจะค้นหาโปรไฟล์ของโทเค็นและป้อนชุดตัวแปร ด้วยข้อมูลโปรไฟล์

จากนั้นคุณจะเข้าถึงตัวแปรได้โดยใช้ JavaScript หรือวิธีอื่นๆ ตัวอย่างต่อไปนี้ ดึงขอบเขตที่เชื่อมโยงกับโทเค็นเพื่อการเข้าถึงโดยใช้ JavaScript

var scope = context.getVariable('oauthv2accesstoken.MyTokenAttrsPolicy.scope');

โปรดทราบว่าหากต้องการเข้าถึงตัวแปรเหล่านั้นในโค้ด คุณต้องนำหน้าตัวแปรด้วย "oauthv2accesstoken" ดูรายการตัวแปรทั้งหมดที่พร้อมใช้งานผ่านโทเค็นเพื่อการเข้าถึงได้ที่ ตัวแปรโทเค็นเพื่อการเข้าถึง

รหัสการตรวจสอบสิทธิ์

หากต้องการรับแอตทริบิวต์รหัสการให้สิทธิ์ ให้ใช้องค์ประกอบ <AuthorizationCode> ในนโยบาย

ตัวอย่างต่อไปนี้คาดว่าจะพบโทเค็นการเข้าถึงในพารามิเตอร์แบบฟอร์ม ชื่อ "code" (รายละเอียดการใช้งานจริงขึ้นอยู่กับคุณ)

<GetOAuthV2Info name="MyAuthCodeAttrsPolicy">
  <AuthorizationCode ref="request.formparam.code"></AuthorizationCode>
</GetOAuthV2Info>

เมื่อได้รับรหัสการให้สิทธิ์ นโยบายจะค้นหาข้อมูลของรหัสและสร้างชุดตัวแปรที่มีข้อมูลรหัสการให้สิทธิ์

จากนั้นคุณจะเข้าถึงตัวแปรได้โดยใช้ JavaScript หรือวิธีอื่นๆ ตัวอย่างต่อไปนี้ ดึงแอตทริบิวต์ที่กำหนดเองซึ่งเชื่อมโยงกับรหัสการให้สิทธิ์โดยใช้ JavaScript

var attr = context.getVariable(oauthv2authcode.MyAuthCodeAttrsPolicy.custom_attribute_name);

โปรดทราบว่าหากต้องการเข้าถึงตัวแปรเหล่านั้นในโค้ด คุณต้องนำหน้าด้วย "oauthv2authcode" ดูรายการตัวแปรทั้งหมดที่ใช้ได้ผ่านรหัสการให้สิทธิ์ได้ที่ ตัวแปรของรหัสการให้สิทธิ์

โทเค็นการรีเฟรช

หากต้องการรับแอตทริบิวต์โทเค็นการรีเฟรช ให้ใช้องค์ประกอบ <RefreshToken> ในนโยบาย

ตัวอย่างต่อไปนี้คาดว่าจะพบโทเค็นเพื่อการเข้าถึงในพารามิเตอร์การค้นหาชื่อ "refresh_token" (รายละเอียดการติดตั้งใช้งานจริงขึ้นอยู่กับคุณ):

<GetOAuthV2Info name="MyRefreshTokenAttrsPolicy">
  <RefreshToken ref="request.queryparam.refresh_token"/>
</GetOAuthV2Info>

เมื่อได้รับโทเค็นการรีเฟรช นโยบายจะค้นหาข้อมูลของโทเค็นการรีเฟรชและป้อนชุดตัวแปรด้วยข้อมูลโทเค็นการรีเฟรช

จากนั้นคุณจะเข้าถึงตัวแปรเหล่านั้นได้โดยใช้ JavaScript หรือวิธีอื่นๆ ตัวอย่างต่อไปนี้ ดึงแอตทริบิวต์ที่กำหนดเองซึ่งเชื่อมโยงกับโทเค็นการรีเฟรชโดยใช้ JavaScript

var attr = context.getVariable(oauthv2refreshtoken.MyRefreshTokenAttrsPolicy.accesstoken.custom_attribute_name);

โปรดทราบว่าหากต้องการเข้าถึงตัวแปรในโค้ด คุณต้องนำหน้าตัวแปรด้วย "oauthv2refreshtoken" ดูรายการตัวแปรทั้งหมดที่ใช้ได้ผ่านโทเค็นการรีเฟรชได้ที่ ตัวแปรโทเค็นการรีเฟรช

คงที่

ในบางกรณีที่แทบจะไม่เคยเกิดขึ้น คุณอาจต้องรับโปรไฟล์ของโทเค็นที่กำหนดค่าแบบคงที่ (โทเค็นที่เข้าถึงผ่านตัวแปรไม่ได้) ซึ่งทำได้โดยระบุค่าของโทเค็นเพื่อเข้าถึงเป็นองค์ประกอบ

<GetOAuthV2Info name="GetTokenAttributes">
  <AccessToken>shTUmeI1geSKin0TODcGLXBNe9vp</AccessToken>
</GetOAuthV2Info>

คุณทำเช่นนี้กับโทเค็นประเภทอื่นๆ ทั้งหมด (รหัสไคลเอ็นต์ รหัสการให้สิทธิ์ และโทเค็นการรีเฟรช) ได้ด้วย

รหัสลูกค้า

ตัวอย่างนี้แสดงวิธีดึงข้อมูลเกี่ยวกับแอปไคลเอ็นต์โดยใช้รหัสไคลเอ็นต์ เมื่อดำเนินการ นโยบายจะป้อนข้อมูลไคลเอ็นต์ลงในชุดตัวแปร ในกรณีนี้ นโยบายคาดหวังว่าจะพบรหัสไคลเอ็นต์ในพารามิเตอร์การค้นหาที่ชื่อ client_id เมื่อระบุรหัสไคลเอ็นต์แล้ว นโยบายจะค้นหาโปรไฟล์ของไคลเอ็นต์ และป้อนข้อมูลโปรไฟล์ลงในชุดตัวแปร ตัวแปรจะมีคำนำหน้าเป็น oauthv2client.

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId ref="request.queryparam.client_id"></ClientId>
</GetOAuthV2Info>

จากนั้นคุณจะเข้าถึงตัวแปรได้โดยใช้ JavaScript หรือวิธีอื่นๆ ตัวอย่างเช่น หากต้องการรับ ชื่อแอปของนักพัฒนาแอปและอีเมลของนักพัฒนาแอปที่เชื่อมโยงกับแอปไคลเอ็นต์โดยใช้ JavaScript ให้ทำดังนี้

context.getVariable("oauthv2client.GetClientAttributes.developer.email");
context.getVariable("oauthv2client.GetClientAttributes.developer.app.name");

การอ้างอิงองค์ประกอบ

การอ้างอิงองค์ประกอบจะอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบาย GetOAuthV2Info

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<GetOAuthV2Info async="false" continueOnError="false" enabled="true" name="GetOAuthV2Info-1"
    <DisplayName>Get OAuth v2.0 Info 1</DisplayName>
    <AccessToken ref="variable"></AccessToken>
    <AuthorizationCode ref="variable"></AuthorizationCode>
    <ClientId ref="variable"></ClientId>
    <RefreshToken ref="variable"></RefreshToken>
</GetOAuthV2Info>

แอตทริบิวต์ <GetOAuthV2Info>

<GetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Get-OAuth-v20-Info-1">

The following table describes attributes that are common to all policy parent elements:

Attribute Description Default Presence
name

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

N/A Required
continueOnError

Set to false to return an error when a policy fails. This is expected behavior for most policies.

Set to true to have flow execution continue even after a policy fails.

false Optional
enabled

Set to true to enforce the policy.

Set to false to turn off the policy. The policy will not be enforced even if it remains attached to a flow.

true Optional
async

This attribute is deprecated.

false Deprecated

<DisplayName> element

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, natural-language name.

<DisplayName>Policy Display Name</DisplayName>
Default

N/A

If you omit this element, the value of the policy's name attribute is used.

Presence Optional
Type String

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

เรียกข้อมูลโปรไฟล์สำหรับโทเค็นเพื่อการเข้าถึง คุณส่งตัวแปรที่มีสตริงโทเค็นเพื่อการเข้าถึงหรือสตริงโทเค็นแบบอักษร (กรณีที่พบได้ยาก) ในตัวอย่างนี้ ระบบจะดึงโทเค็นเพื่อการเข้าถึงจากพารามิเตอร์การค้นหาที่ส่งในคำขอ ใช้องค์ประกอบ <IgnoreAccessTokenStatus> หากต้องการแสดงข้อมูลสำหรับโทเค็นที่ถูกเพิกถอนหรือหมดอายุ

<AccessToken ref="request.queryparam.access_token"></AccessToken>

ค่าเริ่มต้น:

request.formparam.access_token (x-www-form-urlencoded และระบุในคำขอ เนื้อหา)

การแสดงตน:

ไม่บังคับ

ประเภท: สตริง
ค่าที่ใช้ได้

ตัวแปรโฟลว์ที่มีสตริงโทเค็นเพื่อการเข้าถึง หรือสตริงตัวอักษร


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

เรียกข้อมูลโปรไฟล์สำหรับรหัสการให้สิทธิ์ คุณส่งตัวแปรที่มีสตริงรหัสการให้สิทธิ์หรือสตริงโทเค็นแบบอักษร (กรณีที่พบได้ยาก) ในตัวอย่างนี้ ระบบจะดึงรหัสการให้สิทธิ์จากพารามิเตอร์การค้นหาที่ส่งในคำขอ ดูรายการตัวแปรที่การดำเนินการนี้สร้างขึ้นได้ที่ "ตัวแปรโฟลว์"

<AuthorizationCode ref="request.queryparam.authorization_code"></AuthorizationCode>

ค่าเริ่มต้น:

request.formparam.access_token (x-www-form-urlencoded และระบุในคำขอ เนื้อหา)

การแสดงตน:

ไม่บังคับ

ประเภท: สตริง
ค่าที่ใช้ได้

ตัวแปรโฟลว์ที่มีสตริงรหัสการให้สิทธิ์ หรือสตริงตามตัวอักษร

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

เรียกข้อมูลที่เกี่ยวข้องกับ Client ID ในตัวอย่างนี้ ระบบจะดึงรหัสไคลเอ็นต์ จากพารามิเตอร์การค้นหาที่ส่งในคำขอ ดูรายการตัวแปรที่การดำเนินการนี้สร้างขึ้นได้ที่ "ตัวแปรโฟลว์"

<ClientId ref="request.queryparam.client_id"></ClientId>

ค่าเริ่มต้น:

request.formparam.access_token (x-www-form-urlencoded และระบุในคำขอ เนื้อหา)

การแสดงตน:

ไม่บังคับ

ประเภท: สตริง
ค่าที่ใช้ได้ ตัวแปรโฟลว์ที่มีสตริงรหัสการให้สิทธิ์ หรือสตริงตามตัวอักษร

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

แสดงข้อมูลโทเค็นแม้ว่าโทเค็นจะหมดอายุหรือถูกเพิกถอนแล้วก็ตาม องค์ประกอบนี้ใช้ได้กับโทเค็นการเข้าถึงเท่านั้น ระบบจะแสดงข้อมูลสำหรับเอนทิตีอื่นๆ เช่น โทเค็นการรีเฟรชและรหัสการให้สิทธิ์ โดยไม่คำนึงถึงสถานะของเอนทิตีเหล่านั้นตามค่าเริ่มต้น

<IgnoreAccessTokenStatus>true</IgnoreAccessTokenStatus>

ค่าเริ่มต้น:

เท็จ

การแสดงตน:

ไม่บังคับ

ประเภท: บูลีน
ค่าที่ใช้ได้ จริงหรือเท็จ

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

เรียกข้อมูลโปรไฟล์สำหรับโทเค็นการรีเฟรช คุณส่งตัวแปรที่มีสตริงโทเค็นการรีเฟรชหรือสตริงโทเค็นแบบอักษร (กรณีที่พบได้ยาก) ในตัวอย่างนี้ ระบบจะดึงโทเค็นการรีเฟรชจากพารามิเตอร์การค้นหาที่ส่งในคำขอ ดูรายการตัวแปรที่การดำเนินการนี้สร้างขึ้นได้ที่ "ตัวแปรโฟลว์"

<RefreshToken ref="request.queryparam.refresh_token"></RefreshToken>

ค่าเริ่มต้น:

request.formparam.access_token (x-www-form-urlencoded และระบุในคำขอ เนื้อหา)

การแสดงตน:

ไม่บังคับ

ประเภท: สตริง
ค่าที่ใช้ได้

ตัวแปรโฟลว์ที่มีสตริงโทเค็นการรีเฟรช หรือสตริงอักษร

ตัวแปรโฟลว์

นโยบาย GetOAuthV2Info จะสร้างตัวแปรเหล่านี้ และมักใช้ในกรณีที่คุณ ต้องการข้อมูลโปรไฟล์ แต่ยังไม่มีการให้สิทธิ์หรือการตรวจสอบ .

ตัวแปร Client ID

ระบบจะป้อนข้อมูลตัวแปรเหล่านี้เมื่อตั้งค่าองค์ประกอบ ClientId

oauthv2client.{policy_name}.client_id
oauthv2client.{policy_name}.client_secret
oauthv2client.{policy_name}.redirection_uris // Note the spelling -- 'redirection_uris'
oauthv2client.{policy_name}.developer.email
oauthv2client.{policy_name}.developer.app.name
oauthv2client.{policy_name}.developer.id
oauthv2client.{policy_name}.{developer_app_custom_attribute_name}

ตัวแปรโทเค็นเพื่อการเข้าถึง

ระบบจะป้อนข้อมูลตัวแปรเหล่านี้เมื่อตั้งค่าองค์ประกอบ AccessToken

oauthv2accesstoken.{policy_name}.developer.id
oauthv2accesstoken.{policy_name}.developer.app.name
oauthv2accesstoken.{policy_name}.developer.app.id
oauthv2accesstoken.{policy_name}.developer.email

oauthv2accesstoken.{policy_name}.organization_name
oauthv2accesstoken.{policy_name}.api_product_list

oauthv2accesstoken.{policy_name}.access_token
oauthv2accesstoken.{policy_name}.scope
oauthv2accesstoken.{policy_name}.expires_in //in seconds
oauthv2accesstoken.{policy_name}.status
oauthv2accesstoken.{policy_name}.client_id
oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name}

oauthv2accesstoken.{policy_name}.refresh_token
oauthv2accesstoken.{policy_name}.refresh_token_status
oauthv2accesstoken.{policy_name}.refresh_token_expires_in //in seconds

oauthv2accesstoken.{policy_name}.refresh_count
oauthv2accesstoken.{policy_name}.refresh_token_issued_at
oauthv2accesstoken.{policy_name}.revoke_reason //Apigee hybrid only with value of REVOKED_BY_APP, REVOKED_BY_ENDUSER, REVOKED_BY_APP_ENDUSER, or TOKEN_REVOKED

ตัวแปรของรหัสการให้สิทธิ์

ระบบจะป้อนข้อมูลตัวแปรเหล่านี้เมื่อตั้งค่าองค์ประกอบ AuthorizationCode

oauthv2authcode.{policy_name}.code
oauthv2authcode.{policy_name}.scope
oauthv2authcode.{policy_name}.redirect_uri
oauthv2authcode.{policy_name}.client_id
oauthv2authcode.{policy_name}.{auth_code_custom_attribute_name}

ตัวแปรโทเค็นการรีเฟรช

ระบบจะป้อนข้อมูลตัวแปรเหล่านี้เมื่อตั้งค่าองค์ประกอบ RefreshToken

oauthv2refreshtoken.{policy_name}.developer.id
oauthv2refreshtoken.{policy_name}.developer.app.name
oauthv2refreshtoken.{policy_name}.developer.app.id
oauthv2refreshtoken.{policy_name}.developer.email
oauthv2refreshtoken.{policy_name}.organization_name
oauthv2refreshtoken.{policy_name}.api_product_list

oauthv2refreshtoken.{policy_name}.access_token
oauthv2refreshtoken.{policy_name}.scope
oauthv2refreshtoken.{policy_name}.expires_in //in seconds

oauthv2refreshtoken.{policy_name}.status
oauthv2refreshtoken.{policy_name}.client_id
oauthv2refreshtoken.{policy_name}.accesstoken.{custom_attribute_name}

oauthv2refreshtoken.{policy_name}.refresh_token
oauthv2refreshtoken.{policy_name}.refresh_token_status
oauthv2refreshtoken.{policy_name}.refresh_token_expires_in //in seconds

oauthv2refreshtoken.{policy_name}.refresh_count
oauthv2refreshtoken.{policy_name}.refresh_token_issued_at
oauthv2refreshtoken.{policy_name}.revoke_reason //Apigee hybrid only with value of REVOKED_BY_APP, REVOKED_BY_ENDUSER, REVOKED_BY_APP_ENDUSER, or TOKEN_REVOKED

สคีมา

นโยบายแต่ละประเภทกำหนดโดยสคีมา XML (.xsd) โดยคุณดูสคีมานโยบาย ได้ใน GitHub

ข้อมูลอ้างอิงข้อผิดพลาด

ส่วนนี้จะอธิบายรหัสข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงกลับมา และตัวแปรข้อผิดพลาดที่ Edge ตั้งค่าไว้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้มีความสำคัญต่อการทราบว่าคุณจะสร้างกฎความผิดพลาดเพื่อ จัดการกับข้อผิดพลาด หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่สิ่งที่คุณจำเป็นต้องทราบ เกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการ ข้อผิดพลาด

ข้อผิดพลาดเกี่ยวกับรันไทม์

ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน ชื่อข้อผิดพลาดที่แสดงด้านล่างคือสตริง ที่กำหนดให้กับตัวแปร fault.name เมื่อเกิดข้อผิดพลาด ดูรอยเลื่อน ตัวแปรด้านล่างเพื่อดูรายละเอียดเพิ่มเติม

รหัสข้อผิดพลาด สถานะ HTTP สาเหตุ
steps.oauth.v2.access_token_expired 500 โทเค็นเพื่อการเข้าถึงที่ส่งไปยังนโยบายหมดอายุแล้ว
steps.oauth.v2.authorization_code_expired 500 รหัสการให้สิทธิ์ที่ส่งไปยังนโยบายหมดอายุ
steps.oauth.v2.invalid_access_token 500 โทเค็นเพื่อการเข้าถึงที่ส่งไปยังนโยบายไม่ถูกต้อง
steps.oauth.v2.invalid_client-invalid_client_id 500 รหัสไคลเอ็นต์ที่ส่งไปยังนโยบายไม่ถูกต้อง
steps.oauth.v2.invalid_refresh_token 500 โทเค็นการรีเฟรชที่ส่งไปยังนโยบายไม่ถูกต้อง
steps.oauth.v2.invalid_request-authorization_code_invalid 500 รหัสการให้สิทธิ์ที่ส่งไปยังนโยบายไม่ถูกต้อง
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 โปรดดูที่ โพสต์ชุมชน Apigee นี้เพื่อดูข้อมูลเกี่ยวกับการแก้ปัญหาข้อผิดพลาดนี้
steps.oauth.v2.refresh_token_expired 500 โทเค็นการรีเฟรชที่ส่งไปยังนโยบายหมดอายุแล้ว

ข้อผิดพลาดในการทำให้ใช้งานได้

โปรดดูข้อมูลเกี่ยวกับข้อผิดพลาดในการทำให้ใช้งานได้จากข้อความที่รายงานใน UI

ตัวแปรความผิดพลาด

ระบบจะตั้งค่าตัวแปรเหล่านี้เมื่อนโยบายนี้ทำให้เกิดข้อผิดพลาดขณะรันไทม์

ตัวแปร สถานที่ ตัวอย่าง
fault.name="fault_name" fault_name คือชื่อของข้อผิดพลาดตามที่ระบุไว้ในตารางข้อผิดพลาดรันไทม์ด้านบน ชื่อข้อผิดพลาดคือส่วนสุดท้ายของรหัสข้อผิดพลาด fault.name Matches "IPDeniedAccess"
oauthV2.policy_name.failed policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นสาเหตุของข้อผิดพลาด oauthV2.GetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นสาเหตุของข้อผิดพลาด oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id
oauthV2.policy_name.fault.cause policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นสาเหตุของข้อผิดพลาด oauthV2.GetTokenInfo.cause = ClientID is Invalid

ตัวอย่างการตอบสนองข้อผิดพลาด

{  
   "fault":{  
      "faultstring":"ClientId is Invalid",
      "detail":{  
         "errorcode":"keymanagement.service.invalid_client-invalid_client_id"
      }
   }
}

ตัวอย่างกฎข้อผิดพลาด

<FaultRule name="OAuthV2 Faults">
    <Step>
        <Name>AM-InvalidClientIdResponse</Name>
    </Step>
    <Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>

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