2014-12-02 53 views
10

在我們目前的情況下,我們基於網絡的應用程序(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有多困難。

任何人都可以告訴我哪種方法在上述場景中更可取,或者有沒有更好的方法我沒有考慮?有什麼建議麼?

非常感謝!

+0

你最終搞清楚了嗎?我想知道你來了什麼結果? – Mark 2015-05-20 03:51:19

+0

你能解決這個問題的地方? – swapab 2016-04-07 06:51:56

+0

@Mark我試了一樣安德斯建議和降落http://stackoverflow.com/questions/42486871/behaviour-of-mobile-app-browsers-with-google-sessions-and-account-chooser – 2017-02-27 18:40:57

回答

6

對於移動應用程序,我認爲OAuth2或OpenID Connect比SAML更受歡迎。他們使用移動解決方案很好地工

他們也有與認證服務器通信的反向信道的概念。這意味着您可以安全地啓動設備的默認瀏覽器進行登錄,並從該設備的任何cookie中受益。一旦用戶在瀏覽器中進行了身份驗證,應用程序將通過後端通道接收令牌,並在其中調用auth服務器。

如果您擁有僅限SAML的Idps,則選項是使用身份服務器執行翻譯,該翻譯充當SAML2 SP和OAuth服務器。

+0

感謝您的回覆。我將研究OpenID連接和OAuth 2.0。 – abhilash 2014-12-24 10:37:16

+0

我試着確切地提出你的建議,但最終登陸了兩個問題,如果你可以幫助http://stackoverflow.com/questions/42486871/behaviour-of-mobile-app-browsers-with-google-sessions-and-帳戶選擇器 – 2017-02-27 18:38:42

相關問題