【发布时间】:2016-05-17 04:22:27
【问题描述】:
我有一个使用基本身份验证来验证和授权服务调用的应用程序。我正在单独的服务器上设置我们的 WSO2 API 管理器,但不确定如何将 API 管理器中的 base64 加密传递到我的应用程序以授权某些服务调用。
此信息在文档中并不容易获得,因此我不确定它是否受支持。
有没有人用过这个或者知道如何实现这个?
【问题讨论】:
我有一个使用基本身份验证来验证和授权服务调用的应用程序。我正在单独的服务器上设置我们的 WSO2 API 管理器,但不确定如何将 API 管理器中的 base64 加密传递到我的应用程序以授权某些服务调用。
此信息在文档中并不容易获得,因此我不确定它是否受支持。
有没有人用过这个或者知道如何实现这个?
【问题讨论】:
如果您想提供自己的身份验证机制,您可以通过实现org.wso2.carbon.apimgt.gateway.handlers.security.Authenticator 并将其设置在身份验证处理程序链中来非常轻松地做到这一点。
您可以参考org.wso2.carbon.apimgt.gateway.handlers.security.oauth.OAuthAuthenticator。
【讨论】:
您可以在发布者创建 API 时提供凭据。您可以查看WSO2 documentation about adding an API。在发布者的“端点类型”中,您必须选择Secured,然后需要提供username/password。
【讨论】:
在 API 管理器中通过 APIAuthenticationHandler 进行身份验证,这是您的 API 序列定义 (/repository/deployment/server/synapse-configs/default/api) 中定义的处理程序之一。要禁用该特定 API 的身份验证(因为 API Manager 自己处理基本身份验证),只需删除或注释掉处理程序。然后,用户应提供后端服务所需的基本身份验证,而不是 API Manager 令牌,因为他们将不再需要它。
【讨论】: