2015-03-13 75 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服务。