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 อีกครั้ง ยูทิลิตีจะอ่านโทเค็นที่แคชไว้และแทรกลงในคำขอโดยอัตโนมัติ