由于您的每个用户都可能使用不同的IDP,因此无论如何您都需要先确定用户名,然后再进行身份验证过程的初始化-但您已经知道这一点。
一种采用的方法(类似于Microsoft在企业用户中使用的Office 365)是:
- 显示带有标准用户名和密码字段的登录页面
- 用户输入用户名并模糊输入字段后,您将进行AJAX调用(为此目的而使用的自定义API),并获取有关该用户要使用的身份验证类型+ IDP的信息
- 如果类型是密码,您只需让用户继续填写密码字段,然后将POST输入到您习惯于使用JDBC提供程序进行处理的位置
- 如果类型是联合身份验证,则可以通过重定向到/ saml / login?idp = xyz来初始化具有正确IDP的身份验证,然后继续执行SAML流
输入用户名或用户单击“继续”按钮即可提交表单,从而避免使用任何API。然后,使用一个自定义EntryPoint是有意义的:
- 如果未提供用户名,则将用户重定向到主登录页面
- 提供用户名后,显示带有用户名/密码的登录页面或重定向到正确的IDP
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)