wso2 - WSO2 通过 Web 服务进行身份验证
问题描述
我正在研究如何使用现有的公司 Web服务通过WSO2 IS实现身份验证。
我必须修改登录以接受 3 个参数,即clientCODE
、IDnumber
和password
。
我是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/ 显示相同的错误。
谢谢
解决方案
不,您可以创建一个自定义登录页面(简单的 web 应用程序)并在您的联合身份验证器本身中提示它。示例:不是重定向到外部 URL,而是通过自定义身份验证器的方法将其重定向到您的自定义登录网页initiateAuthenticationRequest
。用户提交输入后,从自定义 Servlet 检索输入并发送回您的合作服务进行身份验证。然后您的自定义组件(相同的 servlet)将获得身份验证响应。/commonauth
然后,您可以通过从您的自定义 webapp调用端点来向 WSO2 的自定义联合身份验证器提供响应。然后,该响应将由自定义联合身份验证器的processAuthenticationResponse
方法处理,在 WSO2 中进行身份验证。
抽象地说,您只需要一个简单的 web 应用程序来收集输入并调用公司服务并获得响应。同样,您需要编写一个自定义联合身份验证器来处理您的/commonauth
Web 应用程序转发的请求。(公司服务的响应加上传出请求的任何参数)
希望这可以帮助。
推荐阅读
- python - Python中稀疏二维数组与另一个二维数组的快速卷积
- html - 在循环内部,非循环变量没有从 Markdown、Pandoc 和 YAML 中的循环变量中获取数组
- php - php/html 中的电子邮件显示所有用户的电子邮件,我如何添加 CC 使用户看不到其他用户的电子邮件
- php - Laravel 定义没有命名空间的全局函数是正常的做法吗?
- python - 尝试创建带有日期的文本文件
- javascript - 修改 .js modal 使其适用于多个图像
- python - Python 3.7/buildozer - 启动后 Android 上的应用程序崩溃
- angular - 为什么断点会影响我的应用程序的行为?
- python - 如何确定轮廓OpenCv Python的平滑度或粗糙度
- bash - 每 5 次循环后暂停“for”