首页 > 解决方案 > WSO2 通过 Web 服务进行身份验证

问题描述

我正在研究如何使用现有的公司 Web服务通过WSO2 IS实现身份验证。

我必须修改登录以接受 3 个参数,即clientCODEIDnumberpassword

我是WSO2 IS的新手,我开始研究这个主题。到目前为止,我看到如果我需要一个连接到我的 web 服务的自定义联合身份验证,我是否需要制作一个本地自定义身份验证器来处理这三个参数?要完成的流程是什么?

编辑:我创建了一个自定义联合身份验证,可以看到默认 webapp 发送的参数,我在其中包含了一个带有 org.apache.cxf.cxf-rt-rs-client 的休息客户端,但现在我得到了一个

org.apache.cxf.jaxrs.client.WebClient cannot be found by org.wso2.carbon.extension.identity.authenticator.custom_1.0.1

我包括在我的pom中

<Import-Package>
                            org.apache.cxf.cxf-rt-rs-client;resolution:=optional,
                            org.apache.commons.logging.*; version="1.0.4",
                            org.osgi.framework,
                            org.wso2.carbon.identity.application.authentication.framework.*,
                            javax.servlet,
                            javax.servlet.http,
                            org.apache.oltu.oauth2.*; version="${oltu.package.import.version.range}", *;resolution:=optional,
                        </Import-Package>

我将 jar 复制到 /repository/components/lib/ 显示相同的错误。

谢谢

标签: wso2wso2isfederated-identity

解决方案


不,您可以创建一个自定义登录页面(简单的 web 应用程序)并在您的联合身份验证器本身中提示它。示例:不是重定向到外部 URL,而是通过自定义身份验证器的方法将其重定向到您的自定义登录网页initiateAuthenticationRequest。用户提交输入后,从自定义 Servlet 检索输入并发送回您的合作服务进行身份验证。然后您的自定义组件(相同的 servlet)将获得身份验证响应。/commonauth然后,您可以通过从您的自定义 webapp调用端点来向 WSO2 的自定义联合身份验证器提供响应。然后,该响应将由自定义联合身份验证器的processAuthenticationResponse方法处理,在 WSO2 中进行身份验证。

抽象地说,您只需要一个简单的 web 应用程序来收集输入并调用公司服务并获得响应。同样,您需要编写一个自定义联合身份验证器来处理您的/commonauthWeb 应用程序转发的请求。(公司服务的响应加上传出请求的任何参数)

希望这可以帮助。


推荐阅读