Sử dụng SAML với API quản lý Edge

Edge for Private Cloud phiên bản 4.17.09

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ý Edge. Cho ví dụ: bạn có thể gửi yêu cầu cURL sau đây tới API quản lý Edge để truy cập thông tin về tổ chức của bạn:

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

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ể chuyển mã thông báo OAuth2 trong tiêu đề Bearer để tạo API quản lý Edge cuộc gọi. Ví dụ:

curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName

Sau khi bật SAML, bạn có thể tuỳ ý tắt tính năng Xác thực cơ bản. nếu bạn tắt Xác thực cơ bản, tất cả các tập lệnh (tập lệnh Maven, tập lệnh shell, apigeetool, v.v.) dựa vào Edge các lệnh gọi API quản lý hỗ trợ tính năng Xác thực cơ bản 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à các tập lệnh sử dụng Xác thực cơ bản để chuyển mã truy cập OAuth2 trong tiêu đề Bearer.

Dùng get_token để lấy và làm mới mã thông báo

Tiện ích get_token trao đổi thông tin xác thực Xác thực cơ bản và mật mã để truy cập OAuth2 và mã thông báo làm mới. Chiến lược phát hành đĩa đơn Tiện ích get_token chấp nhận thông tin xác thực và in mã truy cập hợp lệ. Nếu có thể làm mới một mã thông báo, mã đó sẽ được làm mới và in ra. Nếu mã làm mới hết hạn, mã sẽ nhắc nhập thông tin đăng nhập của người dùng.

Cửa hàng tiện ích get_token các mã thông báo trên đĩa, sẵn sàng để sử dụng khi được yêu cầu. Thao tác này cũng in mã thông báo truy cập hợp lệ vào stdout. Từ đó, bạn có thể sử dụng Postman hoặc nhúng đoạn mã này vào một biến môi trường để sử dụng trong curl.

Quy trình sau đây mô tả cách dùng get_token để lấy mã truy cập OAuth2 cho thực hiện lệnh gọi API quản lý Edge:

  1. 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 của tên DNS của máy lưu trữ mô-đun SSO của Edge. Nếu bạn đã định cấu hình TLS trong dịch vụ SSO của cạnh, hãy sử dụng https và số cổng TLS chính xác.

  2. Giải nén gói ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Cài đặt get_token trong /usr/local/bin:
    ./install

    Sử dụng tuỳ chọn -b để chỉ định một vị trí khác:

    ./install -b path
  4. Đặt biến môi trường SSO_LOGIN_URL thành URL đăng nhập, trong biểu mẫu:
    export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"

    trong đó edge_sso_IP_DNS là địa chỉ IP của tên DNS của máy lưu trữ mô-đun SSO của Edge. Nếu bạn đã định cấu hình TLS trong dịch vụ SSO của cạnh, hãy sử dụng https và số cổng TLS chính xác.

  5. Trong trình duyệt, hãy truy cập vào URL sau để lấy mật mã một lần:
    http://edge_sso_IP_DNS:9099/passcode

    Nếu bạn đã định cấu hình TLS trong dịch vụ SSO của cạnh, hãy sử dụng https và số cổng TLS chính xác.

    URL 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ột quyền truy cập mã thông báo.

  6. Gọi get_token để lấy mã truy cập OAuth2:
    get_token -u emailAddress

    trong đó emailAddress là địa chỉ email của một người dùng Edge. Bạn lời nhắc nhập mật mã một lần mà bạn đã nhận được ở bước 3:

    One Time Code ( Get one at https://edge_sso_IP.com/passcode )
          Enter the passcode if SAML is enabled or press ENTER:

    Nhập mật mã. Tiện ích get_token lấy quyền truy cập OAuth2 mã thông báo, in mã đó ra màn hình rồi ghi mã và mã làm mới vào ~/.sso-cli

    Bạn có thể nhập mật mã trên dòng lệnh bằng cách sử dụng Lệnh get_token trong biểu mẫu:

    get_token -u emailAddress -p passcode
  7. Truyền mã truy cập vào lệnh gọi API quản lý Edge dưới dạng tiêu đề Bearer:
    curl -H "Authorization: Bearer access_token"
    https://ms_IP:8080/v1/organizations/orgName

    Sau lần đầu có được mã truy cập mới, bạn có thể lấy mã truy cập và chuyển lệnh đó đến lệnh gọi API trong một lệnh, như minh hoạ dưới đây:

    header=`get_token` &&
    curl -H "Authorization: Bearer $header"
    https://ms_IP:8080/v1/o/orgName

    Với hình thức lệnh này, nếu mã truy cập đã hết hạn, mã truy cập sẽ tự động được làm mới cho đến khi mã làm mới hết hạn.

Sau khi mã làm mới hết hạn, get_token sẽ nhắc bạn nhập một mật mã mới. Bạn Bạn phải truy cập URL hiển thị trong Bước 3 ở trên và tạo mật mã mới trước khi 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

Sử dụng OAuth2 bằng API quản lý Apigee Edge có chứa hướng dẫn về cách sử dụng Edge Management API để lấy và làm mới mã thông báo. Bạn cũng có thể dùng lệnh gọi API Edge để lấy mã thông báo được tạo từ thông tin xác nhận SAML.

Điểm khác biệt duy nhất giữa các lệnh gọi API được ghi lại trong Sử dụng cơ chế bảo mật OAuth2 với API quản lý Apigee Edge là URL của cuộc gọi phải tham chiếu đến vùng của bạn . Ngoài ra, để tạo mã truy cập ban đầu, bạn phải thêm mật mã, như như được trình bày ở bước 3 của quy trình trên.

Ví dụ: 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 /
  https://edge_sso_IP_DNS:9099/oauth/token -s /
  -d 'grant_type=password&response_type=token&passcode=passcode'

Để uỷ quyền, hãy chuyển thông tin đăng nhập dành riêng cho ứng dụng OAuth2 vào Authorization . Lệnh gọi sẽ in mã truy cập và mã làm mới lên màn hình.

Để làm mới mã truy cập sau này, hãy sử dụng lệnh gọi có chứa mã làm mới sau đây:

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=refreshToken'