2016-07-29 144 views
0

我想爲父/子關係想出適當的OAuth2身份驗證流程。
App-A和App-B是兩個獨立的應用程序。 App-A在點擊從App-A的鏈接時在iframe中打開App-B設計OAuth2身份驗證流程

我負責維護App-B
如何設計流程,以便App-B識別來自App-A的用戶,並在兩個應用程序之間保持相同的會話?

這是我想出了迄今爲止流量:

  1. App-A將提供客戶端ID和祕密密鑰來App-B相互作用之前。

  2. 用戶向GET /person請求App-B的端點parentId

  3. App-B將隨後向App-A服務器與客戶端ID,祕密密鑰和redirect-url設定爲GET /person的請求。

現在什麼App-A將發送給App-B通過身份驗證的用戶的會話信息。

如果流量沒有任何意義,你可以擺脫它

回答

0

你的問題是類似於多個應用維護會話。

與你的做法是,你需要做的前端,請求或一些 途徑APPA(即保持當前用戶會話),這暴露了客戶端ID /祕密

這裏的問題是一些想法,你可以實現它,

這兩個應用程序是在同一個父域下?如果是這樣,

appA.domain.comappB.domain.com 然後認證成功後,您可以設置父域*一些會話標識符的cookie .. domain.com 然後從appB你可以得到獲得accessToken的當前用戶會話。

如果這兩個應用程序在不同的領域,然後

你需要有一些共同的身份驗證服務器,通常會維持會話,因此當的appA負載,發現沒有可用的會話,那麼它可以重定向到普通AUTH服務器,輪流檢查會話(如果不允許用戶登錄),然後將數據發送迴應用程序A

對於appB,相同的流程進行。

另請查看此鏈接 http://merbist.com/2012/04/04/building-and-implementing-a-single-sign-on-solution/