【问题标题】:wso2 api manager clusteringwso2 api管理器集群
【发布时间】:2016-02-02 17:07:15
【问题描述】:

我正在尝试为 WSO2 api 管理器设置一个集群,我正在关注 https://docs.wso2.com/display/CLUSTER44x/Clustering+API+Manager+1.10.0

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

  1. 使用在网关中发布的发布者发布 api(在日志中可见)
  2. 从商店订阅此 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>

在网关日志中,我只能看到以下行。日志中没有更多详细信息

TID: [-1234] [] [2016-02-02 16:55:58,288]  WARN {org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticat
ionHandler} -  API authentication failure due to Unclassified Authentication Failure {org.wso2.carbon.apimgt.gat
eway.handlers.security.APIAuthenticationHandler}

请帮我解决这个问题。

【问题讨论】:

  • 如果你故意传递一个错误的 Oauth 令牌会发生什么?它至少会像预期的那样失败吗?还有你的 Swagger 是什么样的?
  • 我得到了同样的错误。但是,如果我为密钥管理器提供了错误的 IP,我会收到不同的错误,比如无法连接等。
  • 我们在使用集群网关时遇到了类似的问题。我们的(幼稚)解决方案是仅配置每个网关以使用其本地 IP 来解决密钥管理器请求,尽管您也应该能够正确地做到这一点并配置专用的密钥管理器节点......只要确保您的网关可以访问它们.尝试:从您的网关到它尝试访问的密钥管理器的 URL 的 cURL,看看这是否有问题。

标签: wso2 wso2-am api-manager


【解决方案1】:

这听起来像是您的 API 的问题 - API Manager 实际上不会“验证任何内容”,除非您使用身份服务器,请参阅here 了解身份验证和授权之间的区别(WSO2 通过 Oauth 执行的操作)。请尝试使用已知可用的 API,例如 http://petstore.swagger.io/ 并报告错误。

【讨论】:

    【解决方案2】:

    这可能由于多种原因而发生。请检查以下一些原因

    1. 密钥管理器的公共证书未正确导入&lt;GATEWAY_HOME&gt;/repository/resources/security/client-truststore.jks
    2. 打开网关和密钥管理器节点的api-manager.xml文件,将&lt;KeyValidatorClientType&gt;改为WSClient,如下图(默认值为ThriftClient)。

      <KeyValidatorClientType>WSClient</KeyValidatorClientType>
      

    【讨论】:

      【解决方案3】:

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

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

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

      log4j.logger.org.wso2.carbon.apimgt.gateway.handlers.security=DEBUG
      

      在 key manager 节点的 repository/conf/log4j.properties 中添加以下条目

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

      您或许可以通过分析日志找到问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多