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

Edge for Private Cloud phiên bản 4.18.05

Khi dùng SAML với API Edge, đây là quy trình mà bạn dùng để lấy quyền truy cập OAuth2 và mã làm mới từ thông tin xác nhận SAML được gọi là quy trình mật mã. Với luồng mật mã, bạn dùng trình duyệt để lấy mật mã một lần mà sau đó bạn sẽ 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 nhiệm vụ phát triển phổ biến, chẳng hạn như tự động hoá thử nghiệm 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 SAML được bật, bạn cần có cách nào đó để lấy và làm mới mã thông báo OAuth2 mà không phải sao chép/dán mật mã từ trình duyệt.

Edge hỗ trợ việc tạo mã thông báo tự động thông qua 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 chỉ định mật mã. Tức là bạn có thể tự động hoá hoàn toàn quy trình lấy và làm mới mã thông báo OAuth2 bằng cách sử dụng API quản lý Edge.

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

Sử dụng apigee-ssoadminapi.sh để tạo người dùng máy cho tổ chức SAML. Xem phần Sử dụng apigee-ssoadminapi.sh để biết thêm. Bạn có thể tạo một người dùng máy duy nhất được sử dụng bởi tất cả hoặc tạo người dùng máy riêng cho mỗi tổ chức.

Người dùng máy được tạo và lưu trữ trong kho dữ liệu của Edge, không phải trong danh tính SAML của bạn Google Cloud. 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 API quản lý giao diện người dùng và Edge.

Khi tạo người dùng máy, bạn phải chỉ định địa chỉ email và mật khẩu. Sau 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 máy:

  1. Hãy sử dụng lệnh apigee-ssoadminapi.sh sau đây để tạo người dùng 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ị viên do Cơ sở lưu trú SSO_ADMIN_NAME ở tệp cấu hình dùng để định cấu hình mô-đun SSO của cạnh. Mặc định là ssoadmin.
    • SSO_ADMIN_SECRET là mật khẩu quản trị viên như được chỉ định bởi Thuộc tính SSO_ADMIN_SECRET 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 chế độ mặc định giá trị là 9099 cho --port và http cho --ssl. Nếu quá trình cài đặt 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 Edge rồi thêm email của người dùng trên máy vào tổ chức của bạn rồi chỉ định người dùng máy vào vai trò cần thiết. Xem phần Thêm người dùng toàn cầu cho khác.

Lấy và làm mới mã thông báo người dùng trên máy

Sử dụng API Edge để lấy và làm mới mã thông báo OAuth2 bằng cách truyền mã thông tin xác thực 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 đâ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=m_user_email&password=m_user_password'

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

  2. 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" \
      http://ms_IP_DNS:8080/v1/organizations/orgName

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

  3. Để làm mới mã truy cập sau này, hãy sử dụng lệnh gọi sau bao gồm cả quá trình 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 \
      -d 'grant_type=refresh_token&refresh_token=refreshToken'

Tạo người dùng máy bằng cách sử dụng Edge API quản lý

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

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

  1. Dùng lệnh curl sau để lấy mã thông báo cho người dùng ssoadmin, tên người dùng của tài khoản quản trị viên 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ị mà bạn đã đặt khi cài đặt apigee-sso theo chỉ định của thuộc tính SSO_ADMIN_SECRET trong config của bạn.

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

  2. Sử dụng lệnh curl sau đây để tạo người dùng trên máy, chuyể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 sẽ cần mật khẩu của người dùng máy ở các bước sau.

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