如何通过WSO2-API管理器传递CKAN API授权令牌

问题描述 投票:0回答:1

我正在使用WSO2 API管理器(版本3.0.1)作为前端,通过对CKAN的API调用(版本2.8.2)访问数据。

私有CKAN数据集需要如here中所述的授权令牌。

“当调用需要授权的API函数时,必须通过在HTTP请求中提供API密钥来对自己进行身份验证。”

CKAN API authorization instructions

在WSO2中如何完成?具体来说,需要更改哪些配置文件/设置才能实现此目的?

我从this documentation中看到,如果在Eclipse中使用工具插件进行配置,则可以使用类似的方法来完成(步骤23):

curl -k -H "Authorization: Bearer api-key-for-WSO2-goes-here" -H "Custom: Bearer api-key-for-CKAN-goes-here" https://my-wso2-host-goes-here:8243/test/1.0.0

WSO2 curl example

但是,这些说明需要使用Eclipse。我不使用Eclipse,也不想或不打算开始使用它。我希望WSO2配置与IDE无关。

因此,如果没有Eclipse,如何完成此任务。即需要在服务器上或在WSO2 API Publisher和/或WSO2 API开发门户中修改哪些配置文件/设置,以通过WSO2 API-M传递CKAN的授权令牌?

wso2 wso2-am ckan
1个回答
0
投票

您不必为此使用Eclipse。在教程中,Eclispse插件被用作轻松生成序列的工具。在该教程中,我们需要一个序列首先,因为后端所需的授权标头是“授权”。在WSO2 APIM中,这是一个保留标头,用于传递内部生成的令牌。因此,我们首先将后端令牌传递到具有不同标头名称的自定义标头中,然后将该值按顺序复制到Authorization标头中。该序列如下所示。

<sequence xmlns="http://ws.apache.org/ns/synapse" name="authorization_header_exchange">
<property name="X-Authorization" expression="get-property('transport', 'X-Authorization')" scope="default" type="STRING"/>
<property name="Authorization" expression="get-property('X-Authorization')" scope="transport" type="STRING" description=""/>
<property name="X-Authorization" scope="transport" action="remove"/>

请参阅[1]了解更多信息。

但是,在不使用中介序列的情况下,您可以将X-CKAN-API-Key中的api密钥与请求本身一起发送。

[1]。 https://docs.wso2.com/display/APICloud/Sample+Mediation+Sequences#SampleMediationSequences-Passinganauthorizationheadertoyourbackend

© www.soinside.com 2019 - 2024. All rights reserved.