我正在尝试为WSO2 IS创建一个完全自定义的外部身份验证器。这个想法是这样的:1. 服务提供者使用SAML2请求将用户转发到WSO2 IS(入站身份验证配置= SAML2 Web SSO配置)。2. 所述服务提供者的本地身份验证配置是我的自定义身份验证器。3.自定义身份验证器将用户重定向到身份验证服务。4. 用户登录。5. 登录服务将用户转发回WSO2 IS自定义身份验证器(使用与之前相同的URL "/samlsso")。
问题是登录服务使用和返回的参数是完全专有的,即。不是SAML2。然而,当访问自定义身份验证器时,WSO2IS期望一个SAML2请求。
如何创建一个自定义身份验证器,它对登录服务使用完全专有的参数,但对服务提供者使用正常的SAML2 ?
在step5中,它应该转发到/commonmonth端点。因此,它将从您的身份验证器中的getContextIdentifier方法中识别出正确的上下文。
您可以使用Facebook authenticator作为示例[1]
[1] https://github.com/wso2/carbon-identity/blob/master/components/application-authenticators/org.wso2.carbon.identity.application.authenticator.social/src/main/java/org/wso2/carbon/identity/application/authenticator/social/facebook/FacebookAuthenticator.java