我正在使用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'
如果我以不同方式传递客户端代码,则会引发错误。否则它总是返回持票令牌。
是不是因为身份服务器没有充当密钥管理器?任何配置?
答案 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