如何在 WSO2 中配置外部 Web 服务 (REST) 进行身份验证?

问题描述 投票:0回答:1

我有单独的Dotnet Web Service API来验证用户。我如何在WSO2 API Manager中配置它?

我已经用外部IDP(Keycloak)配置了WSO2 API Manager。这就是我想要的,或者可以用不同的方式实现。

wso2 wso2-am wso2is wso2carbon
1个回答
0
投票

如果你正在寻找一种方法来替换你的用户商店(LDAPADJDBC),用你的Dotnet服务,你可能想写一个新的自定义用户商店管理器,扩展你的Dotnet服务。CarbonRemoteUserStoreManger 类。在那里,你应该调用你的自定义API来验证、检索用户。然后,你可以用你的应用程序添加一个secondaryprimary用户存储。自定义用户店长 的实现。

如果你想把你的Dotnet服务配置成API Manager服务器中的Federated IdP,你可能需要写一个 "Federated IdP"。自定义联合认证器 来与你的Dotnet服务进行通信以验证用户。在这里你应该覆盖 initiateAuthenticationRequestprocessAuthenticationResponse.

根据问题的新背景编辑答案。

为了与外部(Dotnet服务)生成或验证令牌,WSO2需要事先知道该服务的服务合同。如何获取这些信息到WSO2 APIM服务器,是通过编写一个扩展到WSO2 APIM服务器的Key Manger服务。

默认情况下,WSO2 APIM已经实现了与自己的Key Manager组件和WSO2 Identity Server对话。但是您需要编写逻辑(请求响应模板)来验证您的dotnet服务的tokens。这是官方的 文件 为这。这两篇Medium的文章也是写的这个主题。

基本上,你需要为上述接口写一个简单的java扩展项目,这样WSO2就知道如何与你的服务对话。A 例行 写给 Okta 作为一个密钥管理器,这里指出。

关于你关心的验证两种token类型的问题。

是的,可以使用上面描述的自定义密钥管理器接口。一旦你在API管理器端收到令牌,如果你能从你的Java逻辑中分辨出令牌是由Dotnet服务还是由WSO2本身发出的(可能是令牌的长度),那么你的逻辑应该将验证请求分别转到WSO2默认的密钥验证服务(调用 super())或对你的Dotnet服务调用。如果你光看这两个令牌无法区分,那么你可以同时尝试两个服务器,检查其中一个能否验证。(这里面有一个安全漏洞)。

希望能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.