Sử dụng SAML với các tác vụ tự động

Edge cho đám mây riêng tư phiên bản 4.18.05

Khi dùng SAML với API Edge, quy trình mà bạn dùng để lấy quyền truy cập và làm mới OAuth2 qua mã xác nhận SAML được gọi là quy trình mật mã. Với quy trình mật mã, bạn sử dụng trình duyệt để lấy mật mã một lần, sau đó dùng để lấy mã thông báo OAuth2.

Tuy nhiên, môi trường phát triển của bạn có thể hỗ trợ tính năng tự động hoá cho các tác vụ phát triển phổ biến, chẳng hạn như tự động kiểm thử hoặc Tích hợp liên tục/Triển khai liên tục (CI/CD). Để tự động hoá những tác vụ này khi tính năng SAML bật, bạn cần có một cách để lấy và làm mới mã thông báo OAuth2 mà không cần sao chép/dán mật mã trên trình duyệt.

Edge hỗ trợ việc tạo mã thông báo tự động thông qua sự sử dụng của người dùng máy. Người dùng máy có thể lấy mã thông báo OAuth2 mà không cần phải chỉ định mật mã. Điều đó có nghĩa là bạn có thể hoàn toàn tự động hoá quá trình lấy và làm mới mã thông báo OAuth2 bằng cách sử dụng Edge Management API (API Quản lý Edge).

Tạo người dùng bằng máy

Sử dụng tiện ích apigee-ssoadminapi.sh để tạo người dùng máy cho một tổ chức SAML. Hãy xem phần Sử dụng apigee-ssoadminapi.sh để biết thêm thông tin. Bạn có thể tạo một người dùng máy duy nhất cho tất cả tổ chức của mình sử dụng hoặc tạo một người dùng máy riêng cho từng tổ chức.

Người dùng máy được tạo và lưu trữ trong kho dữ liệu Edge, chứ không phải trong nhà cung cấp danh tính SAML của bạn. Do đó, bạn không có trách nhiệm duy trì người dùng máy bằng cách sử dụng Edge Ui và Edge Management API.

Khi tạo người dùng máy, bạn phải chỉ định một địa chỉ email và mật khẩu. Sau khi tạo người dùng máy, bạn chỉ định người dùng đó cho một hoặc nhiều tổ chức.

Cách tạo người dùng trên máy:

  1. Sử dụng lệnh apigee-ssoadminapi.sh sau để tạo người dùng cho máy:
    apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \
      --secret SSO_ADMIN_SECRET --host edge_sso_IP_or_DNS \
      -u machine_user_email -p machine_user_password

    Trong trường hợp:

    • SSO_ADMIN_NAME là tên người dùng quản trị do thuộc tính SSO_ADMIN_NAME xác định trong tệp cấu hình dùng để định cấu hình mô-đun SSO của Edge. Giá trị mặc định là ssoadmin.
    • SSO_ADMIN_SECRET là mật khẩu quản trị viên do thuộc tính SSO_ADMIN_SECRET chỉ định trong tệp cấu hình.
    • Trong ví dụ này, bạn có thể bỏ qua các giá trị cho --port--ssl vì mô-đun apigee-sso sử dụng các giá trị mặc định là 9099 đối với --port và http cho --ssl. Nếu chế độ cài đặt của bạn không sử dụng các giá trị mặc định này, hãy chỉ định chúng nếu thích hợp.

  2. Đăng nhập vào giao diện người dùng của Edge và thêm email của người dùng máy vào tổ chức của bạn, sau đó chỉ định vai trò cần thiết cho người dùng thiết bị đó. Hãy xem bài viết Thêm người dùng toàn cầu để biết thêm thông tin.

Lấy và làm mới mã thông báo người dùng của máy

Sử dụng Edge API để lấy và làm mới mã thông báo OAuth2 bằng cách truyền thông tin xác thực của người dùng trên máy, thay vì mật mã.

Cách lấy mã thông báo OAuth2 cho người dùng máy:

  1. Sử dụng lệnh gọi API sau để tạo mã truy cập và làm mới ban đầu:
    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=m_user_email&password=m_user_password'

    Lưu mã thông báo để sử dụng sau.

  2. Truyền mã truy cập đến một lệnh gọi API Quản lý Edge dưới dạng tiêu đề Mang:
    curl -H "Authorization: Bearer access_token" \
      http://ms_IP_DNS:8080/v1/organizations/orgName

    Trong đó orgName là tên của tổ chức chứa người dùng máy.

  3. Để làm mới mã truy cập vào lúc khác, hãy sử dụng lệnh gọi dưới đây (bao gồm 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 \
      -d 'grant_type=refresh_token&refresh_token=refreshToken'

Tạo người dùng máy bằng cách sử dụng Edge Management API

Bạn có thể tạo một người dùng máy bằng cách sử dụng API Quản lý Edge thay vì dùng tiện ích apigee-ssoadminapi.sh.

Cách tạo người dùng trên máy:

  1. Hãy dùng lệnh curl sau để lấy mã thông báo của người dùng ssoadmin, tên người dùng của tài khoản quản trị viên của apigee-sso:
    curl "http://edge_sso_IP_DNS:9099/oauth/token" -i -X POST \
      -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \
      -d "response_type=token" -d "grant_type=client_credentials" \
      --data-urlencode "client_secret=SSO_ADMIN_SECRET" \
      --data-urlencode "client_id=ssoadmin"

    Trong đó SSO_ADMIN_SECRET là mật khẩu quản trị viên mà bạn đặt khi cài đặt apigee-sso theo chỉ định của thuộc tính SSO_ADMIN_SECRET trong tệp cấu hình.

    Lệnh này hiển thị một mã thông báo mà bạn cần thực hiện lệnh gọi tiếp theo.

  2. Dùng lệnh curl sau để tạo người dùng máy, truyền mã thông báo mà bạn đã nhận được ở bước trước:
    curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \
      -H "Accept: application/json" -H "Content-Type: application/json" \
      -d '{"userName" : "machine_user_email", "name" :
        {"formatted":"DevOps", "familyName" : "last_name", "givenName" :
        "first_name"}, "emails" : [ {"value" :
        "machine_user_email", "primary" : true } ], "active" : true,
        "verified" : true, "password" : "machine_user_password" }' \
      -H "Authorization: Bearer token"

    Bạn cần có mật khẩu người dùng máy trong các bước sau.

  3. Đăng nhập vào giao diện người dùng của Edge và thêm email của người dùng máy vào tổ chức của bạn, sau đó chỉ định vai trò cần thiết cho người dùng thiết bị đó. Hãy xem phần Thêm người dùng toàn cầu để biết thêm thông tin.