Angularjs Shibboleth SSO CORS错误
我们的应用程序(AngularJS+REST)受Shibboleth SSO服务提供商的保护。 问题是我们在尝试对REST服务进行ajax调用时看到CORS错误,称重定向到IDP失败“跨源请求被阻止:同一源策略不允许读取远程资源” 但是,如果我们刷新/重新加载浏览器,一切正常。我相信cookie不是第一次创建的,而是在强制重新加载后创建的 显然,每次刷新浏览器都是不可接受的解决方案 为了在不重新加载的情况下工作,需要做什么Angularjs Shibboleth SSO CORS错误,angularjs,single-sign-on,shibboleth,Angularjs,Single Sign On,Shibboleth,我们的应用程序(AngularJS+REST)受Shibboleth SSO服务提供商的保护。 问题是我们在尝试对REST服务进行ajax调用时看到CORS错误,称重定向到IDP失败“跨源请求被阻止:同一源策略不允许读取远程资源” 但是,如果我们刷新/重新加载浏览器,一切正常。我相信cookie不是第一次创建的,而是在强制重新加载后创建的 显然,每次刷新浏览器都是不可接受的解决方案 为了在不重新加载的情况下工作,需要做什么 谢谢你提前给我指点 我自己正在处理这个问题。我不相信Shibboleth
谢谢你提前给我指点 我自己正在处理这个问题。我不相信Shibboleth IDP中有任何CORS支持,我使用的解决方案是来自客户端的主动保持活动ping:
- 定期向Shibboleth auth session下的位置发出Ajax请求,以防止会话超时(例如使用setTimeout)
- 如果此请求失败,则抛出一个完整页面错误,提示用户使用
以下是Apache配置,如果有人登陆,它将为我工作:
RewriteEngine On
<Location />
AuthType Shibboleth
ShibUseHeaders On
ShibRequireSession On
Require valid-user
AuthGroupFile /etc/httpd/groups
</Location>
RewriteCond "%{LA-F:REMOTE_USER}" =""
RewriteRule ^/session-ping$ /yoursessiondoesnotexist [PT,L]
<Location /yoursessiondoesnotexist>
AuthType None
Require all granted
</Location>
RewriteCond "%{LA-F:REMOTE_USER}" !=""
RewriteRule ^/session-ping$ /ok.html [PT,L]
Alias /ok.html /var/www/ok.html
SetEnvIf Request_URI "^/session-ping$" DONTLOG
CustomLog /dev/stdout ncgl env=!DONTLOG
重新编写引擎打开
身份验证类型Shibboleth
白痴
对…的要求
需要有效用户
AuthGroupFile/etc/httpd/groups
重写第二个“%{LA-F:REMOTE_USER}”=”
重写规则^/session ping$/yoursessiondoesnotexist[PT,L]
AuthType无
要求所有授权
重写条件“%{LA-F:REMOTE_USER}”=""
重写规则^/session ping$/ok.html[PT,L]
别名/ok.html/var/www/ok.html
SetEnvIf请求URI“^/session ping$”DONTLOG
CustomLog/dev/stdout-ncgl-env=!唐特洛
我使用XHR每隔五秒钟轮询/会话ping一次,当收到非200状态码时,我会抛出“您的会话已过期”模式/调光器