查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
Apigee Edge 可讓您執行以 OAuth2 權杖驗證的 Edge API 呼叫。 Cloud 帳戶的 Edge 上預設會啟用 OAuth2。如果使用 Edge 私人雲端則無法使用 OAuth2 請先設定 SAML 或 LDAP。
OAuth2 的運作方式 (透過 Apigee Edge API)
呼叫 Apigee Edge API 需要驗證,我們才能驗證您的身分 你就是自己。為驗證您的身分,請在要求中一併傳送 OAuth2 存取權杖 使用 API
舉例來說,如果您想取得 Edge 上機構的詳細資訊,您必須傳送要求至 網址如下:
https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
不過,您必須先告訴我們您的身分,才能傳送這項要求。否則,「所有使用者」 可查看貴機構的詳細資料
OAuth2 此時就能派上用場:為了驗證你的身分,請將存取權杖傳送給我們 字串。存取權杖告訴我們您的身分,以便我們確認您可以 查看機構的詳細資料
不過,您可以將憑證傳送至 Edge OAuth2 服務來取得權杖。 服務提供存取權和更新權杖
OAuth2 流程:初始要求
下圖顯示首次存取 Edge API 時的 OAuth2 流程 時間:
如圖 1 所示,當您向 Edge API 提出初始要求時:
- 要求存取權杖。方法是使用
Edge API、acurl 或
get_token
。例如:get_token Enter username:
ahamilton@apigee.com
Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code if 'ahamilton@apigee.com' is MFA enabled or press ENTER:123456
- Edge OAuth2 服務使用存取權杖回應,並將其輸出至
stdout
; 例如:Dy42bGciOiJSUzI1NiJ9.eyJqdGkiOiJhM2YwNjA5ZC1lZTIxLTQ1YjAtOGQyMi04MTQ0MTYxNjNhNTMiLCJz AJpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsIm NjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjJkMWU3NDI GzQyMC1kYzgxLTQzMDQtOTM4ZS1hOGNmNmVlODZhNzkiLCJzY29wZSI6WyJzY2ltLm1lIiwib3BlbmlkIiwic ENC05MzhlLWE4Y2Y2ZWU4NmE3OSIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoiZGFuZ2VyNDI0 RI6ImUyNTM2NWQyIiwiaWF0IjoxNTI4OTE2NDA5LCJleHAiOjE1Mjg5MTgyMDksImlzcyI6Imh0dHBzOi8vbG 420iLCJlbWFpbCI6ImRhbmdlcjQyNDJAeWFob28uY29tIiwiYXV0aF90aW1lIjoxNTI4OTE2NDA5LCJhbCI6M 2lLmNvbSIsInppZCI6InVhYSIsImF1ZCI6WyJlZGdlY2xpIiwic2NpbSIsIm9wZW5pZCIsInBhc3N3b3JkIiw
acurl
和get_token
公用程式會在不發出通知的情況下儲存存取權,並 重新整理權杖並設為~/.sso-cli
(更新權杖不會寫入stdout
)。如果您使用 Edge OAuth2 服務取得符記,則需要儲存符記 之後再自行使用 - 您會使用存取權杖傳送要求至 Edge API。
acurl
個附加項目 自動取得權杖例如:acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval
如果使用其他 HTTP 用戶端,請務必新增存取權杖。例如:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
- Edge API 會執行您的要求,並通常會傳回含有資料的回應。
OAuth2 流程:後續要求
後續要求時,您不需要交換憑證來使用權杖。 您只要包含已有的存取權杖,只要該憑證尚未過期即可:
如圖 2 所示,如果您已經擁有存取權杖:
- 您會使用存取權杖傳送要求至 Edge API。
acurl
個附加項目 取得權杖如果使用其他工具,則須手動新增權杖。 - Edge API 會執行您的要求,並通常會傳回含有資料的回應。
OAuth2 流程:存取權杖過期的時間
如果存取權杖過期 (12 小時後),您可以使用重新整理權杖取得新的 存取權杖:
如圖 3 所示,您的存取權杖已過期:
- 您傳送要求至 Edge API,但您的存取權杖已過期。
- Edge API 拒絕了未經授權的要求。
- 將更新權杖傳送至 Edge OAuth2 服務。如果您使用
acurl
,執行這項操作後, 不必手動調整設定 - Edge OAuth2 服務會提供新的存取權杖回應。
- 使用新的存取權杖傳送要求至 Edge API。
- Edge API 會執行您的要求,並通常會傳回含有資料的回應。
取得權杖
如要取得可傳送至 Edge API 的存取權杖,您可以使用以下方式:
Apigee 公用程式外加 curl
等公用程式:
- get_token 公用程式:交換您的 Apigee 憑證以供存取 並更新可用來呼叫 Edge API 的權杖
- acurl 公用程式:提供簡便的標準包裝函式
curl
指令。建構對 Edge 的 HTTP 要求 API、從get_token
取得存取權和更新權杖,並將存取權杖傳遞至 Edge API - Edge OAuth2 服務中的權杖端點:交換 可透過呼叫 Edge API 來存取及更新權杖的 Apigee 憑證。
這些公用程式會交換您的 Apigee 帳戶憑證 (電子郵件地址 密碼),
- 存取權杖會在 12 小時後失效。
- 更新憑證會在 30 天後失效。
因此,一旦您成功使用 acurl
或 get_token
發出 API 呼叫,
您可以在 30 天內繼續使用這個權杖組合。到期後,您必須重新輸入
並取得新權杖
使用 OAuth2 存取 Edge API
如要存取 Edge API,請將要求傳送至 API 端點,並加入存取權杖。
您可以透過任何 HTTP 用戶端執行此操作,包括指令列公用程式,例如 curl
瀏覽器型使用者介面 (例如 Postman),或是 Apigee 公用程式 (例如 acurl
)。
如要瞭解如何使用 acurl
和 curl
存取 Edge API,請參閱
後續章節
使用 curl
如要使用 acurl
存取 Edge API,初始要求必須包含
憑證Edge OAuth2 服務會傳回存取權和更新權杖。acurl
會將權杖儲存在本機
在後續要求中,acurl
會使用 ~/.sso-cli
中儲存的權杖,因此
因此在憑證過期之前,不用再次加入憑證。
以下範例顯示了初始 acurl
要求,該要求會取得
「ahamilton-eval」機構:
acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -u ahamilton@apigee.com Enter the password for user 'ahamilton@apigee.com'[hidden input]
Enter the six-digit code (no spaces) if 'ahamilton@apigee.com' is MFA-enabled or press ENTER:1a2b3c
{ "createdAt" : 1491854501264, "createdBy" : "noreply_iops@apigee.com", "displayName" : "ahamilton", "environments" : [ "prod", "test" ], "lastModifiedAt" : 1491854501264, "lastModifiedBy" : "noreply_iops@apigee.com", "name" : "ahamilton", "properties" : { "property" : [ { "name" : "features.isSmbOrganization", "value" : "false" }, { "name" : "features.isCpsEnabled", "value" : "true" } ] }, "type" : "trial" }acurl https://api.enterprise.apigee.com/v1/o/ahamilton-eval/apis/helloworld/revisions/1/policies
[ "SOAP-Message-Validation-1", "Spike-Arrest-1", "XML-to-JSON-1" ]
除了取得機構的詳細資訊外,這個範例也顯示了第二個要求 這會取得「helloworld」內的政策清單並存取 API Proxy第二個要求會使用 縮短「o」適用於「organizations」。
請注意,acurl
會自動在第二次要求傳遞存取權杖。個人中心
acurl
儲存 OAuth2 權杖後,就不需傳送您的使用者憑證。這項服務
取得來自 ~/.sso-cli
的權杖,以供後續呼叫使用。
詳情請參閱使用 curl 存取 Edge API。
使用 curl
您可以使用 curl
存取 Edge API。如要這麼做,您必須先取得
存取及重新整理權杖您可以使用 get_token
或
Edge OAuth2 服務。
成功儲存存取權杖後,您需將存取權杖傳入
呼叫 Edge API 的 Authorization
標頭,如以下範例所示
顯示:
curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \ -H "Authorization: Bearer ACCESS_TOKEN"
存取權杖發出後的 12 小時內有效。存取權杖到期後,您可以在 30 天內使用更新權杖發出更新 而不會要求憑證 Apigee 建議在參照權杖過期後,才要求新的存取權杖,而非 在每次的 API 呼叫中,輸入憑證並提出新要求。
權杖到期
存取權杖到期後,您可以在沒有存取權的情況下,使用更新權杖取得新的存取權杖 不必再次提交憑證
視您使用的工具而定,更新存取權杖的方式會有所不同:
acurl
:無須採取任何行動。acurl
會自動重新整理存取權杖 當您傳送包含過時的要求時。get_token
:呼叫get_token
以重新整理存取權杖。- Edge OAuth2 服務:傳送包含以下內容的要求:
- 重新整理權杖
grant_type
表單參數已設為「refresh_token」
適用於電腦使用者的 OAuth2
您可以使用 acurl
和 get_token
公用程式編寫指令碼自動存取功能
針對電腦使用者採用 OAuth2 驗證,進而連線至 Edge API。以下範例說明如何
使用 get_token
要求存取權杖,然後將權杖值新增至 curl
呼叫:
USER=me@example.com
PASS=not-that-secret
TOKEN=$(get_token -u $USER:$PASS -m '')
curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'
或者,您也可以使用 acurl
公用程式合併權杖要求和 curl
呼叫。
例如:
USER=me@example.com
PASS=not-that-secret
acurl -u $USER:$PASS -m '' 'https://api.enterprise.apigee.com/v1/organizations/...'
在這兩個示例中,將 -m
的值設為空白字串,均會阻止電腦使用者
進而避免對方要求輸入 MFA 代碼