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