我正在研究如何用以下方法实现身份验证 WSO2 IS 使用现有的企业网络服务。
我必须修改登录以接受3个参数,它们是 clientCODE
, IDnumber
和 password
.
我是新来的 WSO2 IS 和我开始研究这个问题.目前我看到如果我需要一个自定义的联盟认证,连接到我的webservice,我需要做一个本地的自定义认证器来配合这三个参数吗?要做的流程是什么?
EDIT:我创建了一个自定义联盟认证,可以看到默认的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
我在我的绒球中加入了
<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>
我复制了jars到repositorycomponentslibshows同样的错误。
谢谢你
不,你可以创建一个自定义的登录页面(简单的webapp),并在你的联合认证器中进行提示。例子: 不是重定向到外部URL,而是重定向到您的自定义登录网页,从。initiateAuthenticationRequest
的方法进行认证。一旦用户提交输入,从自定义Servlet中获取输入,并发送回你的合作服务进行认证,然后你的自定义组件(同一个Servlet)将获得认证响应。然后你可以通过调用WSO2的自定义联合认证器来提供响应。/commonauth
端点。然后,该响应将由自定义联合验证器的 processAuthenticationResponse
方法在WSO2中做认证。
抽象的说,你只需要一个简单的webapp来收集输入,然后调用企业服务并获得响应。同样,你需要写一个自定义的联合认证器来处理以下问题 /commonauth
由您的网络应用转发的请求。(企业服务的响应加上发出请求的任何参数)
希望对你有所帮助。