2

我创建了一个简单的 API,并尝试使用 WSO2 的 API Publisher(又名 API Cloud)发布它。我已经完成了所有步骤,但似乎需要一个 Authorization 标头才能访问我的端点。在旧文档中,它说我可以在资源级别更改“身份验证类型”。

https://docs.wso2.com/display/AM160/API+Resources

但是,当前版本中似乎没有此选项。我试图做到这一点,因此不需要 Authorization 标头。不幸的是,我仍然收到以下错误:

<ams:fault xmlns:ams="http://wso2.org/apimanager/security">
    <ams:code>900902</ams:code>
    <ams:message>Missing Credentials</ams:message>
    <ams:description>Required OAuth credentials not provided</ams:description>
</ams:fault>

是否可以禁用我的 API 的身份验证?在我的项目中,此时我不需要它。

4

2 回答 2

9

您提到的文档来自 APIM 1.6。从 APIM 1.7 开始,APIM 团队将 API 创建过程更改为 3 步过程。它涉及 API 设计、实施和管理。我想你现在已经经历过了。在最底部的管理部分,它列出了 API 的可用资源、它们的身份验证类型、允许的层和允许的范围。

默认身份验证类型是应用程序和应用程序用户。如果您单击它,您将看到一个下拉菜单,您将在其中看到“无”选项。如果您将身份验证类型设置为无,您将能够在不提供 OAuth 令牌的情况下调用 API。

请参阅以下屏幕截图,其中我在创建 API 时选择了不同的身份验证类型。

在此处输入图像描述

于 2015-02-10T17:11:01.733 回答
1

在 ${AM_HOME}/repository/deployment/server/synapse-configs/default/api/ 中打开与您的 API 相关的配置并删除以下部分。

<handler class="org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler"/>

于 2015-02-10T02:29:10.970 回答