带有API Manager的Identity Server中的OAuth2

时间:2014-08-06 04:13:42

标签: oauth-2.0 wso2 wso2is wso2-am api-manager

我是WSO2产品和SOA的新手,但这是我的上级指派我做的事情。他们希望我根据要求安装WSO2 APIM,IS和DSS产品。在DSS中,他们希望我创建一个使用MySQL表作为数据源并使用URI模板的服务。我已经成功完成了它并且正在使用cURL进行测试。之后,他们希望我在APIM中创建API并将该DSS服务用作端点。我也是通过以下来自WSO2网站的文档成功完成的。接下来,他们希望我使用Identity Server的OAuth2来验证将使用API​​的用户,因此我所做的是使用API​​M作为网关,使用密钥管理器作为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实例并将其用作密钥管理器?我问这个是因为我认为如果使用API​​M进行OAuth2身份验证,那么仅为OAuth2使用Identity Server就太多了。

非常感谢您的帮助。请理解我是新手,只需1个月的时间学习所有这些。我的一些条款可能不正确,如果有,请告诉我。

再次非常感谢你, 德鲁

1 个答案:

答案 0 :(得分:3)

试试这个。

     curl -v -H "Authorization: Bearer h6kdYQgHVVQ19yOaf4lnDgw3NQga, Accept: application/json" -X GET http://hostip:8280/SampleDSS/1.0/users