wso2获取密码授予的无效凭据的令牌

时间:2017-05-16 17:21:03

标签: wso2 wso2esb wso2is wso2-am wso2carbon

我正在使用WSO2 API Manager和WSO2身份服务器的组合,并使用以下文档进行配置 https://docs.wso2.com/display/CLUSTER44x/Configuring+the+Pre-Packaged+Identity+Server+5.2.0+with+API+Manager+2.0.0

在这种情况下,WSO2标识服务器充当密钥管理器,API管理器管理范围。

我已配置并正常工作。 我试图使用密码授予,即使我用错误的用户名和密码命中,也给了我一个不记名令牌。感觉好​​像它只检查了我在网址中传递的客户端ID。

curl -X POST \
  https://mycustomwsourl.in:9443/oauth2/token \
  -H 'authorization: Basic TnVMb0tGRmJlZ3hqUThNeW5uYzlHWmE1bkpBYTpKSzRINmp5M3V4Zl8wNFZNX25lbDhncnJwMm9h' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'grant_type: password' \
  -H 'password: testuser' \ 
  -H 'scope: SCOPE_EDIT SCOPE_READ SCOPE_REMOVE' \
  -H 'username: testuser'

如果我以不同方式传递客户端代码,则会引发错误。否则它总是返回持票令牌。

是不是因为身份服务器没有充当密钥管理器?任何配置?

1 个答案:

答案 0 :(得分:1)

这很奇怪。它实际上应该发送一条错误消息,因为您发送grant_type作为错误的标头。所有这些数据都应该像这样在POST主体中发送。

curl -k -d "grant_type=password&username=<username>&password=<password>" -H "Authorization: Basic d1U2MkRqbHlEQm5xODdHbEJ3cGxmcXZtQWJBYTprc2RTZG9lZkREUDd3cGFFbGZxdm1qRHVl" -H "Content-Type: application/x-www-form-urlencoded" https://localhost:8243/token

参考:https://docs.wso2.com/display/AM200/Password+Grant