我是 WSO2 产品和 SOA 的新手,但这是我的上级分配给我的工作。他们希望我根据要求安装 WSO2 APIM、IS 和 DSS 产品。在 DSS 中,他们希望我创建一个使用 MySQL 表作为数据源并使用 URI 模板的服务。我已经成功地做到了,它正在使用 cURL 对其进行测试。之后,他们希望我在 APIM 中创建一个 API,并将该 DSS 服务用作端点。通过遵循来自 WSO2 站点的文档,我也成功地做到了这一点。接下来是他们希望我使用 Identity Server 的 OAuth2 来验证将使用 API 的用户,所以我所做的是使用 APIM 作为网关,使用密钥管理器作为 Identity Server 并使用 WSO2 文档https://docs.wso2.com/display/CLUSTER420/Configuring+WSO2+Identity+Server+as+the+Key+Manager。我已经正确地做到了,我已经尝试通过使用消费者密钥和秘密来获取用户访问令牌(使用用户凭据生成访问令牌)。我得到了访问令牌,但是在使用 cURL 和 IS 给出的访问令牌进行测试时
curl -i -H "Accept: application/json" "Authorization: Bearer
h6kdYQgHVVQ19yOaf4lnDgw3NQga" -X GET
http://hostip:8280/SampleDSS/1.0/users
我收到一个错误
curl: (6) Could not resolve host:
Authorization HTTP/1.1 401
Unauthorized WWW-Authenticate: OAuth2 realm="WSO2 API Manager"
Access-Control-Allow-Headers: authorization,Access-Control-Allow-Origin,Content-Type
Content-Type: application/xml; charset=UTF-8 Date: Wed, 06 Aug 2014 03:45:04 GMT
Server: WSO2-PassThrough-HTTP Transfer-Encoding: chunked
<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>
如果这是一个基本问题,请原谅我,但我有点坚持。
另一件事是 APIM 附带一个密钥管理服务器组件,用于处理安全和密钥相关操作。这可以配置为根据定义的用户存储或多个用户存储对用户进行身份验证,并且授权基于 OAuth 2.0。现在是否真的需要使用 Identity Server 作为密钥管理器,或者我只需要另一个 APIM 实例并将其用作密钥管理器?我之所以问这个问题是因为我认为如果使用 APIM 进行 OAuth2 身份验证,仅将 Identity Server 用于 OAuth2 就太过分了。
非常感谢你的帮助。请理解我是新手,只有 1 个月的学习时间。我的某些条款可能不正确,如果有,请告诉我。
再次非常感谢你,德鲁