使用外部 IDP 和 Edge API 時,從 CLI 取得 OIDC/OAuth2 存取權杖的標準程序是 OAuth 2.0 裝置代碼流程。在這個流程中,您會使用 get_token 公用程式,系統會提示您在瀏覽器中前往網址,透過 IDP 進行驗證,然後自動解除封鎖終端機。
不過,開發環境可能支援常見開發工作的自動化,例如測試自動化或 CI/CD 管道。啟用外部 IDP 時,如要自動執行這些工作,您需要以無頭方式取得及重新整理 OAuth2 權杖,不必與瀏覽器互動。
Edge 支援使用無頭機器使用者自動產生權杖。機器使用者可以透過標準密碼授權取得 OIDC/OAuth2 權杖,不需使用瀏覽器。也就是說,您可以完全自動化取得及重新整理指令碼權杖的程序。
建立機器使用者
您可以建立一個供所有組織使用的機器使用者,也可以為每個組織建立個別的機器使用者。
機器使用者會直接在本機 OpenLDAP 目錄中建立及儲存,並明確標記為機器使用者 (employeeType: machineuser)。這樣一來,即使對人類使用者嚴格強制執行聯合 SAML/OIDC,Apigee SSO 也能透過密碼授權安全地驗證機器使用者。
如需建立、列出及管理機器使用者的詳細操作說明,請參閱「使用 apigee-machineuser.sh 管理機器使用者」。
取得及更新機器使用者權杖
您可以使用 /opt/apigee/apigee-openldap/bin/ 提供的 get_token 和 acurl 公用程式,或標準 curl,取得機器使用者的權杖。
- 使用 Apigee 公用程式:
get_token和acurl包裝函式會自動處理權杖快取、酬載生成和自動重新整理。如需使用這些工具的詳細操作說明和範例,請參閱「使用 get_token 和 acurl 公用程式」。 - 使用標準 curl:如果自動化指令碼無法存取 Apigee 包裝函式,可以使用下列標準
curl指令直接與 Apigee SSO 互動:
如要使用標準 curl 取得及更新權杖:
- 使用下列 API 呼叫,直接從 Apigee SSO 產生初始存取和更新權杖:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -X POST http://Edge_SSO_IP_DNS:9099/token -s \ -d 'grant_type=password&username=machineUserEmail&password=machineUserPassword&client_id=edgecli&client_secret=edgeclisecret&scope=openid%20profile%20email%20offline_access' - 將存取權杖傳遞至
Authorization: Bearer標頭中的 Edge Management API 呼叫:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
- 如要在稍後以原生方式更新存取權杖,請使用下列包含更新權杖的呼叫:
curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \ -H "Accept: application/json;charset=utf-8" \ -X POST http://Edge_SSO_IP_DNS:9099/token \ -d 'grant_type=refresh_token&refresh_token=refreshToken&client_id=edgecli&client_secret=edgeclisecret'