【问题标题】:WSO2 API Manager AuthenticationWSO2 API 管理器身份验证
【发布时间】:2016-05-17 04:22:27
【问题描述】:

我有一个使用基本身份验证来验证和授权服务调用的应用程序。我正在单独的服务器上设置我们的 WSO2 API 管理器,但不确定如何将 API 管理器中的 base64 加密传递到我的应用程序以授权某些服务调用。

此信息在文档中并不容易获得,因此我不确定它是否受支持。

有没有人用过这个或者知道如何实现这个?

【问题讨论】:

    标签: wso2 wso2-am


    【解决方案1】:

    如果您想提供自己的身份验证机制,您可以通过实现org.wso2.carbon.apimgt.gateway.handlers.security.Authenticator 并将其设置在身份验证处理程序链中来非常轻松地做到这一点。

    您可以参考org.wso2.carbon.apimgt.gateway.handlers.security.oauth.OAuthAuthenticator

    【讨论】:

      【解决方案2】:

      您可以在发布者创建 API 时提供凭据。您可以查看WSO2 documentation about adding an API。在发布者的“端点类型”中,您必须选择Secured,然后需要提供username/password

      【讨论】:

      • 感谢 Ratha,但我想要实现的是这个;我们在平台上的每个用户都使用他们的用户名和密码来识别。因此,当我现在调用 API 时,我会传递这些信息,这让我可以说,获取经过身份验证的用户“朋友”的列表。如果我要将此信息放入 API 中,则意味着对指定端点的每次调用都将被验证为来自“用户”,其详细信息包含在“端点类型”中。我希望在每次服务调用时传递此信息。
      • 我仍然不清楚..您有一组用户,只允许他们访问 API?
      • 是的。我必须将每个用户的唯一用户名和密码作为基本身份验证标头传递给我的服务器。 WSO2 API 管理器是否能够捕获这些凭据并将它们传递给我的服务器?
      • 我明白了,这里您的服务没有使用 basicauth 保护,但您想在请求中发送用户凭据。正如我在回答中所说,我们支持安全端点。对于您的情况,情况有所不同。您可以做的是,发布服务后,您可以在 home\repository\deployment\server\synapse-configs\default\api 文件夹中找到“api”配置。在过滤器调解器之后的序列中,使用属性调解器设置基本身份验证标头,用于从传入请求中选择详细信息(其中将包含您的用户用户名和密码)
      【解决方案3】:

      在 API 管理器中通过 APIAuthenticationHandler 进行身份验证,这是您的 API 序列定义 (/repository/deployment/server/synapse-configs/default/api) 中定义的处理程序之一。要禁用该特定 API 的身份验证(因为 API Manager 自己处理基本身份验证),只需删除或注释掉处理程序。然后,用户应提供后端服务所需的基本身份验证,而不是 API Manager 令牌,因为他们将不再需要它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-27
        • 2023-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多