春季-支持SAML SSO和常规登录
作者:互联网
我有一个可由两种类型的用户(内部和外部)访问的应用程序.
我需要使用SAML对外部用户进行身份验证.
我需要使用基于表单的常规登录身份验证内部用户.我的应用程序需要支持两种类型的用户.我使用弹簧安全框架.
是否可以同时支持两种类型的用户?如果可以的话,您可以从总体上建议这种方法吗?谢谢.
解决方法:
您可以使用以下类似配置轻松启用对表单和SAML身份验证的支持:
<http entry-point-ref="authenticationEntryPoint" authentication-manager-ref="authenticationManager">
<intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY"/>
<form-login login-page="/login" />
<custom-filter before="FIRST" ref="metadataGeneratorFilter"/>
<custom-filter after="BASIC_AUTH_FILTER" ref="samlFilter"/>
</http>
确保您的AuthenticationManager包含samlAuthenticationProvider.当然,还包括Spring SAML示例应用程序中的其他配置部分.
然后,您可以创建自定义登录页面,该页面为用户提供用于基于表单的身份验证的用户名密码字段以及用于通过IDP初始化身份验证的链接/图片(或其中的多个)(通过将用户重定向到scheme:// host:port / saml / login?idp = selectedIdpEntityId).
然后,您的用户可以决定要使用哪个用户-取决于他们是内部用户还是外部用户.
Spring SAML文档中涉及该主题的部分在第Spring Security integration章中.
标签:saml,single-sign-on,spring 来源: https://codeday.me/bug/20191029/1960991.html