添加新应用以访问saml时,我遇到了这个问题。
SSOService.php:1 GET https://saml.testing.net/www/saml2/idp/SSOService.php?spentityid=newapp&cookieTime=1459920375
净:: ERR_TOO_MANY_REDIRECTS
在我的本地我没有遇到任何问题,但是当我将代码复制到登台服务器时,它会显示ERR_TOO_MANY_REDIRECTS错误,保持重定向,并且无法显示saml登录页面。具有负载平衡器的临时服务器会导致错误吗?
感谢。
更新
$config = array(
'baseurlpath' => 'https://saml.testing.net/',
'certdir' => '/etc/test/sslcerts/',
'tempdir' => '/tmp',
'datadir' => 'data/',
'auth.adminpassword' => '1234567',
'admin.protectindexpage' => TRUE,
'admin.protectmetadata' => TRUE,
'secretsalt' => 'xxxxxxxxx',
'timezone' => NULL,
// logging related options
'loggingdir' => '/var/log/simplesamlphp/',
'logging.level' => LOG_WARNING,
'logging.logfile' => 'simplesaml_' .date("Ymd") . '.log',
'debug' => true,
'showerrors' => true,
'logging.handler' => 'file',
'logging.facility' => LOG_USER,
'logging.processname' => 'simplesaml',
'debug.validatexml' => FALSE,
'enable.saml20-idp' => TRUE,
'enable.shib13-idp' => FALSE,
'enable.adfs-idp' => FALSE,
'enable.wsfed-sp' => FALSE,
'enable.authmemcookie' => TRUE,
'session.duration' => 2*(60*60),
'session.requestcache' => 4*(60*60),
'session.cookie.lifetime' => 0,
'session.cookie.path' => '/',
'session.phpsession.cookiename' => 'SimpleSAMLSessionID',
'session.cookie.name' => 'SimpleSAMLSessionID',
'session.cookie.domain' => NULL,
'session.cookie.secure' => FALSE,
'session.cookie.lifetime' => 0,
'session.datastore.timeout' => 4*(60*60),
'session.state.timeout' => (60*60),
'session.phpsession.savepath' => NULL,
'session.phpsession.httponly' => FALSE,
'session.disable_fallback' => FALSE,
'session.authtoken.cookiename' => 'SimpleSAMLAuthToken',
'session.rememberme.enable' => FALSE,
'session.rememberme.checked' => FALSE,
'session.rememberme.lifetime' => 1209600, // 14 days
'enable.http_post' => FALSE,
'language.available' => array('en'),
'language.default' => 'en',
'attributes.extradictionary' => NULL,
'theme.use' => 'oldtheme:abcdef',
'attributes.extradictionary' => NULL,
'default-wsfed-idp' => 'urn:federation:pingfederate:localhost',
'idpdisco.enableremember' => TRUE,
'idpdisco.rememberchecked' => TRUE,
'idpdisco.validate' => TRUE,
'idpdisco.extDiscoveryStorage' => NULL,
'idpdisco.layout' => 'dropdown',
'shib13.signresponse' => TRUE,
'authproc.idp' => array(
10 => "frogauth:LogHandler",
30 => 'core:LanguageAdaptor',
45 => array('class' => 'core:StatisticsWithAttribute', 'attributename' => 'realm', 'type' => 'saml20-idp-SSO'),
50 => 'core:AttributeLimit',
99 => 'core:LanguageAdaptor',
100 => "newauth:ToLogin",
101 => "newauth:VerifyLogin",
99 => 'core:LanguageAdaptor',
),
'authproc.sp' => array(
99 => 'core:LanguageAdaptor',
),
'metadata.sources' => array(
array('type' => 'flatfile'),
),
'store.type' => 'memcache',
'memcache_store.servers' => array(
array(
array('hostname' => '10.11.11.11'),
),
),
'memcache_store.expires' => 36 * (60*60),
'metadata.sign.enable' => FALSE,
'metadata.sign.privatekey' => NULL,
'metadata.sign.privatekey_pass' => NULL,
'metadata.sign.certificate' => NULL,
'proxy' => null,
'xframe_options'=> array( 'enable' => TRUE, 'trusted_sites' => array()),
'session.duration' => 2*(60*60),
'theme.use' => "newtheme:multitheme",
);
saml20-SP-remote.php
$metadata['newapp'] = array(
'AssertionConsumerService' => 'https://www.newapp.com/mobile/saml',
'SingleLogoutService' => 'https://www.newapp.com/mobile/logout',
'Theme' => 'mobile',
);
答案 0 :(得分:5)
就我而言,SameSite=None cookie 属性是罪魁祸首。 SameSite=None cookie 必须与 secure 属性一起使用!
解决方案:
'session.cookie.secure' => true // config.php
如果您的服务在反向代理之后运行并且不是通过 https 运行,您还需要定义 URL 架构:
'baseurlpath' => 'https://my.url.com/<path_to_simple_saml>' // indicating the https schema (config.php)
答案 1 :(得分:1)
这里还有另一种可能的解决方案(搜索几个小时后为我工作,并且在更正ItemsFragmentArgs
后 后为我工作):进入Firefox开发人员工具(或您的选择),然后在“网络存储”中删除所有cookie。
答案 2 :(得分:0)
页面内容结束时关闭连接。
答案 3 :(得分:0)
如果它有帮助,只要在我们的设置中发生这种情况,就是因为饼干出了问题。
由于未正确设置Cookie,因此未将用户视为已登录该服务。因此,它们被重定向到idp,此时它们显示为已登录并重定向回服务;并重复。
基本上你的服务认为他们没有登录,saml认为他们是;他们都不断推卸责任!
答案 4 :(得分:0)
我刚遇到类似的重定向问题。 SimpleSAMLPHP可以正常加载但是当尝试以管理员身份登录时,它将进入无限循环,加载loginuserpass.php和as_login.php页面(最初从/module.php/core/login-admin.php?ReturnTo=XXX重定向)
经过大量调试后,我发现问题实际上是Varnish缓存,它阻止了会话状态的加载。无论选择什么会话存储(phpsession,memcache或sql),都会发生这种情况。
在SimpleSAMLPHP路径上禁用varnish缓存为我解决了这个问题。
希望这可以帮助其他人解决这个问题。