Java WSO2是:自定义联邦身份验证器,使用与基本身份验证器相同的形式

Java WSO2是:自定义联邦身份验证器,使用与基本身份验证器相同的形式,java,wso2,wso2is,wso2carbon,Java,Wso2,Wso2is,Wso2carbon,我们正在我们的基础设施中引入WSO2 Identity Server,需要有两种身份验证方法,但如果可能,使用相同的登录表单,而不重定向到外部表单(如facebook登录) 我们的想法是,我们有“普通”和“超级”用户,普通用户将使用WSO2 is提供的基本验证器进行身份验证(使用电子邮件作为用户名),而超级用户有特定类型的用户名(比如“超级用户XXXX”)他们的身份验证是在现有API的特定资源上处理和批准的 因此,我想做的是从WSO2中显示基本身份验证表单,当我识别超级用户用户名格式时,将身份验

我们正在我们的基础设施中引入WSO2 Identity Server,需要有两种身份验证方法,但如果可能,使用相同的登录表单,而不重定向到外部表单(如facebook登录)

我们的想法是,我们有“普通”和“超级”用户,普通用户将使用WSO2 is提供的基本验证器进行身份验证(使用电子邮件作为用户名),而超级用户有特定类型的用户名(比如“超级用户XXXX”)他们的身份验证是在现有API的特定资源上处理和批准的

因此,我想做的是从WSO2中显示基本身份验证表单,当我识别超级用户用户名格式时,将身份验证委托给前面提到的API

我知道为了委托给外部服务,我需要引入一个联邦身份验证器——这不是这里的问题。我的问题是如何执行以下操作:

  • 重复使用相同的表单,并在幕后处理不同的案例
  • 根据用户名模式将责任分配给自定义和联合身份验证器

有人做过类似的事情吗?甚至有可能实现我想做的吗?

对于您的用例,您可以扩展默认值

在processAuthenticationResponse中,您可以检查用户名模式并调用外部API并对用户进行身份验证,否则您可以调用super


还有另一个选项,我们可以在其中实现专用的验证器和页面,以使用外部API进行身份验证


在SP配置中,首先设置标识符作为第一步,然后设置默认的基本和自定义验证器作为第二步。然后从标识符first中提供的用户名中选择second step authenticator。这可以通过

中的“authenticationOptions”完成。对于您的用例,您可以扩展默认设置

在processAuthenticationResponse中,您可以检查用户名模式并调用外部API并对用户进行身份验证,否则您可以调用super


还有另一个选项,我们可以在其中实现专用的验证器和页面,以使用外部API进行身份验证


在SP配置中,首先设置标识符作为第一步,然后设置默认的基本和自定义验证器作为第二步。然后从标识符first中提供的用户名中选择second step authenticator。这可以通过

中的“authenticationOptions”完成,如果用户名为“超级用户XXXX”,则需要调用外部API。该API是验证用户凭据还是只批准访问?两者都有。它验证用户凭据,并将批准用户访问用户尝试登录的相应服务提供商。如果用户名为“超级用户XXXX”,则需要调用外部API。该API是验证用户凭据还是只批准访问?两者都有。它验证用户凭据,并将批准他们访问用户尝试登录的相应服务提供商。谢谢@senthalan。您的第一个提案与我试图做的很接近,但我开始扩展文档中描述的抽象提案,而不是BasicAuthenticator。我将使用这种方法重新访问并更新。谢谢@senthalan。您的第一个提案与我试图做的很接近,但我开始扩展文档中描述的抽象提案,而不是BasicAuthenticator。我将使用该方法重新访问并更新。