Apigee cung cấp các tiện ích get_token và acurl để đơn giản hoá hoạt động tương tác với SSO của Apigee và API quản lý Edge. Các công cụ này tự động xử lý việc tạo, lưu vào bộ nhớ đệm, làm mới và chèn mã thông báo.
Các tiện ích được cài đặt trên nút OpenLDAP tại /opt/apigee/apigee-openldap/bin/.
Tiện ích get_token
Tiện ích get_token chịu trách nhiệm thu thập mã truy cập và mã làm mới OIDC/OAuth2. Thư viện này hỗ trợ 2 luồng xác thực chính và có tính năng lưu mã thông báo vào bộ nhớ đệm.
Quy trình xác thực
- Quy trình mã thiết bị (RFC 8628): Được thiết kế cho người dùng xác thực thông qua một Nhà cung cấp danh tính bên ngoài (chẳng hạn như SAML, Okta hoặc OIDC). Nếu bạn chỉ truyền một địa chỉ email (
-u <email>), tiện ích sẽ bắt đầu quy trình này, nhắc bạn bằng một URL và mã để phê duyệt trong trình duyệt. - Cấp mật khẩu (ROPC): Dành cho người dùng máy không có giao diện người dùng và tập lệnh tự động. Nếu bạn truyền cả tên người dùng và mật khẩu (
-u <user>:<password>), thì hệ thống sẽ xác thực trực tiếp với Apigee SSO mà không cần tương tác với trình duyệt.
Lưu mã thông báo vào bộ nhớ đệm và tự động làm mới
Tiện ích get_token tự động quản lý vòng đời của mã thông báo để bạn không phải theo dõi thời gian hết hạn theo cách thủ công:
- Kiểm tra bộ nhớ đệm: Khi được gọi,
get_tokensẽ kiểm tra bộ nhớ đệm cục bộ tại~/.sso-cli/<username>-token.json. Nếu có mã thông báo hợp lệ và chưa hết hạn, thì mã thông báo đó sẽ được sử dụng lại mà không cần xác thực lại. - Tự động làm mới: Nếu mã truy cập đã lưu vào bộ nhớ đệm đã hết hạn nhưng vẫn còn mã làm mới hợp lệ, thì tiện ích sẽ tự động đổi mã làm mới tại Apigee SSO lấy mã truy cập mới.
Biến môi trường
Bạn có thể tuỳ chỉnh hành vi của get_token (không bắt buộc) bằng cách sử dụng các biến môi trường sau:
SSO_LOGIN_URL: URL đăng nhập một lần (SSO) của Apigee (mặc định:http://localhost:9099).CLIENT_ID: Mã ứng dụng khách OAuth2 (mặc định:edgecli).CLIENT_SECRET: Khoá bí mật của ứng dụng OAuth2 (mặc định:edgeclisecret).
Tiện ích acurl
Tiện ích acurl là một trình bao bọc trong suốt xung quanh curl tiêu chuẩn. Lớp này đảm bảo rằng mọi yêu cầu API đều có mã thông báo truy cập hợp lệ.
- Tách đối số: Tiện ích này trích xuất đối số
-u <user:password>hoặc-u <user>rồi truyền đối số đó đếnget_token. Hàm này chuyển tiếp tất cả các đối số khác (chẳng hạn như-X,-H,-d,-v,-s) trực tiếp đếncurltiêu chuẩn. - Thực thi: Sau khi lấy hoặc truy xuất thành công mã thông báo hợp lệ từ
get_token,acurlsẽ tự động chèn tiêu đề-H "Authorization: Bearer <token>"vào lệnh gọicurl.
Ví dụ về cách dùng
Ví dụ 1: Đăng nhập tương tác cho người dùng là con người
/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations
Lệnh này sẽ tạm dừng, nhắc người dùng truy cập vào trình duyệt để xác thực thông qua IDP bên ngoài, sau đó thực thi lệnh gọi API sau khi được phê duyệt.
Ví dụ 2: Đăng nhập không cần giao diện người dùng cho người dùng máy
/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations
Lệnh này xác thực trực tiếp thông qua Password Grant và thực thi lệnh gọi API ngay lập tức.
Ví dụ 3: Sử dụng lại mã thông báo đã lưu vào bộ nhớ đệm
/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users
Vì mã thông báo đã được lưu vào bộ nhớ đệm trong các bước trước đó, nên bạn không cần cung cấp đối số -u nữa. Tiện ích này sẽ đọc mã thông báo được lưu vào bộ nhớ đệm và tự động chèn mã đó.