Single sign on 希伯利斯和奥洛金

Single sign on 希伯利斯和奥洛金,single-sign-on,shibboleth,Single Sign On,Shibboleth,我使用了Shibboleth手动登录,这意味着用户单击网站上的登录链接,打开Shibboleth登录页面所在的外部页面。一旦通过身份验证,它会将它们重定向回原始站点,并返回到启用Shibboleth的页面 我的问题是,一旦他们登录到另一个站点,我如何自动对他们进行身份验证,因为他们已经从第一个站点进行了Shibboleth会话。他们是否必须单击像第一个站点这样的操作,然后通过用户看不到的隐式重定向自动登录他们,或者我可以在用户不单击登录链接的情况下执行此操作,而不必对每个页面加载进行检查。您可以

我使用了Shibboleth手动登录,这意味着用户单击网站上的登录链接,打开Shibboleth登录页面所在的外部页面。一旦通过身份验证,它会将它们重定向回原始站点,并返回到启用Shibboleth的页面


我的问题是,一旦他们登录到另一个站点,我如何自动对他们进行身份验证,因为他们已经从第一个站点进行了Shibboleth会话。他们是否必须单击像第一个站点这样的操作,然后通过用户看不到的隐式重定向自动登录他们,或者我可以在用户不单击登录链接的情况下执行此操作,而不必对每个页面加载进行检查。

您可以检查是否存在Shibboleth的一个标题,例如
Shib\u身份验证\u Instant
,如果不存在,则重定向。您可以在服务器级别而不是在应用程序逻辑中这样做,例如使用Apache的
mod_shib

如果你想显示“公共内容”和其他“成员内容”,事情就变得更棘手了。我猜您可能会有一个登录页,请求一些受Shib保护的资源(1x1不可见的GIF,查询参数中带有nonce,AJAXy之类的内容): 如果用户已通过Shib身份验证,则可以看到资源正在加载。(否则,他将被困在该资源的一个不可见登录对话框中,这应该无关紧要,并且您可以存储他在会话中不可验证。这不是安全关键:如果用户删除它,他将再次执行gif过程,成员内容应取决于您的shibbolized web服务器为您插入的标题。)(不管怎样,你都可以。)

但这是一个粗糙的攻击,可用性取决于标记gif请求的“良好”超时