【问题标题】:How do I customize the ADFS 3.0 logout page to force sign out?如何自定义 ADFS 3.0 注销页面以强制注销?
【发布时间】:2016-12-13 21:50:46
【问题描述】:

我们将 ADFS 3.0 与多个应用程序一起用作依赖方。从 Web 应用程序退出时,应用程序重定向到:

https://fs.company.com/adfs/ls/idpinitiatedsignon.aspx

然后该页面有一个登录按钮和一个退出按钮,其中包含两个选项:

  1. 退出您访问过的所有网站(已选择)

  2. 从此站点退出

用户选择其中一个选项,然后单击“退出”按钮。我们是否可以强制按下“退出”按钮(使用默认选项),以便最终用户无需执行任何操作?

【问题讨论】:

    标签: single-sign-on adfs3.0


    【解决方案1】:

    看起来我想通了:登出页面加载了一个可以修改的 javascript 文件 (onload.js)。我向该文件添加了一个 javascript 函数,该函数将点击事件发送到注销按钮。

    在 ADFS 服务器上打开 PowerShell。查看当前活跃的网络主题:

    Get-AdfsWebConfig
    

    这被设置为默认值。然后根据默认网页主题创建自定义网页主题:

    New-AdfsWebTheme -Name Custom -SourceName Default
    

    导出网页主题进行编辑:

    Export-AdfsWebTheme -Name Custom -DirectoryPath C:\temp
    

    需要编辑的文件是:C:\temp\scripts\onload.js。在最后添加这些行(我通过检查退出页面的源代码得到了退出按钮的 ID):

    var signOutPanelExists = document.getElementById('idp_SignOutPanel');
    
    if (signOutPanelExists)
    {
        // only click the SignOut button if it is displayed - to avoid endless loop
        if (document.getElementById('idp_SignOutPanel').style.display != 'none')
        {
            var logoutKnopf = document.getElementById('idp_SignOutButton');
            if (logoutKnopf)
            {
               window.onload = function(){ document.getElementById('idp_SignOutButton').click(); }
            }
        }
    }
    

    上传修改后的onload.js:

    Set-AdfsWebTheme -TargetName Custom -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js';path='C:\temp\script\onload.js'}
    

    激活自定义网页主题:

    set-adfswebconfig -ActiveThemeName Custom
    

    现在,当用户退出网络应用程序时,他会完全退出,而无需按另一个退出按钮。

    有关编辑登录和退出页面的更多信息:

    https://technet.microsoft.com/en-us/library/dn636121(v=ws.11).aspx

    【讨论】:

      猜你喜欢
      • 2018-06-07
      • 2020-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-03-31
      • 2020-04-29
      • 2013-09-10
      • 2017-03-15
      • 1970-01-01
      相关资源
      最近更新 更多