在我們目前的情況下,我們基於網絡的應用程序(SP)已經使用Spring Security SAML擴展集成了SSO。我們的產品是一個SaaS,我們有不同的客戶,他們可能有不同的IDP(身份提供商)配置在他們的最後。 現在我們正在嘗試爲我們的移動應用程序提供SSO支持。可支持多個IDP的原生移動應用程序的最佳SSO解決方案是什麼?
一些搜索後,我已經遇到3個可能的解決方案,我可以實現:
1)使用Web瀏覽:當SAML是客戶端啓用,移動應用程序將嵌入網頁視圖,其在打開移動應用程序時呈現IDP登錄頁面。 SP側的URL將被觸發,這將觸發SAML重定向回IDP。因此,webview將執行SP發起的登錄流程。但是,由於webview不使用cookie空間,每次應用程序被終止或會話過期時,用戶都必須登錄到應用程序。另外,由於webview不是瀏覽器,我讀過它可能無法處理HTTP重定向期間的邊緣情況。
2)使用本機SSO應用程序:IDP通常提供本機SSO應用程序,其中的移動應用程序可以登錄到IDP。移動應用程序可以通過各自的IDP提供的SDK與IDP的原生應用程序交互。但是由於我們的移動應用程序應該能夠支持許多IDP的SSO,如果我們遵循這種方法,我們可能必須爲每個IDP集成多個本機SSO應用程序。我不確定這在我們的場景中是否合理
3)使用OAuth和SAML:第三種選擇是將OAuth支持添加到我們的移動應用程序。像Salesforce這樣的IDPs支持OAuth來授權移動應用,但我不確定是否所有的IDP都支持OAuth,以及爲移動應用實施OAuth和SAML有多困難。
任何人都可以告訴我哪種方法在上述場景中更可取,或者有沒有更好的方法我沒有考慮?有什麼建議麼?
非常感謝!
你最終搞清楚了嗎?我想知道你來了什麼結果? – Mark 2015-05-20 03:51:19
你能解決這個問題的地方? – swapab 2016-04-07 06:51:56
@Mark我試了一樣安德斯建議和降落http://stackoverflow.com/questions/42486871/behaviour-of-mobile-app-browsers-with-google-sessions-and-account-chooser – 2017-02-27 18:40:57