Sử dụng một nhà cung cấp danh tính (IDP) bên ngoài với API quản lý Edge

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. 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 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 để vượt qua quy trình Xác thực cơ bản thông tin xác thực. Ngoài ra, bạn có thể chuyển mã thông báo OAuth2 trong tiêu đề Bearer để thực hiện Các lệnh gọi API Quản lý máy cạnh, như trong ví dụ sau đây:

curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Sau khi bật một IDP bên ngoài để xác thực, bạn có thể tuỳ ý tắt chế độ Basic xác thực. Nếu bạn tắt Cơ bản xác thực, tất cả cá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 không còn hoạt động nữa. Bạn phải cập nhật bất kỳ lệnh gọi API và tập lệnh nào sử dụng Xác thực cơ bản để chuyển mã thông báo 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, mật mã) để truy cập OAuth2 và mã làm mới. Tiện ích get_token chấp nhận thông tin xác thực và trả về mã truy cập hợp lệ. Nếu có thể làm mới mã thông báo, tiện ích này sẽ làm mới và trả lại. 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.

Tiện ích get_token lưu trữ các mã thông báo trên đĩa, sẵn sàng để sử dụng khi cần. Nó 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 một tiện ích của trình duyệt như Người đưa thư hoặc nhúng tệp đó 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 các 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 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 trong dịch vụ SSO của Apigee, hãy dùng https và đúng cách Số cổng TLS.

  2. Giải nén gói ssocli-bundle.zip như trong ví dụ sau:
    unzip ssocli-bundle.zip
  3. Cài đặt get_token trong /usr/local/bin, như trong ví dụ sau:
    ./install -b PATH

    Tuỳ chọn -b chỉ định một vị trí khác.

  4. Đặt biến môi trường SSO_LOGIN_URL thành URL đăng nhập của bạn, theo cách sau 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 máy lưu trữ SSO của Apigee . Nếu bạn đã định cấu hình TLS trong dịch vụ SSO của Apigee, hãy sử dụng https và đúng cổng TLS số.

  5. (chỉ với SAML) Trong trình duyệt, hãy chuyển đến URL sau để nhận mã xác minh một lần mật mã:
    http://EDGE_SSO_IP_DNS:9099/passcode

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

    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ột 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 nhà cung cấp danh tính (IDP) dựa trên SAML. Bạn không thể sử dụng mật mã để xác thực với IDP LDAP.

  6. Gọi get_token để lấy mã truy cập OAuth2, như ví dụ sau đây:
    get_token -u EMAIL_ADDRESS

    Trong đó EMAIL_ADDRESS là địa chỉ email của một người dùng Edge.

    (Chỉ dành cho SAML) Ngoài email, hãy nhập mật mã trên dòng lệnh của Google, như trong ví dụ sau đây:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    Tiện ích get_token lấy mã truy cập OAuth2, in mã đó vào màn hình rồi ghi mã đó cùng mã làm mới vào ~/.sso-cli.

  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, như trong ví dụ sau đây:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. Sau lần đầu nhận mã truy cập mới, bạn có thể lấy mã truy cập và truyền lệnh gọi đó đến một lệnh gọi API trong một lệnh, như trong ví dụ sau:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    Với hình thức lệnh này, nếu mã truy cập đã hết hạn, mã sẽ tự động được 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 điều hướng đến URL hiển thị ở bước 3 ở trên và tạo mật mã mới trước khi bạn có thể tạo mã truy cập OAuth mới.

Sử dụng API quản lý để tải và làm mới mã thông báo

Sử dụng OAuth2 bằng API quản lý Apigee Edge cho biết 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 để nhận 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 OAuth2 bảo mật bằng API quản lý Apigee Edge là URL của cuộc gọi phải tham chiếu đến tên vùng. Ngoài ra, để tạo mã truy cập ban đầu bằng một nhà cung cấp danh tính (IDP) dựa trên SAML, bạn phải cung cấp mật mã, như được hiển thị trong bước 3 của quy trình trên.

Để 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ấy mã truy cập

(LDAP) Sử dụng lệnh gọi API sau để tạo quyền truy cập ban đầu và làm mới mã thông báo:

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 quyền truy cập ban đầu và làm mới mã thông báo:

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 việc xác thực bằng nhà cung cấp danh tính (IDP) dựa trên SAML yêu cầu mật mã tạm thời, trong khi nhà cung cấp danh tính LDAP thì không.

Làm mới mã truy cập

Để 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=REFRESH_TOKEN'