คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
Apigee Edge มีเฟรมเวิร์ก OAuth 2.0 เพื่อรักษาความปลอดภัยให้ API OAuth2 เป็นหนึ่งในแผนการตรวจสอบสิทธิ์และการให้สิทธิ์มาตรฐานแบบเปิดที่ได้รับความนิยมมากที่สุด ซึ่งช่วยให้แอปพลิเคชันไคลเอ็นต์เข้าถึง API ในนามของผู้ใช้ได้โดยไม่ต้องให้ผู้ใช้เปิดเผยชื่อผู้ใช้และรหัสผ่าน
Apigee Edge ช่วยให้นักพัฒนาซอฟต์แวร์สร้างโทเค็นเพื่อการเข้าถึงและ/หรือรีเฟรชโทเค็นได้โดยใช้การให้สิทธิ์ OAuth2 จาก 4 ประเภท ซึ่งได้แก่ ข้อมูลเข้าสู่ระบบไคลเอ็นต์ รหัสผ่าน โดยนัย และรหัสการให้สิทธิ์ โดยใช้นโยบาย OAuthv2 แอปพลิเคชันไคลเอ็นต์ใช้โทเค็นเพื่อการเข้าถึงเพื่อใช้ API ที่ปลอดภัย โทเค็นเพื่อการเข้าถึงแต่ละรายการมีเวลาหมดอายุของตนเอง ซึ่งตั้งค่าได้ในนโยบาย OAuthv2
คุณสามารถเลือกออกโทเค็นการรีเฟรชพร้อมกับโทเค็นเพื่อการเข้าถึงที่มีการให้สิทธิ์บางประเภท โทเค็นเพื่อการเข้าถึงจะใช้ในการรับโทเค็นเพื่อการเข้าถึงที่ถูกต้องใหม่หลังจากโทเค็นเพื่อการเข้าถึงเดิมหมดอายุหรือถูกเพิกถอน คุณตั้งเวลาหมดอายุสำหรับโทเค็นการรีเฟรชได้ในนโยบาย OAuthv2
รูปแบบที่ต่อต้านนี้เกี่ยวข้องกับรูปแบบต่อต้านของการตั้งค่าเวลาหมดอายุที่ยาวนานสำหรับโทเค็น OAuth
ลายป้องกัน
การตั้งค่าเวลาหมดอายุสำหรับโทเค็นการรีเฟรชในนโยบาย OAuthv2 นำไปสู่การสะสมโทเค็น OAuth และการใช้พื้นที่ดิสก์ที่เพิ่มขึ้นบนโหนด Cassandra
ตัวอย่างต่อไปนี้นโยบาย OAuthV2 แสดงการกำหนดค่าที่ขาดหายไปสำหรับ <RefreshTokenExpiresIn>
<OAuthV2 name="GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes --> <!--<RefreshTokenExpiresIn> is missing --> <SupportedGrantTypes> <GrantType>password</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> </OAuthV2>
ในตัวอย่างด้านบน
- โทเค็นเพื่อการเข้าถึงตั้งค่าไว้ที่เวลาหมดอายุต่ำพอสมควรที่ 30 นาที
- ไม่ได้ตั้งค่าวันหมดอายุของโทเค็นการรีเฟรช
- โทเค็นการรีเฟรชจะยังคงอยู่ในพื้นที่เก็บข้อมูล (Cassandra) ตลอดไป ซึ่งทำให้เกิดการสะสมข้อมูล
- โทเค็นการรีเฟรชที่สร้างขึ้นโดยไม่มีวันหมดอายุสามารถนำมาใช้สร้างโทเค็นเพื่อการเข้าถึงได้เรื่อยๆ
- หากการรับส่งข้อมูลไปยัง API นี้คือคำขอ 10 รายการต่อวินาที ก็จะสร้างโทเค็นได้สูงสุด 864,000 รายการต่อวัน
มีอิทธิพล
- หากโทเค็นการรีเฟรชสร้างขึ้นโดยไม่มีวันหมดอายุ จะมีผลกระทบที่สำคัญ 2 ประการ ได้แก่
- คุณใช้โทเค็นการรีเฟรชได้ทุกเมื่อในอนาคต หรืออาจเป็นเวลาหลายปีเพื่อให้ได้รับโทเค็นเพื่อการเข้าถึง การดำเนินการนี้อาจมีผลต่อความปลอดภัย
- ระบบจะไม่ลบแถวใน Cassandra ที่มีโทเค็นการรีเฟรช ซึ่งจะทำให้ข้อมูลสะสมใน Cassandra
- หากคุณไม่ได้ใช้โทเค็นการรีเฟรชเพื่อรับโทเค็นเพื่อการเข้าถึงใหม่ แต่สร้างโทเค็นการรีเฟรชและโทเค็นเพื่อการเข้าถึงแทน โทเค็นการรีเฟรชเก่าจะยังคงอยู่ใน Cassandra ดังนั้น โทเค็นการรีเฟรชจะยังคงสะสมอยู่ใน Cassandra โดยการเพิ่มเพื่อขยาย การใช้งานดิสก์มากขึ้น และการอัดแน่นมากขึ้น รวมถึงจะทำให้เกิดเวลาในการตอบสนองในการอ่าน/เขียนใน Cassandra ในที่สุด
แนวทางปฏิบัติแนะนำ
ใช้เวลาหมดอายุที่ต่ำอย่างเหมาะสมสำหรับทั้งโทเค็นการรีเฟรชและโทเค็นเพื่อการเข้าถึง ดูแนวทางปฏิบัติแนะนำสำหรับการตั้งค่าเวลาหมดอายุของโทเค็นเพื่อการเข้าถึงและการรีเฟรช ตรวจสอบว่าได้ระบุการกำหนดค่าการหมดอายุสำหรับทั้งโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชในนโยบาย ดูรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่านโยบายได้ในเอกสารประกอบของนโยบาย OauthV2
แนวทางปฏิบัติแนะนำสําหรับ Edge สำหรับลูกค้า Private Cloud โดยเฉพาะ
ส่วนนี้จะอธิบายแนวทางปฏิบัติแนะนำสําหรับ Edge สำหรับลูกค้า Private Cloud โดยเฉพาะ
ระบุการหมดอายุของโทเค็นการรีเฟรชเริ่มต้น
โดยค่าเริ่มต้น หากไม่ได้ระบุการหมดอายุของโทเค็นการรีเฟรชในการกำหนดค่านโยบาย Edge จะสร้างโทเค็นการรีเฟรชโดยไม่มีวันหมดอายุ คุณลบล้างลักษณะการทำงานนี้ได้โดยทำตามขั้นตอนต่อไปนี้
- ในโหนดตัวประมวลผลข้อความ ให้แก้ไขหรือสร้างไฟล์ลบล้างการกำหนดค่า
$APIGEE_ROOT/customer/application/message-processor.properties
ตรวจสอบว่าผู้ใช้apigee
อ่านไฟล์นี้ได้ - เพิ่มบรรทัดต่อไปนี้ลงในไฟล์
conf_keymanagement_oauth_refresh_token_expiry_time_in_millis=3600000
วิธีนี้จะตั้งค่าการหมดอายุของโทเค็นการรีเฟรชเริ่มต้นเป็น 1 ชั่วโมงหากไม่มีการระบุไว้ในนโยบาย คุณเปลี่ยนมูลค่าเริ่มต้นนี้ได้ตามความต้องการทางธุรกิจ - รีสตาร์ทบริการผู้ประมวลผลข้อความโดยทำดังนี้
apigee-service edge-message-processor restart
- ทําขั้นตอนข้างต้นซ้ำในโหนดเครื่องมือประมวลผลข้อความทั้งหมดทีละรายการ
แนวทางปฏิบัติที่ดีที่สุดใน Cassandra
ลองอัปเกรด Apigee เป็นเวอร์ชันล่าสุดที่พร้อมใช้งานแบบสาธารณะ Apigee ได้ทยอยเปิดตัวการแก้ไขและการเพิ่มประสิทธิภาพอย่างต่อเนื่อง รวมถึงปรับปรุงและเพิ่มประสิทธิภาพการจัดการโทเค็นภายใน Apigee อย่างต่อเนื่อง ใน Apigee โทเค็นเพื่อการเข้าถึงและรีเฟรชจะจัดเก็บไว้ใน Cassandra ภายในแป้น "kms" คุณควรตรวจสอบว่ากลยุทธ์การอัดแน่นของ keyspace นี้ตั้งค่าเป็นLeveledCompactionStrategy
คุณควรตรวจสอบว่าดัชนีต่อไปนี้ไม่แสดงอยู่
- kms.oauth_20_access_tokens.oauth_20_access_tokens_organization_name_idx#f0f0f0 และ
- kms.oauth_20_access_tokens.oauth_20_access_tokens_status_idx
นอกจากนี้ คุณยังลด gc_grace_seconds
ในตาราง kms.oauth_20_access_tokens
จากค่าเริ่มต้น 10 วันให้มีค่าต่ำลง (เช่น 3 วัน) ได้ด้วย เพื่อให้แน่ใจว่ามีการลบโทเค็นจากโทเค็นที่ถูกลบออกจากพื้นที่เก็บข้อมูลเร็วขึ้น