Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Single sign on OpenAM Web策略代理不会重定向会话已过期的用户进行身份验证,而是403页_Single Sign On_Openam - Fatal编程技术网

Single sign on OpenAM Web策略代理不会重定向会话已过期的用户进行身份验证,而是403页

Single sign on OpenAM Web策略代理不会重定向会话已过期的用户进行身份验证,而是403页,single-sign-on,openam,Single Sign On,Openam,我正在为apache使用OpenAM 13和Web策略代理4.0 Web策略代理似乎无法识别iPlanetDirectoryProcookie,该cookie是OpenAM在身份验证后设置的令牌,已过期或实际上是无效的 看起来Web策略代理将获取令牌并使用OpenAM进行确认,然后被告知验证失败,如下面的这些日志行,并向用户提供403禁止页面 2017-01-24 11:29:55.475 +0800 WARNING [0x7f180e887700:17669] am_get_session_p

我正在为apache使用OpenAM 13和Web策略代理4.0

Web策略代理似乎无法识别iPlanetDirectoryProcookie,该cookie是OpenAM在身份验证后设置的令牌,已过期或实际上是无效的

看起来Web策略代理将获取令牌并使用OpenAM进行确认,然后被告知验证失败,如下面的这些日志行,并向用户提供403禁止页面

2017-01-24 11:29:55.475 +0800 WARNING [0x7f180e887700:17669] am_get_session_policy_cache_entry(): failed to locate data for a key (AQIC5wM2LY4SfcxFG6Bl98dRT7AluZ7682rulJGU8-CCSN4.*AAJTSQACMDEAAlNLABQtMTQ2NTcwMTgyOTEwMjQ5MTg4OQACUzEAAA..*)
2017-01-24 11:29:55.484 +0800 WARNING [0x7f180e887700:17669] validate_policy(): retry 0 (remote session/policy call failure: error)
2017-01-24 11:29:57.490 +0800 WARNING [0x7f180e887700:17669] validate_policy(): retry 1 (remote session/policy call failure: error)
2017-01-24 11:29:59.497 +0800 WARNING [0x7f180e887700:17669] validate_policy(): retry 2 (remote session/policy call failure: error)
2017-01-24 11:30:01.504 +0800 WARNING [0x7f180e887700:17669] validate_policy(): retry 3 (remote session/policy call failure: error)
2017-01-24 11:30:03.504 +0800 ERROR [0x7f180e887700:17669] validate_policy(): remote session/policy call to validate 'http://agent.job.com.tw:80/notification/push' failed (max 3 retries exhausted)
在这种情况下,预期的行为是将用户重定向到auth,我想是的,如果用户是有效的并且没有访问该页面的权限,代理将被指示阻止用户访问该页面,如下所示

2017-01-24 11:43:59.009 +0800 WARNING [0x7f17f9ff3700:17669] am_get_session_policy_cache_entry(): failed to locate data for a key (AQIC5wM2LY4Sfcz6gBnS77c_KhZogqv6gYGQdjU1WpRaQxE.*AAJTSQACMDEAAlNLABMzMTYxMjIwNDAzNjc4NDA4MDQxAAJTMQAA*)
2017-01-24 11:43:59.050 +0800 WARNING [0x7f17f9ff3700:17669] validate_policy(): decision: deny, reason: no action decisions found
2017-01-24 11:43:59.213 +0800 WARNING [0x7f180d000700:17669] validate_policy(): validate policy did not find a match for 'http://agent.job.com.tw:80/favicon.ico' in the cached entries, retrying with the new request to the policy service
2017-01-24 11:43:59.227 +0800 WARNING [0x7f180d000700:17669] validate_policy(): decision: deny, reason: no action decisions found
但是,如果我自己导航到OpenAM服务器页面,无论是在访问资源页面之前还是之后,并返回403页面,OpenAM都会要求我进行身份验证!换句话说,登录时,iPlanetDirectoryProcookie消失了,我猜它被OpenAM清除了,所以这意味着OpenAM能够识别过期的会话,或者至少它知道如何处理不再有效的iPlanetDirectoryProcookie

如果我选择不立即登录,并返回到资源页面,它将开始重定向到OpenAM进行身份验证,这很好。当获取403页时,手动删除iPlanetDirectoryProcookie将执行相同的操作

这真的很烦人,对普通用户来说可能很关键,他们不会意识到要做上面提到的那些变通方法


我希望有人能帮我解决这个问题,非常感谢。

我相信您遇到了这个错误:

一般来说,这是可行的,所以您的部署似乎有具体问题。在代理4中,SSOToken的缓存已更改。现在只要在OpenAM服务器端配置了“maxCachingTime”,它就会被缓存。当SSO会话超时且代理配置为通知模式时,OpenAM也会向代理发送一个通知以清理缓存。很抱歉,我的测试环境也存在此问题,这是一个Ubuntu VM,只需按照和中的步骤进行配置。您提到的maxCachingTime选项默认为3分钟,我尝试将其更改为0,但问题仍然存在。谢谢你的帮助。看起来和我现在的问题差不多。但我还发现,如果我的浏览器在开始时恢复最后打开的选项卡,并且在退出之前我没有关闭403选项卡,那么在开始后它仍然会得到403。我阅读了发行说明,发现有一个问题看起来与我遇到的问题类似,并且在代理4.0.1中仅针对订阅者进行了修复。我不确定我面临的问题是否就是这个问题,因为这里使用的术语是session。但是如果我关闭403页面,重新启动浏览器,打开一个新的选项卡并访问该页面,就会将我重定向到auth,这正是我想要的。似乎我能做的是等到问题解决,避免使用浏览器访问受保护的资源,因为在修复到达之前,该资源的工作时间将超过最大会话时间或最大会话空闲时间。感谢您提供问题信息。