การใช้ยูทิลิตี get_token และ acurl

Apigee มียูทิลิตี get_token และ acurl เพื่อลดความซับซ้อนในการโต้ตอบกับ Apigee SSO และ Edge Management API เครื่องมือเหล่านี้จะจัดการการสร้าง การแคช การรีเฟรช และการแทรกโทเค็นโดยอัตโนมัติ

ยูทิลิตีจะติดตั้งอยู่ในโหนด OpenLDAP ที่ /opt/apigee/apigee-openldap/bin/

ยูทิลิตี get_token

ยูทิลิตี get_token มีหน้าที่รับโทเค็นเพื่อการเข้าถึงและโทเค็นเพื่อรีเฟรช OIDC/OAuth2 โดยรองรับโฟลว์การตรวจสอบสิทธิ์หลัก 2 รายการและมีการแคชโทเค็นในตัว

โฟลว์การตรวจสอบสิทธิ์

  • Device Code Flow (RFC 8628): ออกแบบมาสำหรับผู้ใช้ที่เป็นบุคคลจริงที่ตรวจสอบสิทธิ์ผ่านผู้ให้บริการข้อมูลประจำตัว (เช่น SAML, Okta หรือ OIDC) ภายนอก หากคุณส่งเฉพาะอีเมล (-u <email>) ยูทิลิตีจะเริ่มโฟลว์นี้ โดยแจ้งให้คุณทราบ URL และโค้ดเพื่ออนุมัติในเบราว์เซอร์
  • Password Grant (ROPC): ออกแบบมาสำหรับผู้ใช้ที่เป็นเครื่องแบบไม่มีส่วนหัวและสคริปต์อัตโนมัติ หากคุณส่งทั้งชื่อผู้ใช้และรหัสผ่าน (-u <user>:<password>) ระบบจะตรวจสอบสิทธิ์กับ Apigee SSO โดยตรงโดยไม่ต้องโต้ตอบกับเบราว์เซอร์

การแคชโทเค็นและการรีเฟรชอัตโนมัติ

ยูทิลิตี get_token จะจัดการวงจรการใช้งานโทเค็นโดยอัตโนมัติ คุณจึงไม่ต้องติดตามเวลาหมดอายุด้วยตนเอง

  • การตรวจสอบแคช: เมื่อเรียกใช้ get_token จะตรวจสอบแคชในเครื่องที่ ~/.sso-cli/<username>-token.json หากมีโทเค็นที่ถูกต้องและยังไม่หมดอายุ ระบบจะใช้โทเค็นนั้นซ้ำโดยไม่ต้องตรวจสอบสิทธิ์อีกครั้ง
  • การรีเฟรชอัตโนมัติ: หากโทเค็นเพื่อการเข้าถึงที่แคชไว้หมดอายุ แต่มีโทเค็นเพื่อรีเฟรชที่ถูกต้อง ยูทิลิตีจะแลกโทเค็นเพื่อรีเฟรชที่ Apigee SSO เป็นโทเค็นเพื่อการเข้าถึงใหม่โดยอัตโนมัติ

ตัวแปรสภาพแวดล้อม

คุณเลือกปรับแต่งลักษณะการทำงานของ get_token ได้โดยใช้ตัวแปรสภาพแวดล้อมต่อไปนี้

  • SSO_LOGIN_URL: URL ของ Apigee SSO (ค่าเริ่มต้น: http://localhost:9099)
  • CLIENT_ID: รหัสไคลเอ็นต์ OAuth2 (ค่าเริ่มต้น: edgecli)
  • CLIENT_SECRET: รหัสลับไคลเอ็นต์ OAuth2 (ค่าเริ่มต้น: edgeclisecret)

ยูทิลิตี acurl

ยูทิลิตี acurl เป็น Wrapper แบบโปร่งใสสำหรับ curl มาตรฐาน ซึ่งจะช่วยให้มั่นใจว่าทุกคำขอ API มีโทเค็นสำหรับผู้ถือที่ถูกต้อง

  • การแยกอาร์กิวเมนต์: ยูทิลิตีจะแยกอาร์กิวเมนต์ -u <user:password> หรือ -u <user> และส่งไปยัง get_token จากนั้นจะส่งต่ออาร์กิวเมนต์อื่นๆ ทั้งหมด (เช่น -X, -H, -d, -v, -s) ไปยัง curl มาตรฐานโดยตรง
  • การดำเนินการ: หลังจากได้รับหรือเรียกโทเค็นที่ถูกต้องจาก get_token สำเร็จแล้ว acurl จะแทรกส่วนหัว -H "Authorization: Bearer <token>" ลงในการเรียกใช้ curl โดยอัตโนมัติ

ตัวอย่างการใช้

ตัวอย่างที่ 1: การเข้าสู่ระบบแบบโต้ตอบสำหรับผู้ใช้ที่เป็นบุคคลจริง

/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations

คำสั่งนี้จะหยุดชั่วคราวและแจ้งให้ผู้ใช้ไปที่เบราว์เซอร์เพื่อตรวจสอบสิทธิ์ผ่าน IDP ภายนอก จากนั้นจะเรียกใช้ API เมื่อได้รับอนุมัติ

ตัวอย่างที่ 2: การเข้าสู่ระบบแบบไม่มีส่วนหัวสำหรับผู้ใช้ที่เป็นเครื่อง

/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations

คำสั่งนี้จะตรวจสอบสิทธิ์ผ่าน Password Grant โดยตรงและเรียกใช้ API ทันที

ตัวอย่างที่ 3: การใช้โทเค็นที่แคชไว้ซ้ำ

/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users

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