Edge for Private Cloud v. 4.17.09
Khi sử dụng SAML với API Edge, quy trình mà bạn sử dụng để lấy quyền truy cập OAuth2 và làm mới mã thông báo từ câu nhận định SAML được gọi là luồng mã xác thực. 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 đó sử dụng mật mã đó để 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ự động hoá cho các nhiệm vụ phát triển phổ biến, chẳng hạn như tự động hoá 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á các tác vụ này khi SAML được bật, bạn cần có 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ã xác thực từ trình duyệt.
Edge hỗ trợ tạo mã thông báo tự động thông qua việc sử dụng người dùng máy. Người dùng máy có thể nhận được mã thông báo OAuth2 mà không cần chỉ định mã xác thực. Điều đó có nghĩa 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 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 mà tất cả tổ chức của bạn 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 trình cung cấp danh tính SAML. Do đó, bạn không chịu trách nhiệm duy trì người dùng máy bằng cách sử dụng giao diện người dùng Edge và API quản lý 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 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 má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 đó:- 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 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 và --ssl vì mô-đun apigee-sso sử dụng các giá trị mặc định là 9099 cho --port và http cho --ssl. Nếu quá trình 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 các giá trị đó cho phù hợp.
- Đăng nhập vào giao diện người dùng Edge và thêm email của người dùng máy vào tổ chức của bạn, đồng thờ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 trên 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 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 thông tin xác thực của người dùng máy, thay vì mã xác thực.
Cách lấy mã thông báo OAuth2 cho người dùng máy:
- Sử dụng lệnh gọi API sau để tạo mã thông báo 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 '
Để uỷ quyền, hãy truyền thông tin xác thực ứng dụng OAuth2 được đặt trước trong tiêu đề Authorization (Uỷ quyền). Lệnh gọi này sẽ in mã thông báo truy cập và làm mới lên màn hình. Lưu mã thông báo để sử dụng sau. - Truyền mã thông báo 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 chứa người dùng máy. - Để làm mới mã truy cập sau này, hãy sử dụng lệnh gọi sau đâ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'
Để uỷ quyền, hãy truyền thông tin xác thực ứng dụng OAuth2 được đặt trước trong tiêu đề Authorization (Uỷ quyền).
Tạo người dùng máy bằng cách sử dụng API quản lý Edge
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:
- Sử 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ị cho 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 như được chỉ định bởi 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. - Sử 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 mật khẩu người dùng máy trong các bước sau. - Đăng nhập vào giao diện người dùng Edge và thêm email của người dùng máy vào tổ chức của bạn, đồng thờ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 trên toàn cầu để biết thêm thông tin.