XWiki如何配置登录页同时提供账号密码与OpenID Connect SSO登录选项
解决方案
当前访问直接跳转Keycloak是因为OpenID Connect Authenticator默认开启了强制自动跳转规则,跳过了XWiki原生登录选择页,按以下步骤配置即可实现双登录选项共存:
1. 关闭全局自动SSO跳转
- 若当前访问站点直接跳转Keycloak,可直接访问路径
<你的XWiki域名>/xwiki/bin/login/XWiki/XWikiLogin?u=XWiki.superadmin绕过自动跳转,使用超级管理员本地账号登录后台 - 进入管理后台,依次打开「OpenID Connect Authenticator」配置页,找到配置项
openidconnect.authenticator.autoRedirect,将参数值从默认的true修改为false,保存配置
2. 登录页添加SSO登录入口
- 进入管理后台的「外观 > 页面元素 > 登录页」配置区,在本地账号密码登录表单的合适位置(通常放在密码输入框下方、登录按钮上方/下方均可)插入以下代码:
<div class="login-sso-entry mt-3"> <hr> <p class="text-center text-muted">其他登录方式</p> <a href="/xwiki/oidc/authenticate" class="btn btn-outline-primary btn-block"> 使用企业SSO(Keycloak)登录 </a> </div>
- 保存外观配置后,清空XWiki的页面缓存与浏览器缓存即可生效
3. 效果验证
退出当前登录状态重新访问登录页,即可同时看到本地账号密码输入框、Keycloak SSO登录按钮,用户可自主选择登录方式;未登录访问受权限控制的页面时,也会先进入登录选择页,不会强制跳转Keycloak。
注意事项
- 无需修改
xwiki.authentication.authclass认证类配置,仅关闭自动跳转参数不会影响原有SSO功能、也不会屏蔽本地账号登录能力 - 可根据自身站点主题风格调整上述SSO按钮的样式、文案,按钮跳转路径固定为
/xwiki/oidc/authenticate即可 - 若需要对指定用户组强制使用SSO登录,可在OpenID Connect配置项中找到
openidconnect.authenticator.enforceForUsers,填入对应用户/用户组ID即可,未匹配的用户仍可自主选择登录方式
内容的提问来源于stack exchange,提问作者qasim butt
相关产品推荐
相关产品推荐

