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

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

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

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

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

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

{
  "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
  • expir_in //-- วินาที
  • สถานะ
  • ขอบเขต
  • apiproduct.name*

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

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

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

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

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

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