Single sign on 如何自定义ADFS 3.0注销页面以强制注销?
我们将ADFS 3.0与多个应用程序一起作为依赖方使用。从web应用程序注销时,应用程序将重定向到:Single sign on 如何自定义ADFS 3.0注销页面以强制注销?,single-sign-on,adfs3.0,Single Sign On,Adfs3.0,我们将ADFS 3.0与多个应用程序一起作为依赖方使用。从web应用程序注销时,应用程序将重定向到: https://fs.company.com/adfs/ls/idpinitiatedsignon.aspx 该页面有一个登录按钮和一个注销按钮,其中有两个选项: 从您访问过的所有站点注销(选定) 从此网站注销 用户选择其中一个选项,然后单击注销按钮。我们是否可以强制按下“注销”按钮(使用默认选项),以便最终用户无需执行任何操作?看起来我已经解决了:注销页面加载了一个可以修改的javascri
https://fs.company.com/adfs/ls/idpinitiatedsignon.aspx
该页面有一个登录按钮和一个注销按钮,其中有两个选项:
用户选择其中一个选项,然后单击注销按钮。我们是否可以强制按下“注销”按钮(使用默认选项),以便最终用户无需执行任何操作?看起来我已经解决了:注销页面加载了一个可以修改的javascript文件(onload.js)。我向该文件添加了一个javascript函数,该函数向注销按钮发送一个单击事件 在ADFS服务器上打开PowerShell。查看当前活动的web主题:
Get-AdfsWebConfig
New-AdfsWebTheme -Name Custom -SourceName Default
set-adfswebconfig -ActiveThemeName Custom
这已设置为默认值。然后基于默认web主题创建自定义web主题:
Get-AdfsWebConfig
New-AdfsWebTheme -Name Custom -SourceName Default
set-adfswebconfig -ActiveThemeName Custom
导出web主题以进行编辑:
Export-AdfsWebTheme -Name Custom -DirectoryPath C:\temp
需要编辑的文件是:C:\temp\scripts\onload.js。在末尾添加这些行(我通过检查signout页面的源代码获得了signout按钮的ID):
上传修改后的onload.js:
Set-AdfsWebTheme -TargetName Custom -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js';path='C:\temp\script\onload.js'}
激活自定义web主题:
Get-AdfsWebConfig
New-AdfsWebTheme -Name Custom -SourceName Default
set-adfswebconfig -ActiveThemeName Custom
现在,当用户注销web应用程序时,他将完全注销,而不必按另一个注销按钮
有关编辑登录和注销页面的更多信息:
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(); }
}
}
}