Khi bạn dùng IDP bên ngoài với Edge API, đây là quy trình mà bạn dùng để lấy OAuth2 mã truy cập và làm mới từ hoạt động tương tác IDP được gọi là quy trình mật mã. Với Quy trình mật mã, bạn dùng trình duyệt để lấy mật mã một lần mà sau đó dùng để lấy OAuth2 mã thông báo.
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 CI/CD. Để tự động hoá những công việc này khi một nhà cung cấp danh tính (IDP) bên ngoài đang bật, bạn cần một cách nào đó để 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ã 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 trong tổ chức có bật IDP. 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.
Có hai cách để tạo người dùng máy cho một tổ chức đã bật IDP:
Mỗi phương pháp trong số này được mô tả trong các phần tiếp theo.
Bạn không thể tạo người dùng máy cho các tổ chức chưa bật IDP bên ngoài.
Tạo người dùng máy bằng apigee-ssoadminapi.sh
Sử dụng apigee-ssoadminapi.sh
để tạo người dùng máy trong tổ chức đã bật IDP. 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ả
tổ chức của bạn hoặc tạo một 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 Edge, chứ không phải trong IDP (nhà cung cấp danh tính) 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 giao diện người dùng Edge và tính năng quản lý Edge API.
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 bằng apigee-ssoadminapi.sh
:
- 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
QUESTION/TBD: Does apigee-ssoadminapi.sh also take "ldap" as an argument?
Trong trường hợp:
- SSO_ADMIN_NAME là tên người dùng quản trị viên do
Thuộc tính
SSO_ADMIN_NAME
trong tệp cấu hình dùng để định cấu hình Mô-đun SSO của Apigee. Giá trị 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
và--ssl
vì mô-đunapigee-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.
- SSO_ADMIN_NAME là tên người dùng quản trị viên do
Thuộc tính
- Đă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 Thêm người dùng toàn cầu cho khác.
Tạo người dùng máy bằ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 bằng API quản lý:
- Dùng lệnh
curl
sau để lấy mã thông báo cho người dùngssoadmin
, tên người dùng của tài khoản quản trị viênapigee-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ínhSSO_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.
- 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.
- Đăng nhập vào giao diện người dùng Edge.
- Thêm email của người dùng máy vào tổ chức của bạn và 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 để tìm hiểu thêm.
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:
- 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.
- 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ư ví dụ sau cho thấy:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
Trong đó org_name là tên của tổ chức 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 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 \ http://edge_sso_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=refreshToken'