首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WSO2中配置外部网络服务(REST)进行身份验证?

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

Stack Overflow用户
提问于 2020-05-05 00:37:03
回答 1查看 192关注 0票数 0

我使用单独的Dotnet Web服务API对用户进行身份验证。如何使用WSO2应用程序接口管理器进行配置?

我已经使用外部IDP (Keycloak)配置了WSO2应用程序接口管理器。这就是我所期待的,或者可以通过不同的方式来实现。

EN

回答 1

Stack Overflow用户

发布于 2020-05-07 02:17:39

如果您正在寻找将用户存储(LDAP/AD/JDBC)替换为Dotnet服务的方法,则可能需要编写一个新的自定义用户存储管理器来扩展CarbonRemoteUserStoreManger类。在那里,您应该调用您的自定义API来验证和检索用户。然后,您可以使用您的custom user store manager实现添加一个辅助/主要用户存储。

如果您希望在API Manager服务器中将Dotnet服务配置为联邦IdP,则可能需要编写一个Custom Federated Authenticator来与Dotnet服务通信,从而对用户进行身份验证。在这里,您应该重写initiateAuthenticationRequestprocessAuthenticationResponse

在issue上使用新的上下文编辑答案

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

默认情况下,Server具有与其自己的密钥管理器组件和WSO2 Identity WSO2进行对话的实现。但是您需要编写逻辑(请求/响应模板)来使用dotnet服务验证令牌。这是这方面的官方documentation。这两篇中等水平的文章也是在这个主题上写的。

基本上,您需要为上述接口编写一个简单的java扩展项目,以便WSO2知道如何与您的服务对话。这里指出了一个为Okta编写的sample such implementation作为密钥管理器。

关于您对验证这两种令牌类型的关注;

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

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61597176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档