wso2 api管理器群集

wso2 api管理器群集,wso2,wso2-am,api-manager,Wso2,Wso2 Am,Api Manager,我正在尝试为WSO2 api管理器设置一个集群,我正在跟进 我为每个组件使用单独的VM,目前在我的设置中,我能够 使用在网关中发布的发布者发布api(在日志中可见) 从应用商店订阅此API并生成密钥 但是,当我试图使用生成的密钥访问此api时,我得到以下响应 <soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <faultcode xmlns:axis2ns2="http:/

我正在尝试为WSO2 api管理器设置一个集群,我正在跟进

我为每个组件使用单独的VM,目前在我的设置中,我能够

  • 使用在网关中发布的发布者发布api(在日志中可见)
  • 从应用商店订阅此API并生成密钥
  • 但是,当我试图使用生成的密钥访问此api时,我得到以下响应

    <soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
        <faultcode xmlns:axis2ns2="http://schemas.xmlsoap.org/soap/envelope/">axis2ns2:Client</faultcode>
        <faultstring>Authentication Failure</faultstring>
        <detail>Error while accessing backend services for API key validation</detail>
    </soapenv:Fault>
    

    请帮助我解决此问题。

    这听起来像是API的问题-API管理器实际上不会“验证任何东西”,除非您使用identity server。请参阅验证和授权之间的区别(WSO2通过Oauth所做的)。请尝试已知可以工作的API,例如,并报告错误。

    这可能是由于多种原因造成的。请检查下面的一些原因

  • 密钥管理器的公共证书未正确导入
    /repository/resources/security/client truststore.jks
  • 打开网关和密钥管理器节点的api-manager.xml fie,并将
    更改为WSClient,如下所示(默认值为
    ThriftClient

    WSClient
    

  • 原因可能是节点之间配置错误。首先,您可以仔细检查配置(特别是与keyvalidator相关的配置)

    如果您在那里找不到任何问题,那么您可以启用调试日志并了解该问题

    在网关节点的repository/conf/log4j.properties中添加以下实体

    log4j.logger.org.wso2.carbon.apimgt.gateway.handlers.security=DEBUG
    
    在密钥管理器节点的repository/conf/log4j.properties中添加以下实体

    log4j.logger.org.wso2.carbon.apimgt.keymgt=DEBUG
    

    您可以通过分析日志来发现问题

    如果故意传递错误的Oauth令牌会发生什么?它至少像预期的那样失败了吗?你的招摇过市是什么样子的?我也有同样的错误。但是,如果我给密钥管理器提供了错误的IP,我会得到不同的错误,如无法连接等。在使用群集网关时,我们遇到了类似的问题。我们的(天真的)解决方案是只配置每个网关使用其本地IP来解决密钥管理器请求,尽管您也应该能够正确地执行此操作并配置专用的密钥管理器节点。。。只要确保你的网关可以访问它们。Try:从网关到它试图访问的密钥管理器的URL的卷曲,以查看这是否是一个问题。
    log4j.logger.org.wso2.carbon.apimgt.gateway.handlers.security=DEBUG
    
    log4j.logger.org.wso2.carbon.apimgt.keymgt=DEBUG