2015-03-13 59 views
0

我們支持多租戶應用程序。大多數情況下,我們的應用程序會有很大的負載。我們的技術堆棧包括:Shibboleth SP集羣

  • 的Rails 3.2.13
  • 的Ruby 1.9.3

與客運(3.0.11)運行在Apache/2.2.15(Unix的)。

相關寶石: 色器件(2.2.7) OAuth的(0.4.7) 的oauth2(0.8.1) omniauth(1.1.4) omniauth-的OAuth(1.0.1) omniauth-的oauth2(1.0 .3) omniauth-shibboleth(1.0.8)

我們已將shibboleth2配置爲使用StorageService type =「Memory」。 我們有2-3個應用服務器在任何時間點運行。 關閉很晚,我們的許多客戶抱怨說他們無法通過Shibboleth SSO登錄。在調試時,我們觀察到的是,在Mac OS上的Chrome瀏覽器中更常出現此問題。 在瀏覽器網絡窗口中,我們看到用戶不被視爲已登錄,即使在IDP進行成功驗證後也是如此。如果用戶點擊「登錄」鏈接(重定向到/ users/auth/shibboleth),系統會將用戶視爲已登錄。這對於我們的客戶非常混亂。 您能否幫助我們瞭解問題的癥結所在?它是在omniauth-shibboleth,設計還是瀏覽器cookie的不穩定行爲?我們無法總結這個問題。

此外,您是否會建議移動StorageService類型=「ODBC」而不是內存?因爲應用程序服務器(因此SP)處於自動縮放模式?如果是,我需要一些文檔/教程來配置ODBC StorageService。 當我嘗試了一下,回調URL根本沒有啓動 - 我仍然想知道爲什麼omniauth_controller的回調提供者方法根本不被調用。

回答

0

問題已解決。 我也跟着下面的步驟:

  1. 由於我們使用的是Postgres 9.3,安裝的Postgres ODBC庫: 步驟來安裝的Postgres庫& ODBC

轉-ivh http://yum.postgresql.org/9.3/redhat/rhel-5.4-x86_64/pgdg-centos93-9.3-1.noarch.rpm

百勝安裝postgresql93- odbc *

yum install -y postgresql-libs

ln -s /usr/lib64/libpq.so.5 /usr/lib64/libpq.so ln -s /usr/pgsql-9.3/lib/psqlodbc.so/usr/lib64/psqlodbc。所以

  • 創建的數據庫和表: CREATE TABLE版本( 主要INT NOT NULL, 次要INT NOT NULL ); INSERT INTO版本VALUES(1,0);
  • CREATE TABLE字符串( 上下文VARCHAR(255)NOT NULL, ID VARCHAR(255)NOT NULL, 到期時間戳記NOT NULL, 版本SMALLINT NOT NULL, 值VARCHAR(255)NOT NULL, PRIMARY KEY(context,id) );

    CREATE TABLE文本( 方面VARCHAR(255)NOT NULL, ID爲varchar(255)NOT NULL, 到期時間戳記NOT NULL, 版本SMALLINT NOT NULL, 值文字NOT NULL, PRIMARY KEY(背景下, id) );

  • 改性shibboleth2.xml:
  • 然後按照步驟上https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPODBCStorageService

  • 重啓Apache和Shibd服務。