wso2 API Manager“不支持的客户端身份验证方法!”

时间:2014-01-17 16:46:12

标签: curl oauth wso2 wso2is

我正在尝试使用OAuth2 grant_type = password作为令牌请求,如here所述,使用WSO2 API Manager。使用以下curl命令。

curl -k -d "grant_type=password&username=<uname>&password=<pwd>&scope=PRODUCTION" http://localhost:8280/token

此请求的回复是:

{"error":"invalid_request","error_description":"Missing parameters: client_id"}

接下来,我提供了我的消费者密钥,curl请求变为以下内容:

curl -k -d "grant_type=password&username=<uname>&password=<pwd>&scope=PRODUCTION&client_id=<myconsumerkey>" http://localhost:8280/token

然而,回应令人费解:

{"error":"unsupported_client_authentication_method","error_description":"Unsupported Client Authentication Method!"}

所以,我的问题是API Man不支持这个grant_type吗?或者,我在这里做错了什么?我应该查看此授权类型的身份服务器吗?

干杯

1 个答案:

答案 0 :(得分:0)

您希望在HTTP基本授权标头中发送客户端凭据(客户端密钥和密钥)。卷曲命令将如下所示。这里使用了“--user client-Key:client-Secret”来使用curl命令创建Basic Authorization头。您可以对值使用以下命令。

  

curl --user tFVhXORF35S9TTyeaZIH2IEXEw4a:4h6fq4jgRYKrr4v91A_zQgw4Xtoa -k -d“grant_type = password&amp; username = admin&amp; password = admin”-H“Content-Type:application / x-www-form-urlencoded”https:// {IP }:{端口} /的oauth2 /令牌

再加上这个,我猜WSO2API不支持在请求体中接收客户端凭据。根据OAuth 2.0规范,不推荐使用。请检查here