我们正在基础架构中引入WSO2 Identity Server,需要有两种身份验证方法,但是-如果可能的话-使用相同的登录表单,而无需重定向到外部表单(例如facebook登录)。
[想法是,我们拥有“普通”和“高级”用户,普通用户将使用WSO2 IS提供的基本身份验证器(使用电子邮件作为用户名)进行身份验证,而高级用户具有特定类型的用户名(例如,“用户XXXX“)及其身份验证正在通过现有API在特定资源上处理和批准。
因此,我想做的是获得WSO2所示的基本身份验证表格,当我标识超级用户用户名格式时,将身份验证委托给上述API。
我知道,为了委派给外部服务,我需要引入一个联合身份验证器-这不是这里的问题。我的问题是如何执行以下操作:
有人能做类似的事情吗?甚至有可能实现我想要的目标吗?
对于您的用例,您可以write a local authenticator扩展默认的BasicAuthenticator。
在processAuthenticationResponse中,您可以检查用户名模式并调用外部API并验证用户身份,否则您可以调用超级用户
还有另一个选项,我们可以实现专用的身份验证器和页面以使用外部API进行身份验证。
在SP配置中,首先将标识符设置为第一步,然后将默认的基本和自定义身份验证器设置为第二步骤。然后,从标识符中提供的用户名中,首先选择第二步身份验证器。可以通过authentication script
中的“ authenticationOptions”来完成