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

WSO2 IS: Custom Federated Authenticator using same form as basic authenticator

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

我们的想法是,我们有 "normal" 和 "power" 用户,其中普通用户将使用 WSO2 IS 提供的基本身份验证器(使用电子邮件作为用户名)进行身份验证,而高级用户具有特定类型用户名(比方说 "Power User XXXX"),他们的身份验证正在从现有 API.

的特定资源上处理和批准

所以,我想做的是从 WSO2 中显示基本身份验证表单,当我识别高级用户用户名格式时,将身份验证委托给上述 API。

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

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

对于您的用例,您可以write a local authenticator extending the default BasicAuthenticator

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


还有另一种选择,我们可以在其中实施专用的身份验证器和页面以与外部进行身份验证 API。

在 SP 配置中,第一步首先设置一个标识符,第二步设置默认的基本和自定义身份验证器。然后从标识符中提供的用户名首先select 第二步验证器。这可以通过 'authenticationOptions' 在 authentication script

中完成