2014-02-14 97 views

回答

1

當您啓動的OAuth 2.0(舞蹈)與

/authorize 
  1. /login頁面的用戶代理的土地(創建/你主持), 後重定向。
  2. enduser(用戶代理)將用戶名/密碼 提交到您所託管的頁面。在這裏,您收集證書並將其提交給Apigee,如果身份驗證失敗,則發送HTTP 401 響應。現在您的應用程序應該能夠重新呈現 登錄頁面並且閃光燈「無效憑據」。
  3. 現在來,如果用戶進行身份驗證,但拒絕在 同意頁面的授權請求,你應該重定向到「redirect_uri」提供 通過客戶端,並顯示錯誤代碼。
1
How do I tell he client app that the authentication failed? 

登錄應用程序會將控件重定向迴應用程序重定向URI - 在URL中將錯誤代碼/描述添加爲散列參數。在成功的情況下,URL附加了代​​碼或令牌。

您可以直接從您的登錄應用程序重定向,但我建議首先將重定向呼叫轉到Apigee代理,並讓Apigee Proxy將重定向發送迴應用程序。在成功和失敗的情況下。通過這種方式,您將獲得使用Apigee分析的好處,該分析有助於您瞭解有多少OAuth由於什麼原因而失敗等。

編輯: 您可以使用您爲成功流構建的同一個GenerateAuthorizationCode代理。登錄失敗或成功時,無論哪種情況,您都需要將該信息傳遞給此代理。通常,登錄應用程序和此代理應使用常見會話存儲共享此信息。您不能僅使用重定向參數傳遞此信息,因爲客戶端用戶代理可以更改該信息。當您重定向到GenerateAuthorizationCode重定向代理時,通過在URL中附加一個隨機會話ID來完成此操作。 GenerateAuthorizationCode代理可以使用該標識從會話存儲中查找登錄狀態。然後,您可以根據登錄是否成功發送錯誤重定向或適當的oauth代碼。會話存儲的簡單實現可以使用apigee網關中的分佈式緩存資源完成。登錄應用程序可以使用內部API放置/獲取會話。代理可以使用策略來檢索會話信息。

+0

我有一個GenerateAuthorizationCode代理設置,併成功當我登錄的應用程序重定向到'/ OAuth的/ authorizationcode?CLIENT_ID =%S&RESPONSE_TYPE =代碼&app_enduser =%s' 當用戶登錄失敗,我應該使用相同的代理服務器?我如何傳回錯誤代碼?或者我應該創建一個完全不同的代理? –

+0

感謝您的幫助! –

+0

根據評論編輯了答案。 –