Truy cập vào Edge API bằng SAML

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

SAML hỗ trợ môi trường đăng nhập một lần (SSO). Khi sử dụng SAML với Edge, bạn có thể hỗ trợ dịch vụ SSO cho Giao diện người dùng và API Edge, ngoài bất kỳ dịch vụ nào khác mà bạn cung cấp đồng thời cũng hỗ trợ SAML.

Điều kiện tiên quyết: Bạn phải bật SAML ít nhất một tổ chức trước khi bạn có thể dùng tổ chức đó để truy cập vào Edge API.

Sự khác biệt giữa SAML và OAuth2

Sau khi thiết lập SAML, cách sử dụng này rất giống với việc dùng OAuth2 để truy cập API Edge. Khi gọi API Edge, bạn sẽ đưa mã truy cập OAuth2 vào yêu cầu của bạn.

Sự khác biệt chính giữa SAML và OAuth2 khi truy cập vào Edge API bạn sẽ nhận được mã thông báo. Với SAML, bạn phải cung cấp những thông tin sau đây khi nhận cặp mã thông báo:

  1. Vùng: Edge dành cho người dùng Cloud Cloud phải tham chiếu đến tên vùng của họ khi nhận mã thông báo.
  2. Mật mã: Thêm mật mã một lần khi yêu cầu quyền truy cập/làm mới cặp mã thông báo.

SAML sử dụng cùng các điểm cuối trên dịch vụ OAuth2 của Edge, có bổ sung tên vùng thích hợp.

Để nhận mã truy cập qua SAML, bạn có thể dùng một trong những cách sau theo mô tả trong phần này:

Ngoài ra, bạn có thể tự động hoá quy trình tạo mã thông báo cho người dùng máy, như mô tả trong bài viết Tự động hoá quy trình tạo mã thông báo.

Lấy mã truy cập bằng get_token

Bạn có thể dùng tiện ích get_token để trao đổi thông tin đăng nhập lấy quyền truy cập OAuth2 và làm mới mã thông báo mà bạn dùng với SAML.

Cách lấy mã truy cập bằng get_token:

  1. Đặt biến môi trường SSO_LOGIN_URL thành URL đăng nhập. URL đăng nhập có biểu mẫu sau:
    https://zoneName.login.apigee.com

    Ví dụ: đối với một vùng có tên "acme", hãy đặt SSO_LOGIN_URL thành "https://acme.login.apigee.com", như trong ví dụ sau đây:

    export SSO_LOGIN_URL=https://acme.login.apigee.com
  2. Gọi get_token để lấy mã truy cập OAuth2:
    get_token -u me@example.com

    Bạn được nhắc truy cập URL được hiển thị để nhận mật mã một lần:

    Get passcode from https://acme.login.apigee.com/passcode
    [Note:  Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:

    Nếu gần đây bạn chưa đăng nhập qua nhà cung cấp danh tính, bạn sẽ được nhắc ký trong năm

    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 mã truy cập. Ví dụ:

  3. Nhập mật mã. Tiện ích get_token lấy mã thông báo OAuth2, in mã truy cập vào stdout, đồng thời ghi mã truy cập và mã làm mới đến ~/.sso-cli.

  4. Gọi API Edge và truyền mã truy cập vào Authorization: Bearer như trong ví dụ sau đây:
    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"

    Bạn có thể sao chép giá trị của mã truy cập từ stdout.

    Ví dụ này lấy thông tin chi tiết về tổ chức cụ thể. Để xem danh sách đầy đủ các tính năng quản lý Các điểm cuối API, hãy xem Tài liệu tham khảo API Apigee Edge.

Khi mã truy cập của bạn hết hạn, bạn có thể gọi lại get_token để có quyền truy cập mới mã thông báo. Ví dụ:

get_token -u me@example.com

Bạn sẽ không được nhắc nhập mật mã mới cho đến khi mã làm mới hết hạn.

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 hãy tạo mật mã mới trước khi bạn có thể tạo mã truy cập OAuth2 mới.

Nhận mã truy cập bằng dịch vụ OAuth2 của Edge

Bạn có thể dùng dịch vụ OAuth2 của Edge để nhận mã truy cập mà bạn dùng với SAML. Để xác thực bằng API Edge, bạn sẽ sử dụng mật mã trong yêu cầu ban đầu để truy cập/làm mới cặp mã thông báo rồi tạo lại một cặp mã thông báo mới.

Cách nhận cặp mã thông báo với API Edge:

  1. Trong trình duyệt, hãy chuyển đến URL sau để nhận mật mã một lần:
    https://zoneName.login.apigee.com/passcode

    Ví dụ: đối với một vùng có tên là "acme", hãy truy cập vào URL sau:

    https://acme.login.apigee.com/passcode

    Nếu gần đây bạn chưa đăng nhập qua nhà cung cấp danh tính, bạn sẽ được nhắc ký trong năm

    URL này trả về mật mã một lần đóng vai trò là thông tin đăng nhập của bạn để nhận mã thông báo và 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 có thể sử dụng mật mã đó với get_token để tạo một mã truy cập. Ví dụ:

  2. Gửi yêu cầu đến API Edge, như trong ví dụ sau đây:
    curl https://zoneName.login.apigee.com/oauth/token \
          -s \
          -H "Accept: application/json" \
          -d 'grant_type=password&response_type=token&passcode=passcode'

    passcode đóng vai trò là thông tin đăng nhập của bạn để uỷ quyền.

    Trong trường hợp:

    • Tiêu đề Authorization là "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (hãy dùng bản thảo này giá trị chính xác).
    • Loại yêu cầu là POST.
    • Nội dung của yêu cầu có các thông tin sau:
      • grant_type là "mật khẩu".
      • response_type là "mã thông báo".
      • passcode trong đó passcode là mật mã được trả về ở bước trước.

    Lệnh gọi sẽ in mã truy cập và mã làm mới lên màn hình.

Cách làm mới mã truy cập:

Gửi yêu cầu đến https://zoneName.login.apigee.com/oauth/token, như trong ví dụ sau đây:

curl https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

Trong trường hợp:

  • Nội dung của yêu cầu có các thông tin sau:
    • grant_type là "refresh_token".
    • refresh_token là giá trị của mã làm mới.
  • Tiêu đề Authorization là "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (hãy dùng bản thảo này giá trị chính xác).
  • Loại yêu cầu là POST.

Truy cập API Edge bằng SAML

Bạn có thể dùng các công cụ như curl hoặc tiện ích tiện lợi Apigee acurl đến truy cập vào Edge API.

Với curl, bạn gọi API Edge và chuyển mã truy cập trong Tiêu đề Authorization: Bearer, như trong ví dụ sau đây:

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -H "Authorization: Bearer ACCESS_TOKEN"

Với acurl, bạn không cần chỉ định tiêu đề Authorization. Ví dụ:

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

Những ví dụ này gọi một điểm cuối API Edge để lấy thông tin chi tiết về tổ chức cụ thể. Để xem danh sách đầy đủ các điểm cuối của API Edge, hãy xem Tài liệu tham khảo API Apigee Edge.

Để biết các phương thức gọi API khác, bao gồm cả những cách để đảm bảo mã thông báo của bạn vẫn được giữ nguyên mới, hãy xem phần Truy cập API Edge bằng OAuth2.

Người dùng máy trong vùng SAML

Bạn có thể dùng các tiện ích acurlget_token để viết tập lệnh cho quyền truy cập tự động đối với API Edge đối với người dùng máy trong vùng SAML. Ví dụ sau đây trình bày cách sử dụng get_token để yêu cầu mã truy cập rồi thêm giá trị mã thông báo vào lệnh gọi curl:

  USER=me@example.com
  PASS=not-that-secret
  TOKEN=$(get_token -u $USER:$PASS -m '' --force-basic-auth)
  curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'

Trong ví dụ trên, việc đặt giá trị của -m thành chuỗi trống sẽ ngăn người dùng máy khi được nhắc nhập mã MFA. Việc sử dụng cờ --force-basic-auth sẽ ghi đè lời nhắc tiêu chuẩn về mật mã được kích hoạt bởi các yêu cầu có vùng SAML.

Ngoài ra, bạn có thể kết hợp yêu cầu mã thông báo và lệnh gọi curl bằng tiện ích acurl. Ví dụ:

  USER=me@example.com
  PASS=not-that-secret
  acurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'