2016-04-17 22 views
0

我必須通過saml或數據庫憑證對用戶進行身份驗證,具體取決於用戶希望如何進行身份驗證。 我困住了兩個問題
1)我收到saml回覆回電話的URL。我不知道如何將它與設計集成。
2)我不確定如何根據用戶選擇動態地通過數據庫或saml響應來驗證用戶。saml通過設計回撥url

任何建議將是很有益

+0

我不認爲SAML是你想要的。我認爲你需要OAuth。設備將無法很輕鬆地參與SAML遊戲。 –

+0

@Andrew我在SAML中收到回覆。我有一個回電話給我,我得到的答覆。我應該解析響應並使用devise在用戶表中填充uid參數 – user2914486

回答

0

你將不得不使用的WebView嵌入登錄頁面在你的應用程序。

  1. 如果用戶選擇數據庫登錄,您將不得不質疑用戶提交他們的用戶名和密碼。一旦用戶被您的API識別,您的業務邏輯將被踢入。

  2. 如果用戶選擇SAML登錄,它將成爲聯合登錄,您將發送Authen請求給Idp。 Idp頁面將在您的應用中的WebView中呈現。一旦Idp將在登錄過程後識別用戶,他們會將該頁面重定向到您的屬性AssertionConsumerService的Authen請求中指定的URL。您將不得不攔截請求以提取您最終必須在環境中的API服務中提交的SAML令牌。 API服務必須執行令牌處理,並將生成與數據庫身份驗證生成的用戶配置文件相同的用戶配置文件。

0

我最近實施的SAML與設計在我的應用程序,並發現omniauth-saml寶石是得到它的工作的最快途徑。它會處理你的回調流程,使用ruby-saml庫,以及所有其他的細節,這將是一個很難實施的自己的細節。如果您需要處理任意數量的SAML提供商,omniauth-multi-provider-saml對我來說效果不錯。

+0

感謝您輸入Robert。在我的情況下,只有兩件事1)IDP url 2)call_back url。沒有密鑰或任何其他參數要配置。如果你可以提供一個工作的例子。它會非常有幫助 – user2914486

+0

請看這裏:https://github.com/omniauth/omniauth-saml#devise-integration。 omn​​iauth-saml的實現與正常的omniauth集成相同,SAML部分的配置略有不同。嘗試按照他們鏈接到的指南(https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview),並讓我知道你是否遇到問題。 –

+0

嗨,羅伯特,我跟着鏈接發送請求到saml通過添加user_omniauth_authorize_path(:saml),但是當我發送請求時,** SAMLRequest **參數正在追加到idp_sso_target_url。由於我從我的聯合服務器收到錯誤的請求異常。有沒有辦法避免添加** SAMLRequest **參數 – user2914486