การกำหนดค่าโทเค็นและรหัสการให้สิทธิ์

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

เกี่ยวกับข้อมูลเมตาของโทเค็น

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

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

การแสดงโทเค็นเพื่อการเข้าถึงของ Edge เป็น JSON จะมีลักษณะดังนี้

{
  "issued_at" : "1372170159093",
  "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501",
  "scope" : "READ",
  "status" : "approved",
  "api_product_list" : "[Product1,Product2]",
  "api_product_list_json" : ["Product1", "Product2"],
  "expires_in" : "3599", //--in seconds
  "developer.email" : "joe@weathersample.com",
  "organization_id" : "0",
  "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe",
  "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND",
  "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp",
  "organization_name" : "apifactory",
  "refresh_count" : "0"
}

การเพิ่มแอตทริบิวต์ที่กำหนดเองลงในโทเค็น OAuth

บางครั้งการแนบข้อมูลเมตาที่กำหนดเองลงในโทเค็นเพื่อการเข้าถึงก็มีประโยชน์ เช่น คุณอาจต้องการเพิ่มชื่อผู้ใช้ การเป็นสมาชิกกลุ่มหรือบทบาทของผู้ใช้, รหัสลูกค้า, ตัวระบุเซสชัน หรือข้อมูลอื่นๆ ที่กำหนดเองลงในโทเค็น ใน Apigee Edge ข้อมูลเหล่านี้เรียกว่า "แอตทริบิวต์ที่กำหนดเอง " จากนั้น เมื่อมีการยืนยันโทเค็นภายในขอบเขตของคำขอ API ระบบจะทำให้ข้อมูลดังกล่าวพร้อมใช้งานสำหรับพร็อกซี API ผ่านตัวแปรบริบท พร็อกซี API สามารถตัดสินใจให้สิทธิ์หรือกำหนดเส้นทางอย่างละเอียดตามข้อมูลที่กำหนดเองซึ่งแนบอยู่กับ โทเค็น

หากต้องการแนบข้อมูลที่กำหนดเองลงในโทเค็น ให้ใช้ <Attributes> องค์ประกอบใน นโยบาย OAuthV2 คุณสามารถ ระบุชื่อของแอตทริบิวต์ที่กำหนดเองและค่าที่ควรใช้ ตัวอย่างเช่น นี่คือการกำหนดค่านโยบายที่สร้างโทเค็นและแนบแอตทริบิวต์ที่กำหนดเองชื่อ "tenant_list" ลงในโทเค็น

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>600000</ExpiresIn>
  <GenerateResponse />
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>request.queryparam.grant_type</GrantType>
  <Attributes> 
    <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/>
  </Attributes>
</OAuthV2>

คุณสามารถระบุแอตทริบิวต์ที่กำหนดเองหลายรายการ และแนบแอตทริบิวต์เหล่านั้นโดยนัยลงใน รหัสการให้สิทธิ์ (<Operation>GenerateAuthorizationCode</Operation>) หรือ โทเค็น (<Operation>GenerateAccessToken</Operation>) ในขณะที่ สร้าง

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือก display การแสดงหรือซ่อนแอตทริบิวต์ที่กำหนดเองในคำตอบ

การรับแอตทริบิวต์ที่กำหนดเองในรันไทม์

เมื่อมีการเรียกใช้ OAuthV2/VerifyAccessToken, Apigee Edge จะยืนยันโทเค็นโดยค้นหาโทเค็นในที่เก็บโทเค็น จากนั้น Apigee Edge จะป้อนข้อมูลลงในชุดตัวแปรบริบทที่มีข้อมูลเกี่ยวกับโทเค็น ซึ่งได้แก่

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • expires_in //--in seconds
  • status
  • scope
  • apiproduct.name*

หากโทเค็นมีแอตทริบิวต์ที่กำหนดเอง ระบบจะทำให้แอตทริบิวต์ที่กำหนดเองเหล่านั้นพร้อมใช้งานใน ตัวแปรบริบทที่มีชื่อว่า accesstoken.{custom_attribute} เช่น สมมติว่ามีการออกโทเค็นจากนโยบายที่แสดงด้านบน หลังจากยืนยันโทเค็นดังกล่าวแล้ว จะมี ตัวแปรบริบทเพิ่มเติมชื่อ accesstoken.tenant_list ซึ่งมี ค่าที่จัดเก็บไว้ในขณะที่สร้างโทเค็น

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

การตั้งค่าและอัปเดตแอตทริบิวต์ที่กำหนดเองที่ รันไทม์

ในบางสถานการณ์ คุณอาจต้องการให้พร็อกซี API อัปเดตข้อมูลเมตาที่เชื่อมโยงกับโทเค็นเพื่อการเข้าถึง ในรันไทม์ขณะที่กำลังประมวลผลการเรียก API ใน Apigee Edge Apigee จึงมีนโยบายสำหรับการรับและตั้งค่าแอตทริบิวต์ของโทเค็น ดูข้อมูลเพิ่มเติมได้ที่ นโยบาย Get OAuth V2 Info และ นโยบาย Set OAuth V2 Info

ในนโยบายแต่ละรายการ องค์ประกอบ AccessToken ควรอ้างอิงตัวแปรที่ มีโทเค็นเพื่อการเข้าถึง

นอกจากนี้ คุณยังใช้ Edge API เพื่ออัปเดตแอตทริบิวต์ที่กำหนดเองซึ่งแนบอยู่กับโทเค็นได้ด้วย ดูเอกสารประกอบเกี่ยวกับ API สำหรับเมธอด Update OAuth 2.0 Access Token