Xác thực cơ bản là một cách để xác thực khi thực hiện lệnh gọi đến API Quản lý cạnh.
Ví dụ: bạn có thể gửi yêu cầu curl
sau đây cho API Quản lý Edge để truy cập vào thông tin về tổ chức của mình:
curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
Trong ví dụ này, bạn sử dụng tuỳ chọn curl
-u
để chuyển thông tin xác thực
cơ bản. Ngoài ra, bạn có thể truyền một mã thông báo OAuth2 trong tiêu đề Bearer
để thực hiện lệnh gọi API Quản lý Edge, như trong ví dụ sau:
curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
Sau khi bật IDP bên ngoài để xác thực, bạn có thể tuỳ ý tắt phương thức xác thực Cơ bản. Nếu bạn tắt tính năng Xác thực cơ bản, thì tất cả tập lệnh (chẳng hạn như Maven, shell và apigeetool
) dựa vào các lệnh gọi API quản lý Edge hỗ trợ phương thức Xác thực cơ bản sẽ không còn hoạt động nữa. Bạn phải cập nhật mọi lệnh gọi API và tập lệnh sử dụng phương thức Xác thực cơ bản để chuyển mã truy cập OAuth2 trong tiêu đề Bearer
.
Lấy và làm mới mã thông báo bằng get_token
Tiện ích get_token
sẽ trao đổi thông tin xác thực cơ bản của bạn (và trong một số trường hợp là mật mã) để lấy mã truy cập và mã làm mới OAuth2. Tiện ích get_token
chấp nhận thông tin đăng nhập của bạn và trả về một mã truy cập hợp lệ. Nếu có thể làm mới mã thông báo, tiện ích sẽ làm mới và trả về mã đó. Nếu mã làm mới hết hạn, mã sẽ nhắc cung cấp thông tin đăng nhập của người dùng.
Tiện ích get_token
lưu trữ các mã thông báo trên ổ đĩa để bạn có thể sử dụng khi cần. Phương thức này cũng in mã truy cập hợp lệ tới stdout
. Từ đó, bạn có thể sử dụng một tiện ích của trình duyệt như Postman hoặc nhúng tiện ích đó vào một biến môi trường để sử dụng trong curl
.
Cách lấy mã truy cập OAuth2 để thực hiện lệnh gọi API Quản lý Edge:
- Tải gói
sso-cli
xuống:curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
Trong đó EDGE_SSO_IP_DNS là địa chỉ IP hoặc tên DNS của máy lưu trữ mô-đun SSO của Apigee. Nếu bạn đã định cấu hình TLS cho tính năng Đăng nhập một lần (SSO) của Apigee, hãy sử dụng
https
và số cổng TLS chính xác. - Giải nén gói
ssocli-bundle.zip
như trong ví dụ sau:unzip ssocli-bundle.zip
- Cài đặt
get_token
trong/usr/local/bin
, như ví dụ dưới đây cho thấy:./install -b PATH
Tuỳ chọn
-b
chỉ định một vị trí khác. - Đặt biến môi trường
SSO_LOGIN_URL
thành URL đăng nhập của bạn, có dạng sau đây:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
Trong đó EDGE_SSO_IP_DNS là địa chỉ IP của máy đang lưu trữ mô-đun SSO của Apigee. Nếu bạn đã định cấu hình TLS cho tính năng Đăng nhập một lần (SSO) của Apigee, hãy sử dụng
https
và đúng số cổng TLS. - (Chỉ SAML) Trong trình duyệt, hãy chuyển đến URL sau để lấy mật mã dùng một lần:
http://EDGE_SSO_IP_DNS:9099/passcode
Nếu bạn đã định cấu hình TLS cho tính năng Đăng nhập một lần (SSO) của Apigee, hãy sử dụng
https
và đúng số cổng TLS.Yêu cầu này trả về mật mã một lần vẫn có hiệu lực cho đến khi bạn làm mới URL đó để nhận mật mã mới hoặc bạn sử dụng mật mã với
get_token
để tạo mã truy cập.Xin lưu ý rằng bạn chỉ có thể sử dụng mật mã khi xác thực bằng IDP SAML. Bạn không thể sử dụng mật mã để xác thực với IDP LDAP.
- Gọi
get_token
để nhận mã truy cập OAuth2, như trong ví dụ sau:get_token -u EMAIL_ADDRESS
Trong đó EMAIL_ADDRESS là địa chỉ email của người dùng Edge.
(Chỉ SAML) Nhập mật mã vào dòng lệnh ngoài địa chỉ email, như ví dụ sau minh họa:
get_token -u EMAIL_ADDRESS -p PASSCODE
Tiện ích
get_token
lấy mã truy cập OAuth2, in mã này lên màn hình, sau đó ghi mã này và mã làm mới vào~/.sso-cli
. - Truyền mã truy cập đến một lệnh gọi API Quản lý Edge dưới dạng tiêu đề
Bearer
, như trong ví dụ sau:curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP:8080/v1/organizations/ORG_NAME
- Sau khi nhận được mã truy cập mới lần đầu tiên, bạn có thể lấy mã truy cập và chuyển mã đó vào một lệnh gọi API bằng một lệnh duy nhất, như trong ví dụ sau:
header=`get_token` && curl -H "Authorization: Bearer $header" https://MS_IP:8080/v1/o/ORG_NAME
Với dạng lệnh này, nếu mã truy cập đã hết hạn, thì mã đó sẽ được tự động làm mới cho đến khi mã làm mới hết hạn.
(Chỉ SAML) Sau khi mã làm mới hết hạn, get_token
sẽ nhắc bạn nhập mật mã mới. Bạn phải chuyển đến URL nêu trên trong bước 3 rồi tạo mật mã mới thì mới có thể tạo mã truy cập OAuth mới.
Sử dụng API quản lý để nhận và làm mới mã thông báo
Bài viết Sử dụng biện pháp bảo mật OAuth2 bằng API quản lý Apigee Edge sẽ hướng dẫn cách sử dụng API quản lý Edge để lấy và làm mới mã thông báo. Bạn cũng có thể sử dụng lệnh gọi API Edge để nhận mã thông báo được tạo từ câu nhận định SAML.
Điểm khác biệt duy nhất giữa các lệnh gọi API được ghi nhận trong tài liệu Sử dụng giải pháp bảo mật OAuth2 bằng API quản lý Apigee Edge là URL của lệnh gọi phải tham chiếu đến tên vùng của bạn. Ngoài ra, để tạo mã truy cập ban đầu bằng IDP SAML, bạn phải thêm mật mã như trong bước 3 của quy trình trên.
Để được uỷ quyền, hãy truyền thông tin đăng nhập ứng dụng OAuth2 được đặt trước trong tiêu đề Authorization
. Lệnh gọi sẽ in mã truy cập và làm mới ra màn hình.
Lấy mã truy cập
(LDAP) Sử dụng lệnh gọi API sau đây để tạo mã truy cập ban đầu và mã làm mới:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ http://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'
(SAML) Sử dụng lệnh gọi API sau đây để tạo mã truy cập ban đầu và làm mới:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ https://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&response_type=token&passcode=PASSCODE'
Xin lưu ý rằng quá trình xác thực với IDP SAML yêu cầu mật mã tạm thời, trong khi IDP LDAP thì không.
Làm mới mã truy cập
Để làm mới mã truy cập vào lúc khác, hãy sử dụng lệnh gọi sau đây có chứa mã làm mới:
curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \ -H "Accept: application/json;charset=utf-8" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ https://EDGE_SSO_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'