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

wso2 Getting token for invalid credentials for password grant

我正在使用 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 管理器管理范围。

我已经配置好并且可以正常工作。 我尝试使用密码授予,它给了我一个不记名令牌,即使我输入了错误的用户名并且 password.It 感觉好像它只检查我在 url.[=12 中传递的客户端 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'

如果我以不同的方式传递客户端代码,它会抛出一个错误。否则它总是返回不记名令牌。

会不会是因为身份服务器没有充当密钥管理器?有什么配置吗?

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

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